예제 #1
0
 public void render(GameContainer container, StateBasedGame game, Graphics g)
     throws SlickException {
   g.setBackground(Color.gray);
   renderText(g);
   Display current = (mode == SINGLETON) ? singleton : indv;
   current.render(container, g);
 }
예제 #2
0
    public void init(GameContainer container, StateBasedGame game) throws SlickException {
      indv = new Display(container);
      indv.setSendingGlobalEvents(false);

      final Frame win1 = new Frame("State 2");
      win1.setBounds(200, 205, 200, 100);
      win1.setVisible(true);
      win1.setResizable(false);
      indvWindows.add(win1);
      indv.add(win1);

      ToggleButton button = new ToggleButton("Click");
      button.pack();
      button.setLocation(200, 150);
      button.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              win1.setResizable(!win1.isResizable());
            }
          });
      indv.add(button);

      Label label = new Label("Use the button to toggle window resizing.");
      label.pack();
      label.setLocation(button.getX(), button.getY() - label.getHeight() - 5);
      label.setOpaque(true);
      label.setBackground(new Color(1f, 1f, 1f, 0.85f));

      indv.add(label);
    }
예제 #3
0
    public void init(GameContainer container, StateBasedGame game) throws SlickException {
      indv = new Display(container);
      indv.setSendingGlobalEvents(false);

      Frame win1 = new Frame("State 1");
      win1.setBounds(100, 200, 200, 50);

      Frame win2 = new Frame("Testing Window");
      win2.setBounds(125, 225, 200, 100);
      win2.setResizable(false);

      Button button = new Button("Button");
      button.setLocation(25, 10);
      button.pack();
      win2.getContentPane().add(button);

      win1.setVisible(true);
      win2.setVisible(true);

      // add windows to the state's display
      indv.add(win1);
      indv.add(win2);

      // add windows to a list
      indvWindows.add(win1);
      indvWindows.add(win2);
      win1.grabFocus();
      win2.grabFocus();
    }
예제 #4
0
    public void init(GameContainer container, StateBasedGame game) throws SlickException {
      indv = new Display(container);
      indv.setSendingGlobalEvents(false);

      float startx = 200;
      float starty = 180;
      float inc = 25;
      for (int i = 0; i < 5; i++) {
        Frame win = new Frame("Window " + i);
        win.setLocation(startx + (i * inc), starty + (i * inc));
        win.setSize(200, 150);
        win.setVisible(true);
        indv.add(win);
        indvWindows.add(win);
        if (i == 4) {
          win.grabFocus();
        } else if (i == 0) {
          win.setAlwaysOnTop(true);
          win.setTitle(win.getTitle() + " (Always on top)");
        }
      }
    }
예제 #5
0
  public void initStatesList(GameContainer container) throws SlickException {
    Sui.setTheme(new BitterLemonTheme());
    SimpleSkin.setRoundRectanglesEnabled(true);
    singleton = new Display(container);
    singleton.setSendingGlobalEvents(false);

    Frame window = new Frame("Singleton Window");
    window.setSize(200, 150);
    window.setLocation(100, 100);
    window.setVisible(true);

    final CheckBox box = new CheckBox("Are you sure?");
    box.pack();
    box.setLocation(10, 25);
    window.add(box);
    window.setMinimumSize(150, 70);

    singletonWindows.add(window);
    singleton.add(window);

    this.addState(new State1());
    this.addState(new State2());
    this.addState(new State3());
  }
