38. 敌人的动画执行逻辑

本节目标

上节只是把逻辑写好了,为了让游戏看起来更好看,我们需要将敌人的动画也加上去

实现

动画状态机

敌人的状态比较简单,只有站立、加Buff、攻击、受伤、死亡这五种状态

各状态之间的转换关系如下

站立 -> 加 Buff

通过 skill 触发,立刻执行

因为是从 Any State 出来的,所以不需要 Can Transtion To Self

站立 -> 攻击

通过 attack 触发,立刻执行

因为是从 Any State 出发,所以不用勾选 Can Transtion To Self

站立 -> 受伤

通过 hit 触发,立刻执行

因为是从 Any State 出发,所以不用勾选 Can Transtion To Self

站立 -> 死亡

通过 isDead = true 触发,立刻执行

因为是从 Any State 出发,所以不用勾选 Can Transtion To Self

加 Buff -> 站立

完整播放完一次动画后执行

攻击 -> 站立

完整播放完一次动画后执行

受伤到站立

完整播放完一次动画后执行

通过代码播放加 Buff 和攻击动画

如上图所示,当敌人回合开始的时候,会判断一下执行的目标,如果是自己的话就执行 skill,如果是目标的话就执行 attack

这里使用协程来播放动画,原因是敌人动画需要播放到 60% 的时候才能显示实际扣血或者加的buff效果。又学到了一个新的协程等待的办法

通过代码播放受伤动画

通过代码播放死亡动画

修复伤害不太正确的问题

之前打出的伤害,没有考虑buff效果,需要修改下面的地方进行修正

项目相关代码

代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git

标签:20240311_1253

posted @   hellozjf  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示