Example usage for com.badlogic.gdx.scenes.scene2d.utils ChangeListener ChangeListener

List of usage examples for com.badlogic.gdx.scenes.scene2d.utils ChangeListener ChangeListener

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.utils ChangeListener ChangeListener.

Prototype

ChangeListener

Source Link

Usage

From source file:awakening.view.menu.Controls.java

License:Apache License

@Override
public void show() {
    ///Title//from  ww  w . j  av a  2 s .  c  om
    title.setPosition(Gdx.app.getGraphics().getWidth() / 2 - title.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() - 30);
    stage.addActor(title);

    ///Widgets Background
    widgetsBackground.setPosition(Gdx.app.getGraphics().getWidth() / 2 - widgetsBackground.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2);
    stage.addActor(widgetsBackground);

    ///Back Button
    btnBack.setWidth(widgetsBackground.getWidth() / 2.5f - 20);
    btnBack.setPosition(Gdx.app.getGraphics().getWidth() / 2 - btnBack.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30);
    btnBack.addListener(new ClickListener() {
        @Override
        public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
            effect.play(game.getSoundVolume());
            game.setScreen(new Options(game, sound, effect));
            return false;
        }
    }

    );
    stage.addActor(btnBack);

    ///Left Button
    btnLeft.setWidth(widgetsBackground.getWidth() / 2.5f - 20);
    btnLeft.setPosition(Gdx.app.getGraphics().getWidth() / 2 - btnLeft.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30
                    + 3 * btnBack.getHeight());
    btnLeft.addListener(new ClickListener() {
        @Override
        public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
            effect.play(game.getSoundVolume());
            return false;
        }
    }

    );
    stage.addActor(btnLeft);
    lblLeft.setPosition(btnLeft.getX() - lblLeft.getWidth() - 10, Gdx.app.getGraphics().getHeight() / 2
            - widgetsBackground.getHeight() / 2 + 30 + 3 * btnBack.getHeight());
    stage.addActor(lblLeft);

    ///Right Button
    btnRight.setWidth(widgetsBackground.getWidth() / 2.5f - 20);
    btnRight.setPosition(Gdx.app.getGraphics().getWidth() / 2 - btnRight.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30
                    + 2 * btnBack.getHeight());
    btnRight.addListener(new ClickListener() {
        @Override
        public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
            effect.play(game.getSoundVolume());
            return false;
        }
    }

    );
    stage.addActor(btnRight);
    lblRight.setPosition(btnRight.getX() - lblRight.getWidth() - 10, Gdx.app.getGraphics().getHeight() / 2
            - widgetsBackground.getHeight() / 2 + 30 + 2 * btnBack.getHeight());
    stage.addActor(lblRight);

    ///Down Button
    btnDown.setWidth(widgetsBackground.getWidth() / 2.5f - 20);
    btnDown.setPosition(Gdx.app.getGraphics().getWidth() / 2 - btnDown.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30
                    + 4 * btnLeft.getHeight());
    btnDown.addListener(new ClickListener() {
        @Override
        public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
            effect.play(game.getSoundVolume());
            return false;
        }
    }

    );
    stage.addActor(btnDown);
    lblDown.setPosition(btnDown.getX() - lblDown.getWidth() - 10, Gdx.app.getGraphics().getHeight() / 2
            - widgetsBackground.getHeight() / 2 + 30 + 4 * btnLeft.getHeight());
    stage.addActor(lblDown);

    ///Up Button
    btnUp.setWidth(widgetsBackground.getWidth() / 2.5f - 20);
    btnUp.setPosition(Gdx.app.getGraphics().getWidth() / 2 - btnUp.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30
                    + 5 * btnDown.getHeight());
    btnUp.addListener(new ClickListener() {
        @Override
        public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
            effect.play(game.getSoundVolume());
            return false;
        }
    }

    );
    stage.addActor(btnUp);
    lblUp.setPosition(btnUp.getX() - lblUp.getWidth() - 10, Gdx.app.getGraphics().getHeight() / 2
            - widgetsBackground.getHeight() / 2 + 30 + 5 * btnDown.getHeight());
    stage.addActor(lblUp);

    ///Zoom In Button
    btnZoomIn.setWidth(widgetsBackground.getWidth() / 2.5f - 20);
    btnZoomIn.setPosition(Gdx.app.getGraphics().getWidth() / 2 - btnUp.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30
                    + 6 * btnBack.getHeight());
    btnZoomIn.addListener(new ClickListener() {
        @Override
        public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
            effect.play(game.getSoundVolume());
            return false;
        }
    }

    );
    stage.addActor(btnZoomIn);
    lblZoomIn.setPosition(btnZoomIn.getX() - lblZoomIn.getWidth() - 10, Gdx.app.getGraphics().getHeight() / 2
            - widgetsBackground.getHeight() / 2 + 30 + 6 * btnBack.getHeight());
    stage.addActor(lblZoomIn);

    ///Zoom In Button
    btnZoomOut.setWidth(widgetsBackground.getWidth() / 2.5f - 20);
    btnZoomOut.setPosition(Gdx.app.getGraphics().getWidth() / 2 - btnZoomOut.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30
                    + 7 * btnBack.getHeight());
    btnZoomOut.addListener(new ClickListener() {
        @Override
        public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
            effect.play(game.getSoundVolume());
            return false;
        }
    }

    );
    stage.addActor(btnZoomOut);
    lblZoomOut.setPosition(btnZoomOut.getX() - lblZoomOut.getWidth() - 10, Gdx.app.getGraphics().getHeight() / 2
            - widgetsBackground.getHeight() / 2 + 30 + 7 * btnBack.getHeight());
    stage.addActor(lblZoomOut);

    ///Language SelectBox
    if (game.getLanguage().equals("ENGLISH")) {
        slbLangages.setSelected("English");
    } else if (game.getLanguage().equals("FRENCH")) {
        slbLangages.setSelected("Francais");
    } else if (game.getLanguage().equals("ITALIAN")) {
        slbLangages.setSelected("Italiano");
    }
    slbLangages.setWidth(widgetsBackground.getWidth() / 2.5f - 20);
    slbLangages.setPosition(Gdx.app.getGraphics().getWidth() / 2 - slbLangages.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30
                    + 9 * btnBack.getHeight());
    slbLangages.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            System.out.println(slbLangages.getSelected());
            if (slbLangages.getSelected().equals("English")) {
                game.setLanguage("ENGLISH");
                try {
                    language = ResourceBundle.getBundle("awakening.menu.res_en_EN", locales[0]);
                } catch (java.util.MissingResourceException e) {
                    System.out.println("yolo1");
                }
            } else if (slbLangages.getSelected().equals("Francais")) {
                game.setLanguage("FRENCH");
                try {
                    language = ResourceBundle.getBundle("awakening.menu.res_fr_FR", locales[1]);
                } catch (java.util.MissingResourceException e) {
                    System.out.println("yolo2");
                }
            } else if (slbLangages.getSelected().equals("Italiano")) {
                game.setLanguage("ITALIAN");
                try {
                    language = ResourceBundle.getBundle("awakening.menu.res_it_IT", locales[2]);
                } catch (java.util.MissingResourceException e) {
                    System.out.println("yolo3");
                }
            }
        }
    });
    stage.addActor(slbLangages);
    lblLangage.setPosition(slbLangages.getX() - lblLangage.getWidth() - 10,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30
                    + 9 * btnBack.getHeight());
    stage.addActor(lblLangage);
}

