Elagym/Snake

Controller.java

Opened this issue · 0 comments

package ihm.game;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

/**

  • @author Vincent Verbeet

  • */
    public class Controller implements ActionListener, ChangeListener {
    private Model model;
    private Timer timer;

    Controller(final Model m) {
    this.model = m;
    timer = new Timer(model.getSpeed(), this);
    timer.start();
    }

    @OverRide
    public final void actionPerformed(final ActionEvent e) {
    if (e.getSource() instanceof Timer) {
    model.updateSnake();
    }
    }

    @OverRide
    public final void stateChanged(final ChangeEvent e) {
    timer.stop();
    timer = new Timer(model.getSpeed(), this);
    timer.start();

    }
    }