最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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


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

分享到微博請遵守國家法律
桓台县| 托克托县| 新巴尔虎左旗| 阜城县| 云林县| 高平市| 门头沟区| 米脂县| 东山县| 乐清市| 遂昌县| 布尔津县| 龙门县| 台山市| 乌拉特后旗| 碌曲县| 东乌| 罗甸县| 行唐县| 鲁甸县| 巴彦淖尔市| 娱乐| 余干县| 策勒县| 岳池县| 南丰县| 合水县| 汤原县| 玉屏| 鲁甸县| 凤台县| 绥中县| 台湾省| 敖汉旗| 滨州市| 宝清县| 贵溪市| 广东省| 普定县| 盘山县| 延津县|