From source file:awakening.view.menu.Graphics.java

License:Apache License

@Override
public void show() {
    Gdx.input.setInputProcessor(stage);//from   w  ww  . j  av a2 s  .c  om

    ///Title
    title.setPosition(Gdx.app.getGraphics().getWidth() / 2 - title.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() - 30);
    stage.addActor(title);

    ///Widgets Background
    widgetsBackground.setPosition(Gdx.app.getGraphics().getWidth() / 2 - widgetsBackground.getWidth() / 2,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2);
    stage.addActor(widgetsBackground);

    ///Back Button
    btnBack.setWidth(widgetsBackground.getWidth() - 20);
    btnBack.setPosition(Gdx.app.getGraphics().getWidth() / 2 - widgetsBackground.getWidth() / 2 + 10,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 30);

    btnBack.addListener(new ClickListener() {
        @Override
        public boolean touchDown(InputEvent e, float x, float y, int pointer, int button) {
            effect.play(game.getSoundVolume());
            game.setScreen(new Options(game, sound, effect));
            return false;
        }
    }

    );
    stage.addActor(btnBack);

    ///Fullscreen CheckBox
    cbxFullscreen.setPosition(Gdx.app.getGraphics().getWidth() / 2 - widgetsBackground.getWidth() / 2 + 10,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 40
                    + btnBack.getHeight());
    if (game.isFullscreen()) {
        cbxFullscreen.setChecked(true);
    }
    stage.addActor(cbxFullscreen);

    ///Resolution SelectBox 
    slbResolutions.setPosition(Gdx.app.getGraphics().getWidth() / 2 - widgetsBackground.getWidth() / 2 + 10,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 70
                    + cbxFullscreen.getHeight());
    slbResolutions.setWidth(widgetsBackground.getWidth() - 20);

    TAScreenSize[] sizes = new TAScreenSize[Gdx.graphics.getDisplayModes().length];
    int i = 0;
    for (DisplayMode d : Gdx.graphics.getDisplayModes()) {
        TAScreenSize screen = new TAScreenSize(d.width, d.height);
        sizes[i] = screen;
        i++;
    }

    Arrays.sort(sizes);

    slbResolutions.setItems(sizes);

    i = 0;
    while (sizes[i].width != Gdx.app.getGraphics().getWidth()
            && sizes[i].height != Gdx.app.getGraphics().getHeight()
            && i < Gdx.graphics.getDisplayModes().length) {
        i++;
    }

    slbResolutions.setSelectedIndex(i);
    slbResolutions.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            System.out.println(slbResolutions.getSelected());
        }
    });

    stage.addActor(slbResolutions);

    ///Resolution Label 
    lblResolution.setPosition(Gdx.app.getGraphics().getWidth() / 2 - widgetsBackground.getWidth() / 2 + 10,
            Gdx.app.getGraphics().getHeight() / 2 - widgetsBackground.getHeight() / 2 + 90
                    + slbResolutions.getHeight());
    stage.addActor(lblResolution);
}

