From eb9b6ee5f174996e68c1e36729747c0ff4f98e34 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sun, 29 Jan 2017 18:04:13 +0100 Subject: [PATCH] Add customize screen --- android/assets/ui/back.png | Bin 0 -> 1304 bytes android/assets/ui/credits.png | Bin 0 -> 983 bytes android/assets/ui/issues.png | Bin 0 -> 2624 bytes android/assets/ui/sound_off.png | Bin 0 -> 2328 bytes android/assets/ui/sound_on.png | Bin 0 -> 2203 bytes android/assets/ui/web.png | Bin 0 -> 1438 bytes .../io/github/lonamiwebs/klooni/Klooni.java | 10 ++ .../klooni/screens/CustomizeScreen.java | 156 ++++++++++++++++++ .../lonamiwebs/klooni/screens/GameScreen.java | 5 +- .../klooni/screens/MainMenuScreen.java | 7 + .../klooni/screens/PauseMenuStage.java | 8 + 11 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 android/assets/ui/back.png create mode 100644 android/assets/ui/credits.png create mode 100644 android/assets/ui/issues.png create mode 100644 android/assets/ui/sound_off.png create mode 100644 android/assets/ui/sound_on.png create mode 100644 android/assets/ui/web.png create mode 100644 core/src/io/github/lonamiwebs/klooni/screens/CustomizeScreen.java diff --git a/android/assets/ui/back.png b/android/assets/ui/back.png new file mode 100644 index 0000000000000000000000000000000000000000..36a54c359ca15457b1e06725a17f1e2d96c3ce14 GIT binary patch literal 1304 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 iv)T9k&3TpTG~<5-j=eklelgMj0000wDh%HG; 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 literal 0 HcmV?d00001 diff --git a/core/src/io/github/lonamiwebs/klooni/Klooni.java b/core/src/io/github/lonamiwebs/klooni/Klooni.java index 9b36467..5e46390 100644 --- a/core/src/io/github/lonamiwebs/klooni/Klooni.java +++ b/core/src/io/github/lonamiwebs/klooni/Klooni.java @@ -34,6 +34,12 @@ public class Klooni extends Game { skin.add("home_texture", new Texture(Gdx.files.internal("ui/home.png"))); skin.add("replay_texture", new Texture(Gdx.files.internal("ui/replay.png"))); skin.add("share_texture", new Texture(Gdx.files.internal("ui/share.png"))); + skin.add("sound_on_texture", new Texture(Gdx.files.internal("ui/sound_on.png"))); + skin.add("sound_off_texture", new Texture(Gdx.files.internal("ui/sound_off.png"))); + skin.add("issues_texture", new Texture(Gdx.files.internal("ui/issues.png"))); + skin.add("credits_texture", new Texture(Gdx.files.internal("ui/credits.png"))); + skin.add("web_texture", new Texture(Gdx.files.internal("ui/web.png"))); + skin.add("back_texture", new Texture(Gdx.files.internal("ui/back.png"))); Gdx.input.setCatchBackKey(true); // To show the pause menu setScreen(new MainMenuScreen(this)); @@ -66,5 +72,9 @@ public class Klooni extends Game { return !prefs.getBoolean("muteSound", false); } + public static void toggleSound() { + prefs.putBoolean("muteSound", soundsEnabled()).flush(); + } + //endregion } diff --git a/core/src/io/github/lonamiwebs/klooni/screens/CustomizeScreen.java b/core/src/io/github/lonamiwebs/klooni/screens/CustomizeScreen.java new file mode 100644 index 0000000..7f91c34 --- /dev/null +++ b/core/src/io/github/lonamiwebs/klooni/screens/CustomizeScreen.java @@ -0,0 +1,156 @@ +package io.github.lonamiwebs.klooni.screens; + + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; +import com.badlogic.gdx.Screen; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup; +import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; +import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; +import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; +import com.badlogic.gdx.scenes.scene2d.utils.Drawable; + +import io.github.lonamiwebs.klooni.Klooni; + +public class CustomizeScreen implements Screen { + private Klooni game; + + private Stage stage; + + public CustomizeScreen(Klooni aGame, final Screen lastScreen) { + game = aGame; + stage = new Stage(); + + Table table = new Table(); + table.setFillParent(true); + stage.addActor(table); + + HorizontalGroup optionsGroup = new HorizontalGroup(); + optionsGroup.space(12); + + // Back to the previous screen + ImageButton.ImageButtonStyle backStyle = new ImageButton.ImageButtonStyle( + game.skin.newDrawable("button_up", Color.GOLD), + game.skin.newDrawable("button_down", Color.GOLD), + null, game.skin.getDrawable("back_texture"), null, null); + + final ImageButton backButton = new ImageButton(backStyle); + optionsGroup.addActor(backButton); + backButton.addListener(new ChangeListener() { + @Override + public void changed(ChangeEvent event, Actor actor) { + game.setScreen(lastScreen); + dispose(); + } + }); + + // Turn sound on/off + Drawable soundDrawable = game.skin.getDrawable( + Klooni.soundsEnabled() ? "sound_on_texture" : "sound_off_texture"); + + ImageButton.ImageButtonStyle soundStyle = new ImageButton.ImageButtonStyle( + game.skin.newDrawable("button_up", Color.LIME), + game.skin.newDrawable("button_down", Color.LIME), + null, soundDrawable, null, null); + + final ImageButton soundButton = new ImageButton(soundStyle); + optionsGroup.addActor(soundButton); + soundButton.addListener(new ChangeListener() { + @Override + public void changed(ChangeEvent event, Actor actor) { + Klooni.toggleSound(); + soundButton.getStyle().imageUp = game.skin.getDrawable( + Klooni.soundsEnabled() ? "sound_on_texture" : "sound_off_texture"); + } + }); + + // Issues + ImageButton.ImageButtonStyle issuesStyle = new ImageButton.ImageButtonStyle( + game.skin.newDrawable("button_up", Color.FIREBRICK), + game.skin.newDrawable("button_down", Color.FIREBRICK), + null, game.skin.getDrawable("issues_texture"), null, null); + + final ImageButton issuesButton = new ImageButton(issuesStyle); + optionsGroup.addActor(issuesButton); + issuesButton.addListener(new ChangeListener() { + @Override + public void changed(ChangeEvent event, Actor actor) { + Gdx.net.openURI("https://github.com/LonamiWeb/Klooni1010/issues"); + } + }); + + // Website + ImageButton.ImageButtonStyle webStyle = new ImageButton.ImageButtonStyle( + game.skin.newDrawable("button_up", new Color(0x6E99FFFF)), + game.skin.newDrawable("button_down", new Color(0x6E99FFFF)), + null, game.skin.getDrawable("web_texture"), null, null); + + final ImageButton webButton = new ImageButton(webStyle); + optionsGroup.addActor(webButton); + webButton.addListener(new ChangeListener() { + @Override + public void changed(ChangeEvent event, Actor actor) { + Gdx.net.openURI("https://lonamiwebs.github.io"); + } + }); + + table.add(new ScrollPane(optionsGroup)).pad(20, 4, 12, 4); + table.row(); + + VerticalGroup themesGroup = new VerticalGroup(); + themesGroup.space(8); + + table.add(themesGroup).expandY(); + } + + @Override + public void show() { + Gdx.input.setInputProcessor(stage); + } + + private static final float minDelta = 1/30f; + + @Override + public void render(float delta) { + Gdx.gl.glClearColor(0.7f, 0.9f, 0.9f, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + stage.act(Math.min(Gdx.graphics.getDeltaTime(), minDelta)); + stage.draw(); + + if (Gdx.input.isKeyJustPressed(Input.Keys.BACK)) { + game.setScreen(new MainMenuScreen(game)); + dispose(); + } + } + + @Override + public void resize(int width, int height) { + stage.getViewport().update(width, height, true); + } + + @Override + public void pause() { + + } + + @Override + public void resume() { + + } + + @Override + public void hide() { + + } + + @Override + public void dispose() { + stage.dispose(); + } +} diff --git a/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java b/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java index 298d80a..9b087da 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java @@ -54,7 +54,10 @@ public class GameScreen implements Screen, InputProcessor { @Override public void show() { - Gdx.input.setInputProcessor(this); + if (pauseMenu.isShown()) // Will happen if we go to the customize menu + Gdx.input.setInputProcessor(pauseMenu); + else + Gdx.input.setInputProcessor(this); } @Override diff --git a/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java b/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java index 301fd17..877b515 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java @@ -75,6 +75,13 @@ public class MainMenuScreen extends InputListener implements Screen { final ImageButton paletteButton = new ImageButton(paletteStyle); table.add(paletteButton).space(16); + + paletteButton.addListener(new ChangeListener() { + public void changed (ChangeEvent event, Actor actor) { + game.setScreen(new CustomizeScreen(game, game.getScreen())); + // Don't dispose because then it needs to take us to the previous screen + } + }); } @Override diff --git a/core/src/io/github/lonamiwebs/klooni/screens/PauseMenuStage.java b/core/src/io/github/lonamiwebs/klooni/screens/PauseMenuStage.java index c64b840..4a23f97 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/PauseMenuStage.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/PauseMenuStage.java @@ -85,6 +85,14 @@ public class PauseMenuStage extends Stage { final ImageButton paletteButton = new ImageButton(paletteStyle); table.add(paletteButton).space(16); + paletteButton.addListener(new ChangeListener() { + @Override + public void changed(ChangeEvent event, Actor actor) { + game.setScreen(new CustomizeScreen(game, game.getScreen())); + // Don't dispose because then it needs to take us to the previous screen + } + }); + // Continue playing OR share (if game over) button // TODO Enable both actions for this button ImageButton.ImageButtonStyle playStyle = new ImageButton.ImageButtonStyle(