diff --git a/core/assets/options/escape_back_on.png b/core/assets/options/escape_back_on.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea87315b341ca8fc5e00ec1560d6238ac7e0251 Binary files /dev/null and b/core/assets/options/escape_back_on.png differ diff --git a/core/assets/options/pdn/escape_back_on.pdn b/core/assets/options/pdn/escape_back_on.pdn new file mode 100644 index 0000000000000000000000000000000000000000..ab1baac0c8a1a56cb6f8cb9b97e9dd5e8b199c6f Binary files /dev/null and b/core/assets/options/pdn/escape_back_on.pdn differ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionenBackButton.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionenBackButton.java new file mode 100644 index 0000000000000000000000000000000000000000..a56cb09939d204801b7478ef9ff0ad160b139066 --- /dev/null +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionenBackButton.java @@ -0,0 +1,36 @@ +package com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons; + +import com.badlogic.gdx.audio.Sound; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.galaxytrucker.galaxytruckerreloaded.Main; +import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.ImButton; +import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.OptionUI; +import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI; + +public class OptionenBackButton extends ImButton { + + private Sound clickSound; + + private OptionUI optionUI; + + private PauseMenuUI pauseMenuUI; + + public OptionenBackButton(float x, float y, float width, float height, OptionUI optionUI, PauseMenuUI pauseMenuUI) { + super(new Texture("options/escape_back_on.png"), x, y, width, height); + this.optionUI = optionUI; + this.pauseMenuUI = pauseMenuUI; + this.addListener(new ClickListener() { + public void clicked(InputEvent event, float x, float y) { + leftClick(); + } + }); + } + + @Override + public void leftClick() { + optionUI.disposeOptionsUI(); + pauseMenuUI.showPauseMenuUI(); + } +} diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java index 37d9ead8eb493e9010117ba668b9dde930e015b1..e75a4ac20a5e8b5e434a448657144be4505753af 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java @@ -110,6 +110,11 @@ public class GamePlay implements Screen { */ private PauseMenu pauseMenu; + + public PauseMenuUI getPauseMenuUI() { + return pauseMenuUI; + } + private PauseMenuUI pauseMenuUI; /** diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionUI.java index 6d49acc4acae569ed52e7ad226f04d7c95da2cc4..364bad5be3ff7582e9877fff93bc9a932a373edc 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionUI.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionUI.java @@ -1,11 +1,14 @@ package com.galaxytrucker.galaxytruckerreloaded.View.UI.Options; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.scenes.scene2d.Stage; import com.galaxytrucker.galaxytruckerreloaded.Main; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.ContinueButton; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.MainMenuButton; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButton; +import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionenBackButton; import com.galaxytrucker.galaxytruckerreloaded.View.Screen.GamePlay; import com.galaxytrucker.galaxytruckerreloaded.View.Screen.PauseMenu; @@ -24,10 +27,14 @@ public class OptionUI { */ private MainMenuButton mainMenuButton; + private OptionenBackButton optionenBackButton; + private Main main; private GamePlay game; + private PauseMenuUI pauseMenuUI; + private float x, y; /** @@ -38,15 +45,15 @@ public class OptionUI { public OptionUI(Main main, Stage stage, GamePlay game) { this.main = main; this.game = game; - + this.pauseMenuUI = game.getPauseMenuUI(); optionsBackgroundTexture = new Texture("options/options.png"); x = main.WIDTH/2 - optionsBackgroundTexture.getWidth()/2; y = main.HEIGHT/2 - optionsBackgroundTexture.getHeight()/2; - mainMenuButton = new MainMenuButton(x+220, y+270, 128, 24, main); + optionenBackButton = new OptionenBackButton(x+220, y+270, 128, 24, this, pauseMenuUI); - stage.addActor(mainMenuButton); + stage.addActor(optionenBackButton); } /** @@ -54,6 +61,7 @@ public class OptionUI { * no stage stuff */ public void render() { + updateInput(); main.batch.begin(); main.batch.draw(optionsBackgroundTexture, x, y, 601, 471); main.batch.end(); @@ -64,7 +72,7 @@ public class OptionUI { */ public void disposeOptionsUI() { optionsBackgroundTexture.dispose(); - mainMenuButton.remove(); + optionenBackButton.remove(); game.deleteOptions(); } @@ -85,4 +93,14 @@ public class OptionUI { */ public void hideOptionsUI() { } + + /** + * handles input to pause game, open options + */ + public void updateInput() { + if(Gdx.input.isKeyPressed(Input.Keys.ESCAPE)) { + disposeOptionsUI(); + pauseMenuUI.showPauseMenuUI(); + } + } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/PauseMenuUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/PauseMenuUI.java index 46a5f82853d5567404081b6336c306a3c8df71a9..2ec3a20996a399a43c36baa5fca116a7a2604ab1 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/PauseMenuUI.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/PauseMenuUI.java @@ -95,19 +95,23 @@ public class PauseMenuUI { /** * Open the options menu */ - public void showOptionsUI() { + public void showPauseMenuUI() { + continueButton.setVisible(true); + mainMenuButton.setVisible(true); + optionButton.setVisible(true); } /** * Close the options menu */ - public void hideOptionsUI() { - } - - public void openOptions () { + public void hidePauseMenuUI() { continueButton.setVisible(false); mainMenuButton.setVisible(false); optionButton.setVisible(false); + } + + public void openOptions () { + this.hidePauseMenuUI(); game.createOptions(); } }