0
\$\begingroup\$

How can I switch between different screens that implement Screen?

\$\endgroup\$
3
  • \$\begingroup\$ Draw the background then the buttons. Check if mouse clicked position was inside a button's rectangle (x, y, width, height). \$\endgroup\$
    – dimitris93
    Sep 8, 2015 at 8:35
  • \$\begingroup\$ and then? that is just checking if the condition is true. \$\endgroup\$ Sep 8, 2015 at 9:24
  • \$\begingroup\$ That is what a menu is. The behavior after a button was clicked depends on your game and is for you to implement. All you need is a way to idenify which button was clicked and I explained briefly that you can check for Point (mouse position) inside Rectangle (button bounds). It is like asking what will happen if I press "q" in a game. In one game you might use a spell, in another you might quit the game. \$\endgroup\$
    – dimitris93
    Sep 8, 2015 at 14:17

1 Answer 1

2
\$\begingroup\$

Something like below. Off course you need to add the Button to the stage, create a skin and the OptionScreen yourself.

@Override
    public void show() {
        final OptionScreen optionScreen = new OptionScreen();

        TextButton optionButton = new TextButton("Options", skin);

        optionButton.addListener(new ClickListener(){
            @Override
            public void clicked(InputEvent event, float x, float y) {
                ((Game) Gdx.app.getApplicationListener()).setScreen(optionScreen);
            }
        });        
    }

Because we use optionScreen inside a listener here it has to be final since the application never knows when the button is clicked it. You can also just create a new instance of OptionScreen inline setScreen(new OptionScreen);.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .