我所知道坦克大战(单机版)之机器坦克全消亡后重新加入、键盘F2复活主坦克

28640

本章目的

  • 机器坦克全消亡后重新加入
  • 键盘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));
            }
        }
    }
    //省略其他关键性代码......
}

这样我们将敌方坦克击杀完后,又会从存放敌方坦克的容器里继续添加敌方坦克

image.png

步骤总结

机器坦克全消亡后重新加入
  • ✧ 处理存放敌方坦克的容器
  • ✧ 重新对容器添加敌方坦克

二、键盘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即可

image.png

步骤总结

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

参考资料


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

阅读 816

心有多大,舞台就有多大

110 声望
23 粉丝
0 条评论

心有多大,舞台就有多大

110 声望
23 粉丝
文章目录
宣传栏