From source file:ca.hiphiparray.amazingmaze.ContinueScreen.java

License:Open Source License

/**
 * The constructor for ContinueScreen.//  w  ww  . ja v a2  s  .co m
 *
 * @param game the {@link AmazingMazeGame} instance that is managing this screen.
 * @param won if the player won.
 */
public ContinueScreen(final AmazingMazeGame game, final boolean won) {
    this.game = game;

    stage = new Stage(new ScreenViewport(), this.game.batch);
    labelTable = new Table();
    optionTable = new Table();
    labelTable.setFillParent(true);
    labelTable.top().center();
    optionTable.setFillParent(true);
    optionTable.bottom();
    labelTable.background(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.MINI_BACKGROUND, Texture.class))));

    if (won) {
        resultLabel = new Label("You got the antidote!", game.assets.skin, Assets.WHITE_SANS_STYLE);
        resultDescriptionLabel = new Label("Continute searching for more to help others or quit the maze?",
                game.assets.skin, Assets.WHITE_SANS_STYLE);
    } else {
        resultLabel = new Label("You lose!", game.assets.skin, Assets.WHITE_SANS_STYLE);
        resultDescriptionLabel = new Label("Go back to last checkpoint or quit?", game.assets.skin,
                Assets.WHITE_SANS_STYLE);
    }
    currentScoreLabel = new Label("Your current score: " + game.save.getScore(), game.assets.skin,
            Assets.WHITE_SANS_STYLE);

    continueButton = new TextButton("Continue", game.assets.skin);
    continueButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (continueButton.isPressed()) {
                if (!won) {
                    int nextLevel = 5 * (game.save.getLevel() / 5) + 1;
                    int startScore = game.save.getStartScore();
                    game.save.resetSave();
                    game.save.setLevel(nextLevel);
                    game.save.setStartScore(startScore);
                    game.save.setScore(startScore);
                } else {
                    game.save.setStartScore(game.save.getScore());
                }
                game.setScreen(new MazeScreen(game, false));
            }
        }
    });

    quitButton = new TextButton("Quit", game.assets.skin);
    quitButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (quitButton.isPressed()) {
                highScoreDialog();
            }
        }
    });

    labelTable.add(resultLabel).pad(20);
    labelTable.row();
    labelTable.add(resultDescriptionLabel).pad(20);
    labelTable.row();
    labelTable.add(currentScoreLabel).pad(20);
    optionTable.add(continueButton).minSize(Gdx.graphics.getWidth() / 8, Gdx.graphics.getHeight() / 20)
            .maxSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() / 8)
            .prefSize(Gdx.graphics.getWidth() / 5, Gdx.graphics.getHeight() / 10).padBottom(10).pad(20);
    optionTable.row();
    optionTable.add(quitButton).minSize(Gdx.graphics.getWidth() / 8, Gdx.graphics.getHeight() / 20)
            .maxSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() / 8)
            .prefSize(Gdx.graphics.getWidth() / 5, Gdx.graphics.getHeight() / 10).pad(20).padBottom(40);
    stage.addActor(labelTable);
    stage.addActor(optionTable);
}

