Просмотр исходного кода

back to title when you wait too long

Remco 10 лет назад
Родитель
Сommit
df35dbeb8d
2 измененных файлов с 31 добавлено и 6 удалено
  1. 3 3
      control/GameControl.java
  2. 28 3
      control/GameStateManager.java

+ 3 - 3
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

+ 28 - 3
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);		
+	}
 }