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

本文详细介绍了坦克大战游戏中的核心处理逻辑,包括我方坦克子弹的连发限制、子弹击中敌方坦克后的处理方式、坦克被击中时的爆炸效果实现及敌方坦克的自由移动算法。

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

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

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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/hijackhou/p/8232937.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值