狀態機和命令模式的融合

一:有限狀態機 有限狀態機是構成遊戲機制的核心要素,對於主角玩家,須要基於狀態機操控,對於AI控制單位,須要狀態機來控制。 狀態和狀態機的設計能夠參考這裏git

狀態設計: http://git.oschina.net/liyonghelpme/rongYaoDaLuCode/blob/master/com/liyong/AIState.cs?dir=0&filepath=com%2Fliyong%2FAIState.cs&oid=c516631f7bb3eb9fc96d5e43c17f4ff9afc430cf&sha=bca220d4f0a01b2e201440556ea8968c3d0aad91函數

狀態機設計: http://git.oschina.net/liyonghelpme/rongYaoDaLuCode/blob/master/com/liyong/StateMachine.cs?dir=0&filepath=com%2Fliyong%2FStateMachine.cs&oid=cf02c0448c7b931666b07f32ba2b39873debebbc&sha=bca220d4f0a01b2e201440556ea8968c3d0aad91.net

一個狀態機中的某個狀態能夠有多種實現,經過斷定前置條件,來選擇合適的狀態。設計

二:命令模式 命令相似於一種小語言,用於描述和遊戲業務相關的邏輯,一種簡單的命令設計,經過空格符號來分割不一樣的命令單元。 例如 "op arg1 arg2" 這樣一個字符串,經過在命令緩衝區中存放這些字符串,來序列化業務邏輯。3d

一個命令緩衝區的設計: http://git.oschina.net/liyonghelpme/rongYaoDaLuCode/blob/master/com/liyong/CommandHandler.cs?dir=0&filepath=com%2Fliyong%2FCommandHandler.cs&oid=06917459889661fbbb907eee5b3d36cdd09d7f68&sha=bca220d4f0a01b2e201440556ea8968c3d0aad91遊戲

三:融合兩者: 經過狀態機向命令緩衝區註冊處理函數,當有新的命令壓入到緩衝區的時候,就會調用狀態機的處理函數,根據新的命令能夠執行切換狀態等一系列動做。字符串

相關文章
相關標籤/搜索