From source file:ca.hiphiparray.amazingmaze.ContinueScreen.java

License:Open Source License

/**
 * Displays the high score dialog.//w w  w  . j ava  2 s .co  m
 */
public void highScoreDialog() {
    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
    final Dialog dialog = new Dialog("High Score", game.assets.skin);
    final TextButton okButton = new TextButton("OK", game.assets.skin);
    dialog.getButtonTable().bottom();
    Label label = new Label("Enter your name:", labelStyle);
    label.setScale(.5f);
    label.setWrap(true);
    label.setAlignment(Align.center);
    final TextField nameField = new TextField("", game.assets.skin);
    dialog.add(label).width(500).pad(50);
    dialog.add(nameField);
    dialog.add(okButton).bottom();
    nameField.setTextFieldListener(new TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char key) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (key == (char) 13) {
                    displayHighScores(name);
                }
            }
        }
    });
    okButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (okButton.isPressed()) {
                    dialog.hide();
                    displayHighScores(name);
                }
            }
        }
    });
    dialog.addListener(new InputListener() {
        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (keycode == Keys.ENTER) {
                    displayHighScores(name);
                    return true;
                }
            }
            return false;
        }
    });
    dialog.show(stage);
}

From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java

License:Open Source License

/**
 * Constructor for FishMiniGame.//  www .  j a v a 2  s .c  o m
 *
 * @param game the {@link AmazingMazeGame} instance that is managing this screen.
 * @param player the {@link Player} instance that completed the last level.
 */
