学习Java随记之swing编程(2)

坦克大战各种限制要求的处理逻辑:

(1)我方坦克只能可以连发子弹,但只能连发n个(即界面上最多只能有n个我方子弹)

  在按J键时判断子弹集的size,当符号要求方可再次发出子弹,然后在画子弹时判断每颗子弹是否还活着,子弹挂了就移出子弹集,以保障界面对于子弹数目的要求。

(2)当我方发出的子弹击中敌人坦克,子弹和敌人坦克一起消失

  在有画我方坦克、敌人坦克的面板里写判断我方子弹与敌人坦克是否相遇或者子弹击中坦克的函数,在函数中,击中时,子弹和坦克都死了,然后要求刷新子弹和坦克时只画活着的坦克和子弹,就能满足要求。

(3)坦克被击中时有爆炸效果

  准备3张炸弹不同形态图片,给炸弹设置一个生命值,在paint函数不停刷新画炸弹时,生命值减一,直到为0;这个过程中控制生命值在不同范围内画不同图片,这样就有了图片缓慢切换的动态效果

(4)敌人坦克可以自由移动

  设定一个坦克自由移动固定距离,使用for循环,里面使用线程暂停来使坦克缓慢移动(否则for循环很快就执行完了),然后再用随机数更改坦克方向

原文地址:https://www.cnblogs.com/hijackhou/p/8232937.html