既然我们能够实现一个方向的发子弹,那么根据同样的道理 也能够实现八个方向的发子弹。

首先在Tank类的KeyPress方法里面加上按键A的事件

// 我方坦克的键盘按下事件
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
switch (e.getKeyCode()) {
case KeyEvent.VK_F:
// 实例化子弹
fire();
break;
//超级技能
case KeyEvent.VK_A:
// 实例化子弹
bigFire();
break;
case KeyEvent.VK_UP:
up = true;
break;
case KeyEvent.VK_DOWN:
down = true;
break;
case KeyEvent.VK_LEFT:
left = true;
break;
case KeyEvent.VK_RIGHT:
right = true;
break;
default:
break;
}
// 根据boolean值来判断当前要移动的方向
judgeDir();
}


bigFire就是超级技能。new八个方向的子弹即可

//超级技能
private void bigFire() {
// TODO Auto-generated method stub
for(Direction dir:ranDir){
Missile missile = new Missile(x + width / 2 - 6, y + height / 2 - 6,
dir, good);
TankClient.missileList.add(missile);
}
}


运行结果如下:

TankWar 单机(JAVA版)版本2.2 超级炮弹_TankWar 单机JAVA版版本2.1