public FishMiniGame(final AmazingMazeGame game, Player player) {
    this.game = game;
    this.player = player;
    fishNumber = new int[5];

    fishNumber[0] = this.player.blueCollected;
    fishNumber[1] = this.player.purpleCollected;
    fishNumber[2] = this.player.greenCollected;
    fishNumber[3] = this.player.redCollected;
    fishNumber[4] = this.player.orangeCollected;

    answer = 0;
    for (int i = 0; i < fishNumber.length; i++) {
        answer += fishNumber[i] * fishValue[i];
    }

    stage = new Stage(new ScreenViewport(), this.game.batch);

    menuTable = new Table();
    fishTable = new Table();

    canvas = new Canvas(
            new Pixmap(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() + shift, Pixmap.Format.RGB565));

    menuTable.setFillParent(true);
    menuTable.top();
    fishTable.bottom();
    fishTable.setFillParent(true);

    fishImage = new Image[5];

    TextureAtlas atlas = this.game.assets.manager.get(Assets.GAME_ATLAS_LOCATION, TextureAtlas.class);
    fishImage[0] = new Image(atlas.findRegion(Assets.FISH + Assets.BLUE_MODIFIER));
    fishImage[0].setScale(4f);
    fishImage[1] = new Image(atlas.findRegion(Assets.FISH + Assets.PURPLE_MODIFIER));
    fishImage[1].setScale(4f);
    fishImage[2] = new Image(atlas.findRegion(Assets.FISH + Assets.GREEN_MODIFIER));
    fishImage[2].setScale(4f);
    fishImage[3] = new Image(atlas.findRegion(Assets.FISH + Assets.RED_MODIFIER));
    fishImage[3].setScale(4f);
    fishImage[4] = new Image(atlas.findRegion(Assets.FISH + Assets.ORANGE_MODIFIER));
    fishImage[4].setScale(4f);

    pencilButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.PENCIL_BUTTON, Texture.class))));
    pencilButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (pencilButton.isPressed()) {
                canvas.setColor(drawColor);
            }
        }
    });

    eraserButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.ERASER_BUTTON, Texture.class))));
    eraserButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (eraserButton.isPressed()) {
                canvas.setColor(clearColor);
            }
        }
    });

    helpButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.HELP_BUTTON, Texture.class))));
    helpButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (helpButton.isPressed()) {
                Label.LabelStyle labelStyle = new Label.LabelStyle(
                        game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
                final Dialog dialog = new Dialog("Help", game.assets.skin);
                final TextButton okButton = new TextButton("OK", game.assets.skin);
                dialog.getButtonTable().bottom();
                Label label = new Label("Find the total value of fish that you retrieved!\n"
                        + "Each colour corresponds to the colour of Canadian money.\n"
                        + "The numbers correspond to each number of fish you got.\n\n"
                        + "In case you forgot: blue is 5, purple is 10, green is 20, red is 50, and orange is 100.",
                        labelStyle);
                label.setScale(.5f);
                label.setWrap(true);
                label.setAlignment(Align.center);
                dialog.add(label).width(500).pad(50);
                dialog.add(okButton).bottom();
                okButton.addListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeEvent event, Actor actor) {
                        if (okButton.isPressed()) {
                            dialog.hide();
                            canvas.setColor(drawColor);
                        }
                    }
                });
                dialog.key(Keys.ENTER, true);
                dialog.show(stage);
            }
        }
    });

    checkButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.CHECK_BUTTON, Texture.class))));
    checkButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            dialog();
        }
    });

    clearButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.CLEAR_BUTTON, Texture.class))));
    clearButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (clearButton.isPressed()) {
                canvas.clear();
                canvas.setColor(drawColor);
            }
        }
    });

    answerField = new TextField("", game.assets.skin);
    answerField.setTextFieldListener(new TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char key) {
            if (key == (char) 13) {
                stage.unfocus(answerField);
                dialog();
            }
        }
    });
    stage.addActor(menuTable);
    stage.addActor(canvas);
    stage.addActor(fishTable);

    menuTable.clear();
    fishTable.clear();
    helpButton.right();
    menuTable.background(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.MINI_BACKGROUND, Texture.class))));
    menuTable.add(pencilButton).pad(10).size(64);
    menuTable.add(eraserButton).pad(10).size(64);
    menuTable.add(clearButton).pad(10).size(64);
    menuTable.add(helpButton).pad(10).size(64);

    menuTable.row();

    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.SANS_REGULAR, Assets.REGULAR_FONT_SIZE), Color.WHITE);

    for (int i = 0; i < 5; i++) {
        fishTable.add(fishImage[i]).bottom().left().padLeft(10);
    }
    fishTable.add(answerField).minWidth(150).padLeft(150);
    fishTable.add(checkButton).pad(10).size(64);
    fishTable.row();

    for (int i = 0; i < 5; i++) {
        fishTable.add(new Label(fishNumber[i] + "", labelStyle)).pad(30).center();
    }
    fishTable.row();

    setupPauseMenu();
    input = new InputMultiplexer(stage, this);
    input.addProcessor(pauseMenu);
}

From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java

License:Open Source License

/** Create the pause menu. */
private void setupPauseMenu() {
    pauseMenu = new Stage(new ScreenViewport(), game.batch);

    Table table = new Table();
    table.setFillParent(true);/*from  w  w  w  .j a v a  2 s .  c  o m*/
    table.center();
    pauseMenu.addActor(table);

    TextButton resumeButton = new TextButton("Resume", game.assets.skin);
    resumeButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            paused = false;
        }
    });
    table.add(resumeButton).pad(10).width(Gdx.graphics.getWidth() / 4).height(Gdx.graphics.getHeight() / 8);
    table.row();

    TextButton settingsButton = new TextButton("Settings", game.assets.skin);
    final Screen sourceScreen = this;
    settingsButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            game.settingsScreen.setSourceScreen(sourceScreen);
            game.setScreen(game.settingsScreen);
        }
    });
    table.add(settingsButton).pad(10).width(Gdx.graphics.getWidth() / 4).height(Gdx.graphics.getHeight() / 8);
    table.row();

    TextButton quitButton = new TextButton("Quit", game.assets.skin);
    quitButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            game.save.setLevel(game.save.getLevel() - 1);
            game.setScreen(game.menuScreen);
        }
    });
    table.add(quitButton).pad(10).width(Gdx.graphics.getWidth() / 4).height(Gdx.graphics.getHeight() / 8);
}