예제 #6
0
  public void init(GameContainer container) throws SlickException {
    // Sui.setSkin(new WireframeSkin());
    display = new Display(container);
    display.setSendingGlobalEvents(false);
    display.setFocusable(true);

    // setup method names
    Method[] m = Theme.class.getMethods();
    Arrays.sort(
        m,
        new Comparator() {
          public int compare(Object o1, Object o2) {
            return ((Method) o1).getName().compareTo(((Method) o2).getName());
          }
        });
    ArrayList list = new ArrayList(COLORS);
    for (int i = 0; i < m.length; i++) {
      String nameStr = m[i].getName();
      if (nameStr.indexOf("getName") == -1) list.add(nameStr);
    }
    methods = (String[]) list.toArray(new String[list.size()]);

    // dump names
    // for (int i=0;i<methods.length;i++) {
    //    System.out.println("private color
    // "+Character.toLowerCase(methods[i].charAt(3))+methods[i].substring(4)+" =");
    // }

    // dump methods
    // for (int i=0;i<methods.length;i++) {
    //    String var = Character.toLowerCase(methods[i].charAt(3))+methods[i].substring(4);
    //    System.out.println("public Color "+methods[i]+"() { return "+var+"; }");
    // }

    class BorderLabel extends Label {
      public void renderComponent(GUIContext c, Graphics g) {
        super.renderComponent(c, g);
        g.setColor(Color.darkGray);
        g.draw(this.getAbsoluteBounds());
      }
    };

    float startx = 280;
    float starty = 70;

    Container parent = display;
    for (int i = 0; i < labels.length; i++) {
      methodNames[i] = new BorderLabel();
      methodNames[i].setText(methods[i]);
      methodNames[i].setSize(155, 25);
      methodNames[i].setOpaque(true);
      methodNames[i].setLocation(startx, starty + i * (methodNames[i].getHeight() + 5));
      parent.add(methodNames[i]);

      labels[i] = new BorderLabel();
      labels[i].setOpaque(true);
      labels[i].setSize(65, 25);
      labels[i].setLocation(
          startx + methodNames[i].getWidth() + 5, starty + i * (labels[i].getHeight() + 5));
      parent.add(labels[i]);
    }

    Container panel = new Container();

    left = new Button("Previous");
    left.pack();
    left.setRequestFocusEnabled(false);
    left.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (currentIndex > 0) {
              currentIndex--;
              setTheme((Theme) themes.get(currentIndex));
              updateButtons();
            }
          }
        });
    panel.add(left);

    right = new Button("Next");
    right.pack();
    right.setRequestFocusEnabled(false);
    right.setX(left.getWidth() + 5);
    right.setHeight(left.getHeight());
    right.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (currentIndex < themes.size() - 1) {
              currentIndex++;
              setTheme((Theme) themes.get(currentIndex));
              updateButtons();
            }
          }
        });
    panel.add(right);

    panel.setSize(right.getX() + right.getWidth(), left.getHeight());
    panel.setLocationRelativeTo(display);
    panel.setY(starty - panel.getHeight() - 5);
    display.add(panel);

    nameLabel = new Label("No themes found.");
    nameLabel.pack();
    nameLabel.setLocationRelativeTo(display);
    nameLabel.setY(panel.getY() - nameLabel.getHeight() - 5);
    display.add(nameLabel);

    final CheckBox box = new CheckBox("Show Demo Box");

    demoBox = new DemoFrame();
    demoBox.setLocation(50, 100);
    demoBox
        .getCloseButton()
        .addActionListener(
            new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                box.setSelected(false);
              }
            });
    display.add(demoBox);

    box.pack();
    box.setX(demoBox.getX());
    box.setY(demoBox.getY() - box.getHeight() - 5);
    box.setSelected(true);
    box.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            demoBox.setVisible(box.isSelected());
          }
        });
    box.setRequestFocusEnabled(false);
    display.add(box);

    if (Sui.getSkin() instanceof SimpleSkin) {
      final CheckBox roundBox = new CheckBox("Round Rectangles");
      roundBox.pack();
      roundBox.setSelected(true);
      SimpleSkin.setRoundRectanglesEnabled(roundBox.isSelected());

      roundBox.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              SimpleSkin.setRoundRectanglesEnabled(roundBox.isSelected());
            }
          });

      box.setWidth(Math.max(roundBox.getWidth(), box.getWidth()));
      roundBox.setWidth(Math.max(roundBox.getWidth(), box.getWidth()));
      roundBox.setLocation(box.getX(), box.getY() - roundBox.getHeight() - 5);
      roundBox.setRequestFocusEnabled(false);
      display.add(roundBox);
    }

    // load up the themes
    populateThemes();

    if (!themes.isEmpty()) {
      setTheme((Theme) themes.get(0));
    }
    updateButtons();
  }
예제 #7
0
  public void render(GameContainer container, Graphics g) throws SlickException {
    g.setBackground(Color.lightGray);

    display.render(container, g);
  }
예제 #8
0
  public void update(GameContainer container, int delta) throws SlickException {
    display.update(container, delta);

    if (container.getInput().isKeyPressed(Input.KEY_ESCAPE)) container.exit();
  }
예제 #9
0
 public void update(GameContainer container, StateBasedGame game, int delta)
     throws SlickException {
   Display current = (mode == SINGLETON) ? singleton : indv;
   current.update(container, delta);
 }