国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)的邏輯即可。


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

分享到微博請遵守國家法律
南通市| 秀山| 南川市| 响水县| 连山| 泊头市| 霞浦县| 三江| 铜鼓县| 紫金县| 观塘区| 裕民县| 张家川| 吕梁市| 全州县| 皮山县| 华坪县| 靖安县| 皋兰县| 突泉县| 麻阳| 赣榆县| 思南县| 吐鲁番市| 白河县| 二手房| 息烽县| 玉树县| 陆丰市| 兴海县| 永兴县| 衡阳县| 赤壁市| 茶陵县| 开封县| 横峰县| 明光市| 梅河口市| 大庆市| 临漳县| 荆门市|