天天看点

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

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

首先在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);
    }
  }