无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

游戲編程模式- 命令模式

2022-06-09 17:59 作者:YONCE1999  | 我要投稿

命令模式

命令是具象化的方法調(diào)用

把方法調(diào)用封裝起來。通過封裝方法調(diào)用,可以把運算快封裝成形,所以調(diào)用此運算對象不需要知道事情是如何進行的。通過封裝方法調(diào)用,可以實現(xiàn)一些很聰明的事,比如建造類游戲或者編輯器中的重做和撤銷,日志記錄,記錄玩家的一句游戲中發(fā)起的命令來實現(xiàn)對局回放的功能。

通俗一點來說,舉一個例子,作為一個帶兵打仗的將軍,我們需要指揮軍隊派兵布陣,當我們需要訓(xùn)練一個叫做長蛇陣的陣型,需要士兵配合從一個正方形方陣變換到長條型方陣,然而作為將軍我們并不想了解具體哪一個士兵需要從哪個位置移動到另一個位置,我們只希望當我發(fā)出長蛇陣的集結(jié)命令時,最終能夠形成這個陣型。如果對長蛇陣之中一些士兵位置不滿意,我們可以任意調(diào)整他們的位置,不管怎么調(diào)整,將軍任然只需要發(fā)出同樣的命令。在這個過程中,也可以感覺到命令模式可以有助于我們復(fù)用代碼,例如可以用于AI的狀態(tài)機實現(xiàn)。


需求

假設(shè)我們有如下的的需求,當用戶分別按下XYAB的按鍵時,會觸發(fā)跳躍,射擊,切換武器等邏輯,一種常用的做法如下所示,這時候策劃有一個需求,希望支持玩家可以自定義按鍵


采用命令模式之后,達到的效果應(yīng)該如下

將方法封裝為命令
實現(xiàn)思路

簡單地實現(xiàn)以上的例子,代碼如下

普通的實現(xiàn)思路

命令模式

撤銷和重做

撤銷最后一條命令或者多重撤銷是常見需求,使用命令模式將會使其變得非常簡單。

增加Redo 和Undo的實現(xiàn),根據(jù)命令的具體情況設(shè)置用于記錄之前狀態(tài)的變量,例如執(zhí)行移動命令的之前,存儲一個當前位置用于Undo等等。多重撤銷的實現(xiàn)也非常簡單,我們只需要記錄一個命令隊列,根據(jù)當前的Index來執(zhí)行對應(yīng)的邏輯即可。


游戲編程模式- 命令模式的評論 (共 條)

分享到微博請遵守國家法律
邵阳市| 通辽市| 萍乡市| 平乡县| 阿城市| 舒兰市| 凤城市| 葫芦岛市| 新平| 永昌县| 澜沧| 通江县| 永城市| 青田县| 朔州市| 类乌齐县| 临高县| 佳木斯市| 称多县| 嵩明县| 上犹县| 哈巴河县| 青川县| 安图县| 栖霞市| 昌平区| 廉江市| 五大连池市| 游戏| 广宁县| 博客| 海城市| 南漳县| 洛浦县| 景泰县| 长兴县| 福贡县| 通州市| 石首市| 西充县| 社会|