Java游戏开发之坦克大战代码(三)

2014-11-24 08:49:44 来源: 作者: 浏览: 3
10,x + 15,y + 10 );
break;
case 3://向右
g.fill3DRect(x, y, 30, 5, false );
g.fill3DRect(x , y + 15, 30, 5, false );
g.fill3DRect(x + 5, y + 5, 20, 10, false );
g.fillOval(x + 10, y + 5, 10, 10);
g.drawLine(x + 15,y + 10, x + 30 , y + 10);
break;

default:
break;
}


}

public MyPanel (){
hero = new Hero(30, 270 ,0,0,10 , true);
//tanks = new tank(100,100, 2 ,1);
//初始化敌人坦克
Recoder.setHero(hero);
for(int i = 0; i < enSize; i++){
//创建敌人坦克的对象
Recoder.getRecording();
EnemyTask et = new EnemyTask((i + 1)*50, 0, 1, 1, 5 ,true);
et.setEts(ets);
Recoder.setEtss(ets);//传ets到Recoder


Thread t = new Thread(et);
t.start();

shot s = new shot(et.x + 10 , et.y + 30, et.direct);
et.ss.add(s);
Thread t2 = new Thread(s);
t2.start();

ets.add(et);//加入到集合中
//et.setColor(1);
}
Recoder.setEnSize(enSize);
}

@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getKeyCode() == KeyEvent.VK_S){
//hero.setX(hero.getX() ++ 1);
// int i= hero.getY();
// i += hero.speed;
// hero.setY(i);
this.hero.MoveDown();
hero.setD(1);
}
if(arg0.getKeyCode() == KeyEvent.VK_W){
//hero.setX(hero.getX() ++ 1);
// int i= hero.getY();
// i -= hero.speed;
// hero.setY(i);
hero.MoveUp();
hero.setD(0);
}
if(arg0.getKeyCode() == KeyEvent.VK_D){
//hero.setX(hero.getX() ++ 1);
// int i= hero.getX();
// i += hero.speed;
// hero.setX(i);
hero.MoveRight();
hero.setD(3);
}
if(arg0.getKeyCode() == KeyEvent.VK_A){
//hero.setX(hero.getX() ++ 1);
// int i= hero.getX();
// i -= hero.speed;
// hero.setX(i);
hero.MoveLeft();
hero.setD(2);
}
//判断是否按下J
if(arg0.getKeyCode() == KeyEvent.VK_J){
if(hero.ss.size() <= 4){
this.hero.shotEnemy();
//System.out.println("j");
}

}
if(arg0.getKeyCode() == KeyEvent.VK_SPACE){//空格暂停

if(hero.speed != 0){
a = hero.speed ;
hero.speed = 0;
for(int i = 0; i < ets.size(); i ++){
//System.out.println("aaaaaaaaaaaaaa");
EnemyTask et = ets.get(i);
//System.out.println("speed" + et.speed);
b = et.speed;
et.speed = 0;
directs[i] = et.direct;
//System.out.println(et.direct);
//System.out.println(directs[i]);
//et.direct = 0;
et.isdirects = false;
for(int j = 0 ; j < et.ss.size(); j ++){
shot s = et.ss.get(j);
c = s.speed;
s.speed = 0;
System.out.println("aa");

}

}//System.out.println("b1 =" + b);
isPaintShot = false;
}
else{
hero.speed = a;
//System.out.println("a2 =" + a);
for(int i = 0; i < ets.size(); i ++){
//System.out.println("bbbbbbbbbbbbbbbbbbb");
EnemyTask et = ets.get(i);
et.isdirects = true;
et.speed = b;
et.direct = directs[i];
for(int j = 0 ; j < et.ss.size(); j ++){
shot s = et.ss.get(j);
s.speed = c;
isPaintShot = true;
}

}s.isShot = true;
}
}
if(arg0.getKeyCode() == KeyEvent.VK_K){
this.KeepExit();
System.exit(0);
}
if(arg0.getKeyCode() == KeyEvent.VK_L){
this.GetKeeper();
}
this.repaint();

}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}
@Override
public void run() {
//每隔100ms
while(true){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.hintEnemyTank();
this.hintMyTank();
// for(int i = 0; i < et.ss.size(); i ++){
// shot myshot = et.ss.get(i);
// if(et.isLive == true){
//
//
-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: