diff --git a/core/assets/escape_options_on.png b/core/assets/escape_options_on.png new file mode 100644 index 0000000000000000000000000000000000000000..0bfa5210deecd765d92ea96599f3e44ff36e7e28 Binary files /dev/null and b/core/assets/escape_options_on.png differ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/ContinueButton.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/ContinueButton.java index 595aaf5c2b74a2b7ed271916c7ebde60784c35ed..f3f7f7fa849e9b6702e57e02cfe2caf9a1473a8d 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/ContinueButton.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/ContinueButton.java @@ -1,16 +1,11 @@ package com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons; import com.badlogic.gdx.audio.Sound; -import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.InputEvent; -import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; -import com.galaxytrucker.galaxytruckerreloaded.Main; -import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.Button; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.ImButton; -import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.OptionsUI; +import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI; /** * continue button for ingame options @@ -25,20 +20,20 @@ public class ContinueButton extends ImButton { /** * the options ui this button is on */ - private OptionsUI ui; + private PauseMenuUI ui; /** * Left-Click action of the Button. */ public void leftClick() { - ui.disposeOptionsUI(); + ui.disposePauseMenuUI(); } /** * constructor * @param ui the ui this is on */ - public ContinueButton(float x, float y, float width, float height, OptionsUI ui) { + public ContinueButton(float x, float y, float width, float height, PauseMenuUI ui) { super(new Texture("ingame_continue.png"), x, y, width, height); this.ui = ui; this.addListener(new ClickListener() { diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButton.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButton.java new file mode 100644 index 0000000000000000000000000000000000000000..24c25dd37714bae5622e40bb46ea34fd76183789 --- /dev/null +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButton.java @@ -0,0 +1,50 @@ +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.View.Buttons.ImButton; +import com.galaxytrucker.galaxytruckerreloaded.View.Screen.MainMenu; +import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI; + +/** + * creates a new OptionButton + */ +public class OptionButton extends ImButton{ + + /** + * Click sound effect + */ + private Sound clickSound; + + private PauseMenuUI ui; + + /** Menu object */ + private MainMenu mainMenu; + + /** + * Constructor + * + */ + public OptionButton(float x, float y, float width, float height, PauseMenuUI ui) { + super(new Texture("escape_options_on.png"), x, y, width, height); + this.addListener(new ClickListener() { + public void clicked(InputEvent event, float x, float y) { + leftClick(); + } + }); + this.ui = ui; + } + + /** + * Creats new Game + */ + public void leftClick() + { + ui.render(); + } + +} + + diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/MenuButtons/OptionButton.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/MenuButtons/OptionButton.java index f4013604b82fa104f1a3cadcaa789023f18030b8..0753f82adf240bd7698065df6d8a4891e38ef2b6 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/MenuButtons/OptionButton.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/MenuButtons/OptionButton.java @@ -6,7 +6,7 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.ImButton; import com.galaxytrucker.galaxytruckerreloaded.View.Screen.MainMenu; -import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.OptionsUI; +import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI; /** * creates a new OptionButton @@ -18,7 +18,7 @@ public class OptionButton extends ImButton{ */ private Sound clickSound; - private OptionsUI ui; + private PauseMenuUI ui; /** Menu object */ private MainMenu mainMenu; @@ -27,7 +27,7 @@ public class OptionButton extends ImButton{ * Constructor * */ - public OptionButton(float x, float y, float width, float height, OptionsUI ui) { + public OptionButton(float x, float y, float width, float height, PauseMenuUI ui) { super(new Texture("options_select2.png"), x, y, width, height); this.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { @@ -42,7 +42,8 @@ public class OptionButton extends ImButton{ */ public void leftClick() { - ui.render(); + //ui.render(); + System.out.println("Dieser Button wurde gedrueckt, jedoch noch nicht implementiert."); } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java index 61eb2234280035c43a1594eb3f17d5a18c889519..2cf5702bdfd37411a892f56fb9de698928519a2a 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java @@ -9,7 +9,6 @@ import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.utils.viewport.FitViewport; -import com.badlogic.gdx.utils.viewport.ScreenViewport; import com.badlogic.gdx.utils.viewport.Viewport; import com.galaxytrucker.galaxytruckerreloaded.Main; import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; @@ -22,11 +21,10 @@ import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.BlankRoom; import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.LaserBlaster; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; -import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.AutofireButton; import com.galaxytrucker.galaxytruckerreloaded.View.UI.Events.EventGUI; import com.galaxytrucker.galaxytruckerreloaded.View.UI.Events.GameOver; import com.galaxytrucker.galaxytruckerreloaded.View.UI.Events.ShopUI; -import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.OptionsUI; +import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI; import com.galaxytrucker.galaxytruckerreloaded.View.UI.Ship.EnemyShip; import com.galaxytrucker.galaxytruckerreloaded.View.UI.Ship.ShipView; @@ -92,7 +90,7 @@ public class GamePlay implements Screen { /** * the ingame options ui, if existing */ - private OptionsUI optionsUI; + private PauseMenuUI optionsUI; /** * the main game class @@ -106,6 +104,11 @@ public class GamePlay implements Screen { private Viewport viewport; + /** + * Pausemenu Object. + */ + PauseMenu pauseMenu; + /** * Constructor * @@ -115,6 +118,8 @@ public class GamePlay implements Screen { this.main = main; background = new Texture("1080p.png"); + pauseMenu = new PauseMenu(main); + viewport = new FitViewport(main.WIDTH, main.HEIGHT); stage = new Stage(viewport); @@ -199,7 +204,7 @@ public class GamePlay implements Screen { if(shopUI != null) { shopUI.disposeShopUI(); } if(eventGUI != null) { eventGUI.disposeEventGUI(); } if(gameOverUI != null) { gameOverUI.disposeGameoverUI(); } - if(optionsUI != null) { optionsUI.disposeOptionsUI(); } + if(optionsUI != null) { optionsUI.disposePauseMenuUI(); } stage.dispose(); } @@ -208,7 +213,7 @@ public class GamePlay implements Screen { */ public void updateInput() { System.out.println("touched"); - if(Gdx.input.isKeyPressed(Input.Keys.O)) { + if(Gdx.input.isKeyPressed(Input.Keys.ESCAPE)) { System.out.println("Where"); createOptions(); } @@ -256,7 +261,7 @@ public class GamePlay implements Screen { * called by controller */ public void createOptions() { - optionsUI = new OptionsUI(main, stage, this); + optionsUI = new PauseMenuUI(main, stage, this); //TODO controller sagen dass spiel "pausiert"? } @@ -341,7 +346,7 @@ public class GamePlay implements Screen { @Override public void pause() { - + pauseMenu.render(1); } @Override diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/MainMenu.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/MainMenu.java index 3fe727b6a4df85a98e580fa53e89ef4ae6f7d32f..a29961aefe4ec22eb4fdbc8bd499f5fcb3a450f6 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/MainMenu.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/MainMenu.java @@ -11,7 +11,7 @@ import com.galaxytrucker.galaxytruckerreloaded.Main; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.MenuButtons.NewGameButton; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.MenuButtons.OptionButton; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.MenuButtons.QuitButton; -import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.OptionsUI; +import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI; /** * Main menu screen @@ -26,7 +26,7 @@ public class MainMenu implements Screen { private Viewport viewport; - private OptionsUI ui; + private PauseMenuUI ui; private NewGameButton newGame; private OptionButton optionButton; diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionUI.java new file mode 100644 index 0000000000000000000000000000000000000000..ee1fff3111032f790654cc042c7324aaf121779a --- /dev/null +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionUI.java @@ -0,0 +1,94 @@ +package com.galaxytrucker.galaxytruckerreloaded.View.UI.Options; + +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.Screen.GamePlay; + +/** + * Ingame Option screen + */ +public class OptionUI { + + /** + * Options ui background + */ + private Texture optionsBackgroundTexture; + + /** + * continue button + */ + private ContinueButton continueButton; + + /** + * main menu button + */ + private MainMenuButton mainMenuButton; + + private Main main; + + private GamePlay game; + + private OptionButton optionButton; + + private float x, y; + + /** + * Constructor + * + * @param main - main class + */ + public OptionUI(Main main, Stage stage, GamePlay game) { + this.main = main; + this.game = game; + + optionsBackgroundTexture = new Texture("options/options.png"); + + x = main.WIDTH/2 - optionsBackgroundTexture.getWidth()/2; + y = main.HEIGHT/2 - optionsBackgroundTexture.getHeight()/2; + + + } + + /** + * render + * no stage stuff + */ + public void render() { + main.batch.begin(); + main.batch.draw(optionsBackgroundTexture, x, y, 601, 471); + main.batch.end(); + } + + /** + * Dispose of options ui + */ + public void disposeOptionsUI() { + optionsBackgroundTexture.dispose(); + continueButton.remove(); + mainMenuButton.remove(); + optionButton.remove(); + game.deleteOptions(); + } + + /** + * Setup called after initialisation + */ + private void setup() { + } + + /** + * Open the options menu + */ + public void showOptionsUI() { + } + + /** + * Close the options menu + */ + public void hideOptionsUI() { + } +} diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionsUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/PauseMenuUI.java similarity index 82% rename from core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionsUI.java rename to core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/PauseMenuUI.java index 67ecd1244c414d7c3b9e1047f245475feb4e0a38..d1441acc74238bbbabd0e6c4d354db7fbecb8c3b 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/OptionsUI.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/PauseMenuUI.java @@ -8,12 +8,14 @@ import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; 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.Screen.GamePlay; +import org.graalvm.compiler.nodes.calc.IntegerDivRemNode; /** * Ingame options UI */ -public class OptionsUI { +public class PauseMenuUI { /** * Options ui background @@ -34,6 +36,8 @@ public class OptionsUI { private GamePlay game; + private OptionButton optionButton; + private float x, y; /** @@ -41,7 +45,7 @@ public class OptionsUI { * * @param main - main class */ - public OptionsUI(Main main, Stage stage, GamePlay game) { + public PauseMenuUI(Main main, Stage stage, GamePlay game) { this.main = main; this.game = game; @@ -51,10 +55,12 @@ public class OptionsUI { y = main.HEIGHT/2 - optionsBackgroundTexture.getHeight()/2; continueButton = new ContinueButton(x+220, y+220, 128, 24, this); - mainMenuButton = new MainMenuButton(x+220, y+270, 128, 24, main); + mainMenuButton = new MainMenuButton(x+220, y+270, 128, 24, main); + optionButton = new OptionButton(x+220,y+320,128,24, this); stage.addActor(continueButton); stage.addActor(mainMenuButton); + stage.addActor(optionButton); } /** @@ -70,10 +76,11 @@ public class OptionsUI { /** * Dispose of options ui */ - public void disposeOptionsUI() { - optionsBackgroundTexture.dispose(); + public void disposePauseMenuUI() { continueButton.remove(); mainMenuButton.remove(); + optionButton.remove(); + optionsBackgroundTexture.dispose(); game.deleteOptions(); }