GameControl.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package control;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.util.TimerTask;
  5. import javax.swing.Timer;
  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. }
  27. @Override
  28. public void buttonPressed(ButtonEvent e) {
  29. // System.out.println("Game control, button pressed: "+e.getButton().getButtonID());
  30. gsm.currentState.buttonPressed(e);
  31. }
  32. @Override
  33. public void buttonReleased(ButtonEvent e) {
  34. // System.out.println("Game control, button released: "+e.getButton().getButtonID());
  35. gsm.currentState.buttonReleased(e);
  36. }
  37. @Override
  38. public void onJoystickMoved(JoystickEvent e) {
  39. gsm.currentState.onJoystickMoved(e);
  40. }
  41. @Override
  42. public void actionPerformed(ActionEvent e) {
  43. long currentTime = System.currentTimeMillis();
  44. model.update(currentTime - lastTime);
  45. lastTime = currentTime;
  46. view.repaint();
  47. }
  48. }