(转载)Java 贪吃蛇
来源:互联网 发布:sublime的php插件 编辑:程序博客网 时间:2024/05/16 06:17
刚学完多线程,尝试着理解贪吃蛇的代码,从别人那里偷来的,留着备用。
package mvcTest;
//July、06.11(完成测试)。
//根据以下代码,编译,游戏运行界面如下:
public class GreedSnake {
public static void main(String[] args) {
SnakeModel model = new SnakeModel(20,30);
SnakeControl control = new SnakeControl(model);
SnakeView view = new SnakeView(model,control);
//添加一个观察者,让view成为model的观察者
model.addObserver(view);
(new Thread(model)).start();
}
}
-------------------------------------------------------------
2、
package mvcTest;
//SnakeControl.java
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class SnakeControl implements KeyListener{
SnakeModel model;
public SnakeControl(SnakeModel model){
this.model = model;
}
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (model.running){ // 运行状态下,处理的按键
switch (keyCode) {
case KeyEvent.VK_UP:
model.changeDirection(SnakeModel.UP);
break;
case KeyEvent.VK_DOWN:
model.changeDirection(SnakeModel.DOWN);
break;
case KeyEvent.VK_LEFT:
model.changeDirection(SnakeModel.LEFT);