Files
Arcade/control/GameControl.java
T
2015-06-08 13:45:28 +02:00

70 lines
1.7 KiB
Java

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();
// Timer update = new Timer();
// update.schedule(new TimerTask() {
//
// @Override
// public void run() {
// long currentTime = System.currentTimeMillis();
// model.update(currentTime - lastTime);
// lastTime = currentTime;
// view.repaint();
// System.out.println("Test");
// }
// }, 0,1000/120);
}
@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();
model.update(currentTime - lastTime);
lastTime = currentTime;
view.repaint();
}
}