From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java

License:Open Source License

/**
 * Displays the results dialog.//from ww  w  . java 2  s .c o m
 */
public void dialog() {
    message = formatString(answerField.getText());
    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
    final Dialog dialog = new Dialog("Results", game.assets.skin);
    final TextButton okButton = new TextButton("OK", game.assets.skin);
    dialog.getButtonTable().bottom();
    if (checkAnswer() == -1) {
        Label label = new Label("Invalid answer. Please try again.", labelStyle);
        label.setScale(.5f);
        label.setWrap(true);
        label.setAlignment(Align.center);
        dialog.add(label).width(500).pad(50);
        dialog.add(okButton).bottom();
        okButton.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (okButton.isPressed()) {
                    dialog.hide();
                    canvas.setColor(drawColor);
                }
            }
        });
        dialog.addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ENTER) {
                    dialog.hide();
                    return true;
                }
                return false;
            }
        });
    } else {
        Label label = new Label("Your answer was: " + message + ". " + "The correct answer was: " + answer
                + ". " + "You get " + checkAnswer() + " back!", labelStyle);
        game.save.addScore(checkAnswer());
        game.save.setLives(player.getLives());
        label.setScale(.5f);
        label.setWrap(true);
        label.setAlignment(Align.center);
        dialog.add(label).width(500).pad(50);
        dialog.add(okButton).bottom();
        okButton.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (okButton.isPressed()) {
                    dialog.cancel();
                    if ((game.save.getLevel() - 1) % 5 == 0) {
                        game.setScreen(new ContinueScreen(game, true));
                    } else {
                        game.setScreen(new MazeScreen(game, false));
                    }
                }
            }
        });
        dialog.addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ENTER) {
                    if ((game.save.getLevel() - 1) % 5 == 0) {
                        game.setScreen(new ContinueScreen(game, true));
                    } else {
                        game.setScreen(new MazeScreen(game, false));
                    }
                    return true;
                }
                return false;
            }
        });
    }
    dialog.show(stage);
}

From source file:ca.hiphiparray.amazingmaze.HighScoresScreen.java

License:Open Source License

@Override
public void show() {
    Gdx.input.setInputProcessor(stage);/*from ww  w . j  av a2s  . c  om*/
    game.music.setSong(Song.MENU);
    stage.clear();

    table = new Table();
    table.setFillParent(true);
    table.top();
    stage.addActor(table);

    Label header = new Label("High Scores", game.assets.skin, Assets.SANS_HEADER_STYLE);
    table.add(header).pad(Gdx.graphics.getHeight() / 20).colspan(3);
    table.row();

    HighScore[] scores = game.save.getHighScores();
    for (int i = 0; i < scores.length; i++) {
        Label position = new Label(Integer.toString(i + 1) + ". ", game.assets.skin);
        Label name = new Label(scores[i].getName(), game.assets.skin);
        Label score = new Label(Integer.toString(scores[i].getScore()), game.assets.skin);
        if (scores[i].getScore() < 0) {
            score.setText("");
        }

        table.add(position).padBottom(Gdx.graphics.getHeight() / 50);
        table.add(name).left().padBottom(Gdx.graphics.getHeight() / 50).padRight(Gdx.graphics.getWidth() / 32);
        table.add(score).padBottom(Gdx.graphics.getHeight() / 50).right();
        table.row();
    }

    final TextButton resetButton = new TextButton("Reset High Scores", game.assets.skin);
    resetButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (resetButton.isPressed()) {
                game.save.resetScores();
                game.setScreen(game.highScoresScreen);
            }
        }
    });
    table.add(resetButton).colspan(3);
    table.row();

    final TextButton menuButton = new TextButton("Main Menu", game.assets.skin);
    menuButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (menuButton.isPressed()) {
                game.setScreen(game.menuScreen);
            }
        }
    });
    table.add(menuButton).colspan(3).pad(10);
}

From source file:ca.hiphiparray.amazingmaze.MainMenuScreen.java

License:Open Source License

