天天看點

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);
    }
  }