Skip to content
Snippets Groups Projects
Commit 7b0949a4 authored by Rasmus Burwitz's avatar Rasmus Burwitz
Browse files

Audio, Credits, Control in Options added

further changed specific "backButtons" to a single one
parent ecdb995f
No related branches found
No related tags found
No related merge requests found
Showing
with 478 additions and 11 deletions
core/assets/options/audio.png

219 KiB

core/assets/options/control.png

219 KiB

core/assets/options/credits.png

219 KiB

package com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButtons.Audio;
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.UI.Options.OptionUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI;
public class AudioButton extends ImButton {
private Sound clickSound;
private OptionUI optionUI;
private PauseMenuUI pauseMenuUI;
public AudioButton(float x, float y, float width, float height, OptionUI optionUI) {
super(new Texture("options/escape_audio_on.png"), x, y, width, height);
this.optionUI = optionUI;
this.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
leftClick();
}
});
}
@Override
public void leftClick() {
optionUI.openAudio();
}
}
package com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButtons.Control;
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.UI.Options.OptionUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI;
public class ControlButton extends ImButton {
private Sound clickSound;
private OptionUI optionUI;
private PauseMenuUI pauseMenuUI;
public ControlButton(float x, float y, float width, float height, OptionUI optionUI) {
super(new Texture("options/escape_control_on.png"), x, y, width, height);
this.optionUI = optionUI;
this.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
leftClick();
}
});
}
@Override
public void leftClick() {
optionUI.openControl();
}
}
package com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButtons.Credits;
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.UI.Options.OptionUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI;
public class CreditsButton extends ImButton {
private Sound clickSound;
private OptionUI optionUI;
private PauseMenuUI pauseMenuUI;
public CreditsButton(float x, float y, float width, float height, OptionUI optionUI) {
super(new Texture("options/escape_credits_on.png"), x, y, width, height);
this.optionUI = optionUI;
this.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
leftClick();
}
});
}
@Override
public void leftClick() {
optionUI.openCredits();
}
}
......@@ -5,8 +5,7 @@ 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.UI.Options.GeneralUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.OptionUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.*;
public class BackButton extends ImButton {
......@@ -14,8 +13,38 @@ public class BackButton extends ImButton {
private OptionUI optionUI;
private ControlUI controlUI;
private CreditsUI creditUI;
private GeneralUI generalUI;
private VideoUI videoUI;
private AudioUI audioUI;
public BackButton(float x, float y, float width, float height, OptionUI optionUI, ControlUI controlUI) {
super(new Texture("options/escape_back_on.png"), x, y, width, height);
this.optionUI = optionUI;
this.controlUI = controlUI;
this.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
leftClick();
}
});
}
public BackButton(float x, float y, float width, float height, OptionUI optionUI, CreditsUI creditsUI) {
super(new Texture("options/escape_back_on.png"), x, y, width, height);
this.optionUI = optionUI;
this.creditUI = creditsUI;
this.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
leftClick();
}
});
}
public BackButton(float x, float y, float width, float height, OptionUI optionUI, GeneralUI generalUI) {
super(new Texture("options/escape_back_on.png"), x, y, width, height);
this.optionUI = optionUI;
......@@ -27,9 +56,36 @@ public class BackButton extends ImButton {
});
}
public BackButton(float x, float y, float width, float height, OptionUI optionUI, VideoUI videoUI) {
super(new Texture("options/escape_back_on.png"), x, y, width, height);
this.optionUI = optionUI;
this.videoUI = videoUI;
this.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
leftClick();
}
});
}
public BackButton(float x, float y, float width, float height, OptionUI optionUI, AudioUI audioUI) {
super(new Texture("options/escape_back_on.png"), x, y, width, height);
this.optionUI = optionUI;
this.audioUI = audioUI;
this.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
leftClick();
}
});
}
@Override
public void leftClick() {
generalUI.disposeGeneralUI();
if(controlUI != null){controlUI.disposeControlUI();}
else if(creditUI != null){creditUI.disposeCreditUI();}
else if(generalUI != null){generalUI.disposeGeneralUI();}
else if(videoUI != null){videoUI.disposeVideoUI();}
else if(audioUI != null){audioUI.disposeAudioUI();}
optionUI.showOptionsUI();
}
}
......@@ -24,10 +24,7 @@ import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon;
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.GeneralUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.OptionUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.PauseMenuUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.VideoUI;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Options.*;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Ship.EnemyShip;
import com.galaxytrucker.galaxytruckerreloaded.View.UI.Ship.ShipView;
......@@ -100,6 +97,12 @@ public class GamePlay implements Screen {
*/
private VideoUI videoUI;
private AudioUI audioUI;
private CreditsUI creditsUI;
private ControlUI controlUI;
/**
* Gets the current open OptionUI
* @return current OptionUI
......@@ -364,8 +367,27 @@ public class GamePlay implements Screen {
videoUI = null;
}
public void createAudioUI(){
audioUI = new AudioUI(main, pauseStage, this);
}
public void deleteAudioUI(){
audioUI = null;
}
public void createCreditUI(){
creditsUI = new CreditsUI(main, pauseStage, this);
}
public void deleteCreditUI(){
creditsUI = null;
}
public void createControlUI(){controlUI = new ControlUI(main, pauseStage, this);
}
public void deleteConterolUI(){
controlUI = null;
}
public void createShip() {
}
......
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.OptionButtons.General.BackButton;
import com.galaxytrucker.galaxytruckerreloaded.View.Screen.GamePlay;
public class AudioUI {
}
private Texture audioBackgroundTexture;
private Main main;
private GamePlay gamePlay;
private OptionUI optionUI;
private float x, y;
private BackButton backButton;
private Stage stage;
/**
* Constructor
* @param main
* @param stage
* @param gamePlay
*/
public AudioUI(Main main, Stage stage, GamePlay gamePlay) {
this.main = main;
this.gamePlay = gamePlay;
this.stage = stage;
this.optionUI = gamePlay.getOptionUI();
audioBackgroundTexture = new Texture("options/audio.png");
x = main.WIDTH / 2 - audioBackgroundTexture.getWidth() / 2;
y = main.HEIGHT / 2 - audioBackgroundTexture.getHeight() / 2;
backButton = new BackButton(x + 220, y + 100, 128, 24, optionUI, this);
stage.addActor(backButton);
}
/**
* render
* no stage stuff
*/
public void render() {
updateInput();
main.batch.begin();
main.batch.draw(audioBackgroundTexture, x, y, 601, 471);
main.batch.end();
stage.draw();
}
/**
* Dispose of options ui
*/
public void disposeAudioUI() {
audioBackgroundTexture.dispose();
backButton.remove();
gamePlay.deleteAudioUI();
}
/**
* Open the options menu
*/
public void showGeneralUI() {
backButton.setVisible(true);
}
/**
* Close the options menu
*/
public void hideGeneralUI() {
backButton.setVisible(false);
}
/**
* handles input to pause game, open options
*/
public void updateInput() {
if(Gdx.input.isKeyJustPressed(Input.Keys.ESCAPE)) {
disposeAudioUI();;
optionUI.showOptionsUI();
}
}
}
\ No newline at end of file
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.OptionButtons.General.BackButton;
import com.galaxytrucker.galaxytruckerreloaded.View.Screen.GamePlay;
public class ControlUI {
private Texture controleBackgroundTextuere;
private Main main;
private GamePlay gamePlay;
private OptionUI optionUI;
private float x, y;
private BackButton backButton;
private Stage stage;
/**
* Constructor
* @param main
* @param stage
* @param gamePlay
*/
public ControlUI(Main main, Stage stage, GamePlay gamePlay) {
this.main = main;
this.gamePlay = gamePlay;
this.stage = stage;
this.optionUI = gamePlay.getOptionUI();
controleBackgroundTextuere = new Texture("options/control.png");
x = main.WIDTH / 2 - controleBackgroundTextuere.getWidth() / 2;
y = main.HEIGHT / 2 - controleBackgroundTextuere.getHeight() / 2;
backButton = new BackButton(x + 220, y + 100, 128, 24, optionUI, this);
stage.addActor(backButton);
}
/**
* render
* no stage stuff
*/
public void render() {
updateInput();
main.batch.begin();
main.batch.draw(controleBackgroundTextuere, x, y, 601, 471);
main.batch.end();
stage.draw();
}
/**
* Dispose of options ui
*/
public void disposeControlUI() {
controleBackgroundTextuere.dispose();
backButton.remove();
gamePlay.deleteConterolUI();
}
/**
* Open the options menu
*/
public void showGeneralUI() {
backButton.setVisible(true);
}
/**
* Close the options menu
*/
public void hideGeneralUI() {
backButton.setVisible(false);
}
/**
* handles input to pause game, open options
*/
public void updateInput() {
if(Gdx.input.isKeyJustPressed(Input.Keys.ESCAPE)) {
disposeControlUI();
optionUI.showOptionsUI();
}
}
}
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.OptionButtons.General.BackButton;
import com.galaxytrucker.galaxytruckerreloaded.View.Screen.GamePlay;
public class CreditsUI {
private Texture CreditBackgroundTexture;
private Main main;
private GamePlay gamePlay;
private OptionUI optionUI;
private float x, y;
private BackButton backButton;
private Stage stage;
/**
* Constructor
* @param main
* @param stage
* @param gamePlay
*/
public CreditsUI(Main main, Stage stage, GamePlay gamePlay) {
this.main = main;
this.gamePlay = gamePlay;
this.stage = stage;
this.optionUI = gamePlay.getOptionUI();
CreditBackgroundTexture = new Texture("options/credits.png");
x = main.WIDTH / 2 - CreditBackgroundTexture.getWidth() / 2;
y = main.HEIGHT / 2 - CreditBackgroundTexture.getHeight() / 2;
backButton = new BackButton(x + 220, y + 100, 128, 24, optionUI, this);
stage.addActor(backButton);
}
/**
* render
* no stage stuff
*/
public void render() {
updateInput();
main.batch.begin();
main.batch.draw(CreditBackgroundTexture, x, y, 601, 471);
main.batch.end();
stage.draw();
}
/**
* Dispose of options ui
*/
public void disposeCreditUI() {
CreditBackgroundTexture.dispose();
backButton.remove();
gamePlay.deleteCreditUI();
}
/**
* Open the options menu
*/
public void showCreditUI() {
backButton.setVisible(true);
}
/**
* Close the options menu
*/
public void hideCreditUI() {
backButton.setVisible(false);
}
/**
* handles input to pause game, open options
*/
public void updateInput() {
if(Gdx.input.isKeyJustPressed(Input.Keys.ESCAPE)) {
disposeCreditUI();;
optionUI.showOptionsUI();
}
}
}
......@@ -5,6 +5,9 @@ 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.OptionButtons.Audio.AudioButton;
import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButtons.Control.ControlButton;
import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButtons.Credits.CreditsButton;
import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButtons.General.GeneralButton;
import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButtons.OptionenBackButton;
import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.InGameButtons.OptionButtons.Video.VideoButton;
......@@ -26,6 +29,12 @@ public class OptionUI {
private GeneralButton generalButton;
private ControlButton controlButton;
private CreditsButton creditsButton;
private AudioButton audioButton;
private Main main;
private GamePlay game;
......@@ -51,13 +60,19 @@ public class OptionUI {
x = main.WIDTH/2 - optionsBackgroundTexture.getWidth()/2;
y = main.HEIGHT/2 - optionsBackgroundTexture.getHeight()/2;
optionenBackButton = new OptionenBackButton(x+220, y+100, 128, 24, this, pauseMenuUI);
videoButton = new VideoButton(x+220, y+220, 128, 24, this);
generalButton = new GeneralButton(x+220, y+320, 128, 24, this);
optionenBackButton = new OptionenBackButton(x+220, y+(y/6), 128, 24, this, pauseMenuUI);
videoButton = new VideoButton(x+220, y+(2*y/6), 128, 24, this);
generalButton = new GeneralButton(x+220, y+(3*y/6), 128, 24, this);
controlButton = new ControlButton(x+ 220, y+ (4*y/6), 128, 24, this );
creditsButton = new CreditsButton(x + 220, y + (5*y/6), 128, 24, this);
audioButton = new AudioButton(x +220, y+(6*y/6), 128, 24, this);
stage.addActor(optionenBackButton);
stage.addActor(generalButton);
stage.addActor(videoButton);
stage.addActor(controlButton);
stage.addActor(creditsButton);
stage.addActor(audioButton);
}
/**
......@@ -81,6 +96,9 @@ public class OptionUI {
optionenBackButton.remove();
generalButton.remove();
videoButton.remove();
audioButton.remove();
controlButton.remove();
creditsButton.remove();
game.deleteOptions();
}
......@@ -97,6 +115,10 @@ public class OptionUI {
generalButton.setVisible(true);
optionenBackButton.setVisible(true);
videoButton.setVisible(true);
audioButton.setVisible(true);
creditsButton.setVisible(true);
controlButton.setVisible(true);
}
/**
......@@ -106,6 +128,9 @@ public class OptionUI {
generalButton.setVisible(false);
optionenBackButton.setVisible(false);
videoButton.setVisible(false);
audioButton.setVisible(false);
creditsButton.setVisible(false);
controlButton.setVisible(false);
}
/**
......@@ -127,4 +152,19 @@ public class OptionUI {
this.hideOptionsUI();
game.createVideoUI();
}
public void openCredits(){
this.hideOptionsUI();
game.createCreditUI();
}
public void openAudio(){
this.hideOptionsUI();
game.createAudioUI();
}
public void openControl(){
this.hideOptionsUI();
game.createControlUI();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment