| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package control;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.Timer;
- import model.GameModel;
- import view.GameView;
- import control.button.ButtonEvent;
- import control.button.ButtonListener;
- import control.joystick.JoystickEvent;
- import control.joystick.JoystickListener;
- public class GameControl implements JoystickListener, ButtonListener, ActionListener {
-
- private long lastTime = System.currentTimeMillis();
- GameModel model;
- GameView view;
- GameStateManager gsm;
- Timer update;
-
- public GameControl(final GameModel model, final GameView view,GameStateManager gsm)
- {
- this.model = model;
- this.view = view;
- this.gsm = gsm;
- view.setIgnoreRepaint(true);
- update = new Timer(1000/60,this);
- update.start();
- }
- @Override
- public void buttonPressed(ButtonEvent e) {
- // System.out.println("Game control, button pressed: "+e.getButton().getButtonID());
- gsm.currentState.buttonPressed(e);
- }
- @Override
- public void buttonReleased(ButtonEvent e) {
- // System.out.println("Game control, button released: "+e.getButton().getButtonID());
- gsm.currentState.buttonReleased(e);
- }
- @Override
- public void onJoystickMoved(JoystickEvent e) {
- gsm.currentState.onJoystickMoved(e);
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- long currentTime = System.currentTimeMillis();
- long time = currentTime - lastTime;
- if(time > 1000/60)
- time = 1000/60;
- model.update(time);
- lastTime = currentTime;
- view.repaint();
- }
- }
|