From df35dbeb8de0a56419a4b50192e12c2289f3b38c Mon Sep 17 00:00:00 2001 From: Remco Date: Thu, 18 Jun 2015 16:32:47 +0200 Subject: [PATCH] back to title when you wait too long --- control/GameControl.java | 6 +++--- control/GameStateManager.java | 31 ++++++++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/control/GameControl.java b/control/GameControl.java index 6968426..93e2c2c 100644 --- a/control/GameControl.java +++ b/control/GameControl.java @@ -33,18 +33,18 @@ public class GameControl implements JoystickListener, ButtonListener, ActionList @Override public void buttonPressed(ButtonEvent e) { // System.out.println("Game control, button pressed: "+e.getButton().getButtonID()); - gsm.currentState.buttonPressed(e); + gsm.buttonPressed(e); } @Override public void buttonReleased(ButtonEvent e) { // System.out.println("Game control, button released: "+e.getButton().getButtonID()); - gsm.currentState.buttonReleased(e); + gsm.buttonReleased(e); } @Override public void onJoystickMoved(JoystickEvent e) { - gsm.currentState.onJoystickMoved(e); + gsm.onJoystickMoved(e); } @Override diff --git a/control/GameStateManager.java b/control/GameStateManager.java index 740cd31..bf0af89 100644 --- a/control/GameStateManager.java +++ b/control/GameStateManager.java @@ -11,7 +11,9 @@ import model.gameState.MenuState; import model.gameState.PlayState; import model.gameState.TitleState; import control.button.Button; +import control.button.ButtonEvent; import control.button.ButtonHandler; +import control.joystick.JoystickEvent; import control.joystick.JoystickHandler; import data.io.SQLConnector; @@ -21,6 +23,7 @@ public class GameStateManager { public GameState currentState; private int index = 0; public int fps; + private float timeOfNoAction = 0,maxTimeToHaveNoAction = 45000; public enum State { TITLE_STATE, @@ -38,8 +41,7 @@ public class GameStateManager { setState(State.TITLE_STATE); } - public void setState(State st) - { + public void setState(State st) { currentState = gamestates.get(st.ordinal()); init(); } @@ -51,7 +53,13 @@ public class GameStateManager { init(); } - public void update(float factor){ + public void update(float factor){ + timeOfNoAction += factor; + System.out.println(timeOfNoAction); + if(timeOfNoAction > maxTimeToHaveNoAction){ + setState(State.TITLE_STATE); + timeOfNoAction = 0; + } currentState.update(factor); fps = (int) (60/(factor/10)); } @@ -65,4 +73,21 @@ public class GameStateManager { } currentState.init(); } + + public void buttonPressed(ButtonEvent e) { + timeOfNoAction = 0; + currentState.buttonPressed(e); + + } + + public void buttonReleased(ButtonEvent e) { + timeOfNoAction = 0; + currentState.buttonReleased(e); + + } + + public void onJoystickMoved(JoystickEvent e) { + timeOfNoAction = 0; + currentState.onJoystickMoved(e); + } }