JAVA 坦克大战中的子弹代码 Tank

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;


class Tank {
int x ;
int y ;
enum myTankDir{L,LU,U,RU,R,RD,D,LD,STOP};
/*
* 创建一个枚举类型来放置坦克的方向
*/
myTankDir tkdir = myTankDir.D;
boolean bl = false;
boolean bu = false;
boolean br = false;
boolean bd = false;
/*
*将坦克的初始方向设置为往下运动。
*/
Tank (int x,int y){
/*
* 实参传值给形参,形参传值给成员
* 从而完成对类中的成员变量(全局变量)进行会初始化的工作
* 变量如果不进行初始化,就直接使用,就会出错。
*/
this.x = x;
this.y = y;
}
/*
* 无参的构造函数
*/

public void move(){
switch(tkdir){
case L:
x = x - 5;
break;
case LU:
x = x - 5;
y = y - 5;
break;
case U:
y = y - 5;
break;
case RU:
x = x + 5;
y = y - 5;
break;
case R:
x = x + 5;
break;
case RD:
x = x + 5;
y = y + 5;
break;
case D:
y = y + 5;
break;
case LD:
x = x - 5;
y = y + 5;
break;
case STOP:
break;

}
mylocation();
}

public void mydraw(Graphics g){
Color c = g.getColor();
g.setColor(Color.pink);
g.fillRect(x, y, 50, 50);
g.setColor(c);
move();
//y = y + 5;
}

public void mykeyPressed(KeyEvent e) {
// TODO Auto-generated method stub
int key = e.getKeyCode();
/*
* 获取键值
*/
switch(key){
case KeyEvent.VK_UP:
bu = true;
break;
case KeyEvent.VK_DOWN:
bd = true;
break;
case KeyEvent.VK_LEFT:
bl = true;
break;
case KeyEvent.VK_RIGHT:
br = true;
break;

}
}


public void mylocation(){
if(bl&&!bu&&!br&&!bd)
tkdir = myTankDir.L;
if(bl&&bu&&!br&&!bd)
tkdir = myTankDir.LU;
if(!bl&&bu&&!br&&!bd)
tkdir = myTankDir.U;
if(!bl&&bu&&br&&!bd)
tkdir = myTankDir.RU;
if(!bl&&!bu&&br&&!bd)
tkdir = myTankDir.R;
if(!bl&&!bu&&br&&bd)
tkdir = myTankDir.RD;
if(!bl&&!bu&&!br&&bd)
tkdir = myTankDir.D;
if(bl&&!bu&&!br&&bd)
tkdir = myTankDir.LD;
if(!bl&&!bu&&!br&&!bd)
tkdir = myTankDir.STOP;
}

public void mykeyReleased(KeyEvent e) {
// TODO Auto-generated method stub
int key = e.getKeyCode();
/*
* 获取键值
*/
switch(key){
case KeyEvent.VK_UP:
bu = false;
break;
case KeyEvent.VK_DOWN:
bd = false;
break;
case KeyEvent.VK_LEFT:
bl = false;
break;
case KeyEvent.VK_RIGHT:
br = false;
break;

}
}

}

相关主题
相关文档
最新文档