乐趣区

关于java:我所知道坦克大战单机版之机器坦克全消亡后重新加入键盘F2复活主坦克

本章目标

  • 机器坦克全沦亡后重新加入
  • 键盘 F2 复活主坦克

一、敌方坦克全沦亡后重新加入


咱们当初版本坦克在咱们击杀完敌方坦克后,就须要从新运行游戏窗口

咱们在运行游戏窗口时会从寄存敌方坦克的容器里增加十个坦克

那么当咱们将容器里的敌方坦克都杀完了,那是不是容器里就没有了?

那么咱们能够思考一下: 当寄存敌方坦克的容器里为空时了该怎么解决?

public class TankClient extends Frame {

    @Override
    public void paint(Graphics g) {
    
        // 省略其余关键性代码......
        // 如果寄存敌方坦克的容器里没有敌方坦克了
        if(tanklist.size() <=0){
            // 再次增加营垒为坏的坦克,并初始方向为:下
            for (int i = 0; i < 5;i++){tanklist.add(new Tank(50 + 40 * (i+1),50,this,false,Tank.Direction.D));
            }
        }
    }
    // 省略其余关键性代码......
}

这样咱们将敌方坦克击杀完后,又会从寄存敌方坦克的容器里持续增加敌方坦克

步骤总结

机器坦克全沦亡后重新加入
  • ✧ 解决寄存敌方坦克的容器
  • ✧ 从新对容器增加敌方坦克

二、键盘 F2 复活主坦克


当咱们的红色主坦克,再被敌方坦克击中没血后会沦亡

这时咱们的版本须要从新运行游戏窗口才能够再次复活开始游戏

那么咱们须要思考一下: 敌方坦克击毙主坦克时做了些什么事件?

咱们的存活状态会被设置为死亡状态、并且生命值也被击中减扣为 0

若咱们想按 F2 从新复活主坦克则须要对键盘事件、存货标识、生命值增加解决

class Tank{

    // 坦克键盘按下监听器
    public void keyPressed(KeyEvent e) {int key = e.getKeyCode();
        switch (key) {
            case KeyEvent.VK_F2:
                if(!this.live && this.camp){
                    this.live = true;
                    this.liveHp = 100;
                }
                break;
            // 省略其余关键性代码......
        }
    }
    // 省略其余关键性代码......
}

这是当咱们的主坦克即便被击毙了,也能实现复活,只须要按下 F2 即可

步骤总结

键盘 F2 复活主坦克
  • ✧ 增加 F2 的键盘事件处理
  • ✧ 解决坦克的存活、生命值属性

参考资料


尚学堂:坦克大战(马士兵老师)

退出移动版