GameStateManager.java 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package control;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import model.SongHandler;
  5. import model.gameState.GameState;
  6. import model.gameState.MenuState;
  7. import model.gameState.PlayState;
  8. import model.gameState.TitleState;
  9. public class GameStateManager {
  10. private List<GameState> gamestates;
  11. public GameState currentState;
  12. private int index = 0;
  13. public int fps;
  14. public enum State {
  15. TITLE_STATE,
  16. MENU_STATE,
  17. PLAY_STATE
  18. }
  19. public GameStateManager(SongHandler sh){
  20. gamestates = new ArrayList<GameState>();
  21. gamestates.add(new TitleState(this, sh));
  22. gamestates.add(new MenuState(this, sh));
  23. gamestates.add(new PlayState(this, sh));
  24. currentState = gamestates.get(0);
  25. }
  26. public void setState(State st)
  27. {
  28. currentState = gamestates.get(st.ordinal());
  29. currentState.init();
  30. }
  31. public void next() {
  32. index++;
  33. index %= gamestates.size();
  34. currentState = gamestates.get(index);
  35. currentState.init();
  36. }
  37. public void update(float factor){
  38. currentState.update(factor);
  39. fps = (int) (60/(factor/10));
  40. }
  41. }