GameControl.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package control;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import javax.swing.Timer;
  5. import model.GameModel;
  6. import view.GameView;
  7. import control.button.ButtonEvent;
  8. import control.button.ButtonListener;
  9. import control.joystick.JoystickEvent;
  10. import control.joystick.JoystickListener;
  11. public class GameControl implements JoystickListener, ButtonListener,ActionListener {
  12. private long lastTime = System.currentTimeMillis();
  13. GameModel model;
  14. GameView view;
  15. GameStateManager gsm;
  16. Timer update;
  17. public GameControl(GameModel model, GameView view,GameStateManager gsm)
  18. {
  19. this.model = model;
  20. this.view = view;
  21. this.gsm = gsm;
  22. update = new Timer(1000/60, this);
  23. update.start();
  24. }
  25. @Override
  26. public void buttonPressed(ButtonEvent e) {
  27. // System.out.println("Game control, button pressed: "+e.getButton().getButtonID());
  28. gsm.currentState.buttonPressed(e);
  29. }
  30. @Override
  31. public void buttonReleased(ButtonEvent e) {
  32. // System.out.println("Game control, button released: "+e.getButton().getButtonID());
  33. gsm.currentState.buttonReleased(e);
  34. }
  35. @Override
  36. public void onJoystickMoved(JoystickEvent e) {
  37. gsm.currentState.onJoystickMoved(e);
  38. }
  39. @Override
  40. public void actionPerformed(ActionEvent e) {
  41. long currentTime = System.currentTimeMillis();
  42. model.update(currentTime - lastTime);
  43. lastTime = currentTime;
  44. view.repaint();
  45. }
  46. }