教你用java做贪吃蛇 java贪吃蛇( 二 )


rx = r . nextint(40);
ry = r . nextint(30);
snake act tempAct = new snake act();
tempact . setx(20);
tempact . sety(15);
list . add(tempAct);
request focus(true);
Thread mThread =新线程(this);
mthread . start();
repaint();
}
if (e.getSource() == stopGame) {
system . exit(0);
}
if (e.getSource() == ok) {
list . clear();
new game . set enabled(true);
die . set visible(false);
得分= 0;
速度= 1;
}
}
public boolean minYes(int x,int y) {
if (list.size()!= 0) {
如果(!maxYes(list.get(0)) 。getX() + x,list.get(0) 。getY() + y)) {
返回false
}
}
返回true
}
//判断是否出界
public boolean maxYes(int x,int y) {
if (x < 0 || x >= 40 || y < 0 || y >= 30) {
返回false
}
for(int I = 0;I < list . size();i++) {
if (i > 1 && list.get(i) 。getX() == list.get(0) 。getX() && list.get(i) 。getY() == list.get(0) 。getY()) {
返回false
}
}
返回true
}
//键盘敲击事件监控
公共void按键(按键事件e) {
如果(开始){
switch (e.getKeyCode()) {
案例关键事件 。VK_UP:
if (temp!= 2) {
move(0,-1);
temp = 1;
}
repaint();
打破;
案例关键事件 。VK _唐:
if (temp!= 1) {
move(0,1);
temp = 2;
}
repaint();
打破;
案例关键事件 。VK _左:
if (temp!= 4) {
移动(-1,0);
temp = 3;
}
repaint();
打破;
案例关键事件 。VK右:
if (temp!= 3) {
move(1,0);
temp = 4;
}
repaint();
打破;
默认值:
打破;
}
}
}
@覆盖
公共void键入的(KeyEvent e) {
// TODO自动生成的方法存根
}
@覆盖
public void key released(key event e){
}
//线程的运行方法
公共无效运行(){
while(开始){
开关(温度){
案例1:
move(0,-1);
打破;
案例二:
move(0,1);
打破;
案例三:
移动(-1,0);
打破;
案例4:
move(1,0);
打破;
默认值:
move(1,0);
打破;
}
repaint();
尝试{
Thread.sleep(600 /速);
} catch (InterruptedException e) {
// TODO自动生成的catch块
e . printstacktrace();
}
}
}
}
每个点都是一个类 。
翻译

有问题可以加qq群708653884交流 。


推荐阅读