人物动画状态机
设置变量
isParry 是否在防御
isSleep 是否正在睡觉
isDead 是否已经死亡
attack 攻击
hit 受伤
skill 技能
状态
stand 站立
parry_stand 防御
hurt 受伤
attack_pillow 攻击
sleep 睡眠
wake 醒来
skill 技能
death 死亡
状态切换
站立状态可以切换到防御、攻击、睡眠、技能
防御状态可以切换到站立、受伤、死亡
受伤状态可以切换到防御、睡眠
攻击状态可以切换到站立
睡眠状态可以切换到受伤、醒来、死亡
醒来状态可以切换到站立
技能状态可以切换到站立
变量与状态切换
站立 -> 防御
isParry = true
站立 -> 攻击
触发 attack
站立 -> 睡眠
isSleep = true
站立 -> 技能
触发 skill
防御 -> 站立
isParry = false
防御 -> 受伤
触发 hurt
防御 -> 死亡
isDead = true
受伤 -> 防御
isParry = true,要完整播放完受伤动画
受伤 -> 睡眠
isSleep = true,要完整播放完受伤动画
攻击 -> 站立
播放完动画就能回到站立状态
睡眠 -> 受伤
触发 hit
睡眠 -> 醒来
isSleep = false
醒来 -> 站立
播完动画
技能 -> 站立
代码控制
添加PlayerAnimation
,并把它绑定到 Player 上面
默认情况下进入 sleep 状态
玩家回合开始进入 stand 状态
玩家回合结束根据防御值进入不同状态
如果防御值大于0,则进入防御状态,否则进入睡眠状态
玩家攻击和技能动画
监听状态调用相应方法
在回合开始的事件中调用 PlayerTurnBeginAnimation
在回合结束的事件中调用 PlayerTurnEndAnimation
在丢弃了卡牌的时候调用 OnPlayerCardEvent(这里有点问题,如果我实现了一个弃牌逻辑,那么弃牌岂不是也要播放动画了?)
项目相关代码
代码仓库:https://gitee.com/nbda1121440/DreamOfTheKingdom.git
标签:动画,站立,受伤,人物,状态,36,睡眠,防御 From: https://www.cnblogs.com/hellozjf/p/18062648