本章目标
- 机器坦克全沦亡后重新加入
- 键盘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的键盘事件处理
- ✧ 解决坦克的存活、生命值属性
参考资料
尚学堂:坦克大战(马士兵老师)