GameStateManager.java 999 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 enum State {
  14. TITLE_STATE,
  15. MENU_STATE,
  16. PLAY_STATE
  17. }
  18. public GameStateManager(SongHandler sh){
  19. gamestates = new ArrayList<GameState>();
  20. gamestates.add(new TitleState(this, sh));
  21. gamestates.add(new MenuState(this, sh));
  22. gamestates.add(new PlayState(this, sh));
  23. currentState = gamestates.get(0);
  24. }
  25. public void setState(State st)
  26. {
  27. currentState = gamestates.get(st.ordinal());
  28. currentState.init();
  29. }
  30. public void next() {
  31. index++;
  32. index %= gamestates.size();
  33. currentState = gamestates.get(index);
  34. currentState.init();
  35. }
  36. public void update(float factor){
  37. currentState.update(factor);
  38. }
  39. }