GameControl.java 1.7 KB

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