制作的小游戏中兵棋对战场景,设想效果如下:5号小兵对正下方3号小兵释放技能,会连带4号小兵和2号小兵收到伤害。
经过运算,收到连带伤害的单位id会记录在列表brd_rx_lst中,然后循环通知列表中的单位将造型切换为受伤状态的造型
但运行中出现问题,本应收到伤害的4号单位并未播放受伤动画。
通过跟踪此时各单位的状态发现,2号、3号、4号单位的血量均已受伤(初始状态为5滴血),说明后台运算已经计算了对4号单位的伤害,只是前端未播放受伤动画。初步怀疑是通知消息的响应速度慢于其他运算速度,还没等4号单位相应通知指令,循环已经将count+1,并通知列表中下一个单位了。
为了验证猜测,我讲循环中增加了延时积木。
增加延时后,3个被攻击的单位均播放了受伤动画,但是明显存在动画滞后的情况,3号、4号单位已经播放完受伤动画了,2号单位才开始播放受伤动画,效果并不好。
不知道有没什么方法能解决通知消息响应速度慢于其他运算的问题?
我一般用这个,可以用计时器把运行时间显示出来,然后精准把控