From c47227d592828c5a6f43c5796be4975aab59e56f Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sat, 28 Jan 2017 18:17:37 +0100 Subject: [PATCH] Show pause menu on back key press (Android) --- core/src/io/github/lonamiwebs/klooni/Klooni.java | 1 + .../io/github/lonamiwebs/klooni/screens/GameScreen.java | 9 ++------- .../github/lonamiwebs/klooni/screens/MainMenuScreen.java | 8 +++++++- .../github/lonamiwebs/klooni/screens/PauseMenuStage.java | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/core/src/io/github/lonamiwebs/klooni/Klooni.java b/core/src/io/github/lonamiwebs/klooni/Klooni.java index bff9a83..07667a2 100644 --- a/core/src/io/github/lonamiwebs/klooni/Klooni.java +++ b/core/src/io/github/lonamiwebs/klooni/Klooni.java @@ -32,6 +32,7 @@ public class Klooni extends Game { skin.add("replay_texture", new Texture(Gdx.files.internal("ui/replay.png"))); skin.add("share_texture", new Texture(Gdx.files.internal("ui/share.png"))); + Gdx.input.setCatchBackKey(true); // To show the pause menu setScreen(new MainMenuScreen(this)); } diff --git a/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java b/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java index 5b004c4..058e61d 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/GameScreen.java @@ -4,7 +4,6 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.Screen; -import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.g2d.SpriteBatch; @@ -25,12 +24,9 @@ public class GameScreen implements Screen, InputProcessor { private SpriteBatch batch; - private final Color clearColor; - private final PauseMenuStage pauseMenu; GameScreen(final Klooni game) { - clearColor = new Color(0.9f, 0.9f, 0.7f, 1f); batch = new SpriteBatch(); layout = new GameLayout(); @@ -38,7 +34,6 @@ public class GameScreen implements Screen, InputProcessor { scorer = new Scorer(layout, 10); board = new Board(layout, 10); holder = new PieceHolder(layout, 3); - pauseMenu = new PauseMenuStage(layout, game, scorer); } @@ -60,7 +55,7 @@ public class GameScreen implements Screen, InputProcessor { @Override public void render(float delta) { - Gdx.gl.glClearColor(clearColor.r, clearColor.g, clearColor.b, clearColor.a); + Gdx.gl.glClearColor(0.9f, 0.9f, 0.9f, 1f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); @@ -114,7 +109,7 @@ public class GameScreen implements Screen, InputProcessor { @Override public boolean keyUp(int keycode) { - if (keycode == Input.Keys.P) // Pause + if (keycode == Input.Keys.P || keycode == Input.Keys.BACK) // Pause pauseMenu.show(false); return false; diff --git a/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java b/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java index bdd0544..301fd17 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/MainMenuScreen.java @@ -1,11 +1,13 @@ 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.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; import com.badlogic.gdx.scenes.scene2d.ui.Table; @@ -13,7 +15,7 @@ import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import io.github.lonamiwebs.klooni.Klooni; -public class MainMenuScreen implements Screen { +public class MainMenuScreen extends InputListener implements Screen { private Klooni game; Stage stage; @@ -88,6 +90,10 @@ public class MainMenuScreen implements Screen { 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)) { + Gdx.app.exit(); + } } @Override diff --git a/core/src/io/github/lonamiwebs/klooni/screens/PauseMenuStage.java b/core/src/io/github/lonamiwebs/klooni/screens/PauseMenuStage.java index ac9aaae..c64b840 100644 --- a/core/src/io/github/lonamiwebs/klooni/screens/PauseMenuStage.java +++ b/core/src/io/github/lonamiwebs/klooni/screens/PauseMenuStage.java @@ -158,7 +158,7 @@ public class PauseMenuStage extends Stage { @Override public boolean keyUp(int keyCode) { - if (keyCode == Input.Keys.P) // Pause + if (keyCode == Input.Keys.P || keyCode == Input.Keys.BACK) // Pause hide(); return super.keyUp(keyCode);