/**
 * Creates the main menu.//from w w w  .  ja  va  2  s  .  c  o m
 *
 * @param game The instance for the AmazingMazeGame used.
 */
public MainMenuScreen(final AmazingMazeGame game) {
    this.game = game;
    menu = new Stage(new ScreenViewport(), this.game.batch);

    table = new Table();

    table.setFillParent(true);
    table.bottom();
    menu.addActor(table);

    menuTitle = new Image(this.game.assets.manager.get(Assets.GAME_LOGO, Texture.class));

    // Play
    playButton = new TextButton("Play", game.assets.skin);
    playButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (playButton.isPressed()) {
                game.setScreen(game.storyScreen);
            }
        }
    });

    // Help
    helpButton = new TextButton("Help", game.assets.skin);
    helpButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (helpButton.isPressed()) {
                game.setScreen(new HelpScreen(game));
            }
        }
    });

    // Settings
    settingsButton = new TextButton("Settings", game.assets.skin);
    settingsButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (settingsButton.isPressed()) {
                game.setScreen(game.settingsScreen);
            }
        }
    });

    // Credits
    creditsButton = new TextButton("Credits", game.assets.skin);
    creditsButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (creditsButton.isPressed()) {
                game.setScreen(new CreditsScreen(game));
            }
        }
    });

    licenseDialog = new Dialog("License Information", game.assets.skin);
    licenseDialog.button("Okay");

    licenseDialog.text(
            "Amazing Maze is an educational game created in Java with the libGDX library.\n"
                    + "Copyright (C) 2017 Hip Hip Array\n" + "\n"
                    + "Amazing Maze is free software: you can redistribute it and/or modify\n"
                    + "it under the terms of the GNU General Public License as published by\n"
                    + "the Free Software Foundation, either version 3 of the License, or\n"
                    + "(at your option) any later version.\n" + "\n"
                    + "Amazing Maze is distributed in the hope that it will be useful,\n"
                    + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
                    + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
                    + "GNU General Public License for more details.\n" + "\n"
                    + "You should have received a copy of the GNU General Public License\n"
                    + "along with Amazing Maze. If not, see <http://www.gnu.org/licenses/>.",
            game.assets.skin.get(Assets.WHITE_SANS_STYLE, LabelStyle.class));

    // License
    licenseButton = new TextButton("License", game.assets.skin);
    licenseButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (licenseButton.isPressed()) {
                licenseDialog.show(menu);
            }
        }
    });

    // High scores
    highScoresButton = new TextButton("High Scores", game.assets.skin);
    highScoresButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (highScoresButton.isPressed()) {
                game.setScreen(game.highScoresScreen);
            }
        }
    });

    // Quit
    quitButton = new TextButton("Quit", game.assets.skin);
    quitButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (quitButton.isPressed()) {
                game.save.writeScores();
                game.save.writeSettings();
                Gdx.app.exit();
            }
        }
    });
}

From source file:ca.hiphiparray.amazingmaze.MazeScreen.java

License:Open Source License

/** Create the pause menu. */
private void setupPauseMenu() {
    pauseMenu = new Stage(new ScreenViewport(), game.batch);

    Table table = new Table();
    table.setFillParent(true);/*from  ww  w  . j a  v  a2s.  c  o m*/
    table.center();
    pauseMenu.addActor(table);

    TextButton resumeButton = new TextButton("Resume", game.assets.skin);
    resumeButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            paused = false;
        }
    });
    table.add(resumeButton).pad(10).width(Gdx.graphics.getWidth() / 4).height(Gdx.graphics.getHeight() / 8);
    table.row();

    TextButton settingsButton = new TextButton("Settings", game.assets.skin);
    final Screen sourceScreen = this;
    settingsButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            game.settingsScreen.setSourceScreen(sourceScreen);
            game.setScreen(game.settingsScreen);
        }
    });
    table.add(settingsButton).pad(10).width(Gdx.graphics.getWidth() / 4).height(Gdx.graphics.getHeight() / 8);
    table.row();

    TextButton quitButton = new TextButton("Main Menu", game.assets.skin);
    quitButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            game.setScreen(game.menuScreen);
        }
    });
    table.add(quitButton).pad(10).width(Gdx.graphics.getWidth() / 4).height(Gdx.graphics.getHeight() / 8);
}