View.java
Opened this issue · 0 comments
Elagym commented
package ihm.game;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
//@author Vincent Verbeet
public class View extends JPanel implements KeyListener, ChangeListener {
private static final long serialVersionUID = 1L;
private Model model;
View(final Model m) {
this.model = m;
addKeyListener(this);
setFocusable(true);
setFocusTraversalKeysEnabled(true);
}
protected final void paintComponent(final Graphics g) {
super.paintComponent(g);
drawSnake(g);
if (model.getFoodPos() != null) {
drawFood(g);
}
}
private void drawSnake(final Graphics g) {
g.setColor(model.getSnakeColor());
ArrayList<Pos> tmp = model.getSnakePos();
for (int i = 0; i < tmp.size(); ++i) {
g.fillRect(tmp.get(i).getX(), tmp.get(i).getY(), model.getPix(),
model.getPix());
}
}
private void drawFood(final Graphics g) {
g.setColor(model.getFoodColor());
Pos tmp = model.getFoodPos();
g.fillRect(tmp.getX(), tmp.getY(), model.getPix(), model.getPix());
}
@Override
public final void stateChanged(final ChangeEvent e) {
repaint();
}
@Override
public final void keyPressed(final KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
this.model.up();
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
this.model.down();
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
this.model.right();
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
this.model.left();
}
}
@Override
public final void keyReleased(final KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public final void keyTyped(final KeyEvent e) {
// TODO Auto-generated method stub
}
}