狀態機和命令模式組合

狀態機是實現AI的基本機制,而命令模式是解耦狀態機和外部輸入事件的一種方式。緩存

在quake雷神之錘中大量使用了命令模式:code

命令模式首先有一個 命令緩衝區 用於存放外部發送的命令, 狀態機註冊相關命令的 handler用於監聽關心的事件。事件

實現以下:字符串

gameObject
  ----->CommandHandler  
  ----->StateMachine

當stateMachine關心的事件發生的時候,會將事件緩存到 stateMachine內部,當某個state執行checkCommand代碼的時候,會唱那個stateMachine的命令緩存中讀取命令。擴展

而命令能夠是字符串格式, 經過解析獲得具體命令含義。這樣擴展性不錯。handler

相關文章
相關標籤/搜索