GameStateManager.java 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package model;
  2. import java.awt.Graphics2D;
  3. import java.awt.event.KeyEvent;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import model.state.EndState;
  7. import model.state.MenuState;
  8. import model.state.PlayState;
  9. import model.state.State;
  10. public class GameStateManager {
  11. private List<State> gamestates;
  12. private State currentState;
  13. public GameStateManager(){
  14. gamestates = new ArrayList<State>();
  15. gamestates.add(new MenuState(this));
  16. gamestates.add(new PlayState(this));
  17. gamestates.add(new EndState(this));
  18. currentState = gamestates.get(0);
  19. }
  20. public void setState(String name)
  21. {
  22. for(State s : gamestates)
  23. {
  24. if(s.getName() == name)
  25. {
  26. changeState(s);
  27. return;
  28. }
  29. }
  30. }
  31. private void changeState(State st)
  32. {
  33. if(! currentState.equals(st))
  34. {
  35. currentState.exit();
  36. currentState = st;
  37. currentState.init();
  38. }
  39. }
  40. public void update(){
  41. currentState.update();
  42. }
  43. public void paint(Graphics2D g2d)
  44. {
  45. currentState.paint(g2d);
  46. }
  47. public void keyPressed(KeyEvent e)
  48. {
  49. currentState.keyPressed(e);
  50. }
  51. public void keyReleased(KeyEvent e)
  52. {
  53. currentState.keyReleased(e);
  54. }
  55. public void keyTyped(KeyEvent e)
  56. {
  57. currentState.keyTyped(e);
  58. }
  59. }