人物動畫狀態機
設定變數
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
標籤:20240309_1240