36. 人物动画
人物动画状态机

设置变量
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(这里有点问题,如果我实现了一个弃牌逻辑,那么弃牌岂不是也要播放动画了?)

浙公网安备 33010602011771号