GameControl.java 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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(final GameModel model, final GameView view,GameStateManager gsm)
  18. {
  19. this.model = model;
  20. this.view = view;
  21. this.gsm = gsm;
  22. view.setIgnoreRepaint(true);
  23. update = new Timer(1000/60,this);
  24. update.start();
  25. }
  26. @Override
  27. public void buttonPressed(ButtonEvent e) {
  28. gsm.buttonPressed(e);
  29. }
  30. @Override
  31. public void buttonReleased(ButtonEvent e) {
  32. gsm.buttonReleased(e);
  33. }
  34. @Override
  35. public void onJoystickMoved(JoystickEvent e) {
  36. gsm.onJoystickMoved(e);
  37. }
  38. @Override
  39. public void actionPerformed(ActionEvent e) {
  40. long currentTime = System.currentTimeMillis();
  41. long time = currentTime - lastTime;
  42. if(time > 1000/60)
  43. time = 1000/60;
  44. model.update(time);
  45. lastTime = currentTime;
  46. view.repaint();
  47. }
  48. }