GameStateManager.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package control;
  2. import java.awt.Color;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import model.SongHandler;
  6. import model.gameState.GameState;
  7. import model.gameState.MenuState;
  8. import model.gameState.PlayState;
  9. import model.gameState.TitleState;
  10. import control.button.Button;
  11. import control.button.ButtonHandler;
  12. public class GameStateManager {
  13. private List<GameState> gamestates;
  14. public GameState currentState;
  15. private int index = 0;
  16. public int fps;
  17. public enum State {
  18. TITLE_STATE,
  19. MENU_STATE,
  20. PLAY_STATE
  21. }
  22. public GameStateManager(SongHandler sh){
  23. gamestates = new ArrayList<GameState>();
  24. gamestates.add(new TitleState(this, sh));
  25. gamestates.add(new MenuState(this, sh));
  26. gamestates.add(new PlayState(this, sh));
  27. setState(State.TITLE_STATE);
  28. }
  29. public void setState(State st)
  30. {
  31. currentState = gamestates.get(st.ordinal());
  32. init();
  33. }
  34. public void next() {
  35. index++;
  36. index %= gamestates.size();
  37. currentState = gamestates.get(index);
  38. init();
  39. }
  40. public void update(float factor){
  41. currentState.update(factor);
  42. fps = (int) (60/(factor/10));
  43. }
  44. public void init()
  45. {
  46. for (int i = 1; i < ButtonHandler.getButtons().size(); i++) {
  47. Button b = ButtonHandler.getButton(i);
  48. b.setColor(Color.BLACK);
  49. }
  50. currentState.init();
  51. }
  52. }