国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

命令模式 Command Pattern 《游戲設計模式》學習筆記

這篇具有很好參考價值的文章主要介紹了命令模式 Command Pattern 《游戲設計模式》學習筆記。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

對于一般的按鍵輸入,我們通常這么做,直接if按了什么鍵,就執(zhí)行相應的操作
命令模式 Command Pattern 《游戲設計模式》學習筆記,命令模式,游戲,設計模式

在這里我們是將用戶的輸入和程序行為硬編碼在一起,這是我們很自然就想到的最快的做法。
但是如果這是一個大型游戲,往往我們需要實現(xiàn)一個按鍵配置的功能(話說2077直到上線都沒有實現(xiàn)這個功能),這樣寫就不行了。 我們需要讓這些“行為”可以變化。

同時,我們有時候還會希望玩家可以操控不同的角色,而不同的就角色可能在按同一個按鍵的時候做出不同的動作。

這個時候我們就需要考慮使用命令模式了。

采用命令模式后,我們將jump,fire這些方法做成一個抽象類command的子類,這樣每個命令就有了面向對象的形式的封裝(將命令變?yōu)閿?shù)據(jù)對象,讓這個對象和其他對象一樣可以被存儲和傳遞)
定義基類
命令模式 Command Pattern 《游戲設計模式》學習筆記,命令模式,游戲,設計模式

定義命令子類,其他的命令和這個子類一樣定義就行
命令模式 Command Pattern 《游戲設計模式》學習筆記,命令模式,游戲,設計模式

注意到這里會傳入actor,也就是說,這樣做的話游戲就會根據(jù)傳入的對象來做不同的復雜指令
然后在剛才做按鍵輸入的地方,我們這么做,只傳回命令類的指針,這里buttonX_的類型是command*

命令模式 Command Pattern 《游戲設計模式》學習筆記,命令模式,游戲,設計模式

然后在Tick里這么寫

命令模式 Command Pattern 《游戲設計模式》學習筆記,命令模式,游戲,設計模式

通過這種方式,我們就解決了開頭提到的兩個問題。

1.對于不同的按鍵,由于其類型都是command*,我們只需要讓這個指針指向不同的子類命令對象,就可以實現(xiàn)按鍵配置功能了。

2.對于不同的游戲角色,我們因為會往里邊傳入不同actor的引用,最后調(diào)用的是actor中內(nèi)置的方法(如jump方法),這就實現(xiàn)了不同的角色擁有不同的按鍵行為。

通過命令模式,我們實現(xiàn)了將按鍵輸入控制器,輸入的命令,以及目標角色的行為三者解耦。

命令模式還可以做什么?

由于我們將命令封裝成了數(shù)據(jù),那么我們就很容易實現(xiàn)一個命令隊列,從而可以輕易實現(xiàn)撤銷、重做、時光倒流等功能。
命令模式 Command Pattern 《游戲設計模式》學習筆記,命令模式,游戲,設計模式

命令數(shù)據(jù)還可以形成日志,用于復現(xiàn)用戶行為,便于重復測試同樣序列命令對各種目標的影響。

原書鏈接:
命令模式 · Design Patterns Revisited · 游戲設計模式 (tkchu.me)文章來源地址http://www.zghlxwxcb.cn/news/detail-625735.html

到了這里,關于命令模式 Command Pattern 《游戲設計模式》學習筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 設計模式——命令模式(Command Pattern)+ Spring相關源碼

    類型: 行為型模式 目的: 將一個請求封裝成一個對象,從而使您可以用不同的請求對客戶進行參數(shù)化。 2.1.1 定義命令類接口 2.1.2 定義命令執(zhí)行者 2.1.3 被處理對象Stock。 菜鳥教程定義 被處理的對象 是Stock。 2.1.4 封裝處理Stock的命令 雖然 Runnable 接口本身并不是一個命令模式

    2024年02月06日
    瀏覽(25)
  • 命令設計模式(Command Pattern)[論點:概念、組成角色、相關圖示、示例代碼、框架中的運用、適用場景]

    命令設計模式(Command Pattern)[論點:概念、組成角色、相關圖示、示例代碼、框架中的運用、適用場景]

    ??????? 命令設計模式 (Command Pattern)是一種行為設計模式,它將請求的操作封裝為一個對象,從而實現(xiàn)請求者和執(zhí)行者之間的解耦。這樣,請求者只需要知道如何發(fā)送請求,而無需關心請求的具體執(zhí)行過程。命令模式在很多場景下都非常有用,例如撤銷操作、延遲執(zhí)行、

    2024年02月01日
    瀏覽(25)
  • 設計模式-命令模式(Command)

    設計模式-命令模式(Command)

    命令模式(Command Pattern)是一種行為型設計模式,也被稱為動作模式或事務模式。它的核心思想是將一個請求封裝成一個對象,從而使你可以用不同的請求對客戶進行參數(shù)化。對請求排隊或記錄,以及支持可撤銷的操作。命令模式的主要目的是將發(fā)出請求的對象和執(zhí)行請求的

    2024年04月27日
    瀏覽(33)
  • 說說設計模式~命令模式(command)

    回到目錄 命令模式(Command Pattern)是一種行為型設計模式,它將請求封裝成一個對象,從而允許我們根據(jù)不同的請求將客戶端參數(shù)化,并且能夠將請求排隊或記錄請求日志、支持撤銷操作等。該模式使得請求的發(fā)送者和接收者解耦。 使用命令模式的主要目的是將方法調(diào)用封

    2024年02月11日
    瀏覽(24)
  • 設計模式之命令模式(Command)的C++實現(xiàn)

    設計模式之命令模式(Command)的C++實現(xiàn)

    在軟件開發(fā)過程中,“行為請求者”和“行為實現(xiàn)者”通常呈現(xiàn)一種“緊耦合”,如果行為的實現(xiàn)經(jīng)常變化,則不利于代碼的維護。命令模式可以將行為的請求者和行為的實現(xiàn)者進行解耦。具體流程是將行為請求者封裝成一個對象,將行為實現(xiàn)者抽象成一個類。 有2兩種不同

    2024年02月10日
    瀏覽(25)
  • C++設計模式_23_Command 命令模式

    我們將Command 和Visitor歸為“行為變化”模式。 Command 命令模式與函數(shù)對象十分類似,但在C++主流框架中,函數(shù)對象(function object)應用的更為廣泛。 在組件的構建過程中,組件行為的變化經(jīng)常導致組件本身劇烈的變化?!靶袨樽兓蹦J綄⒔M件的行為和組件本身進行解耦,從

    2024年02月06日
    瀏覽(16)
  • 《golang設計模式》第三部分·行為型模式-02-命令模式(Command)

    《golang設計模式》第三部分·行為型模式-02-命令模式(Command)

    命令模式(Command)將類的業(yè)務行為以對象的方式封裝,以便實現(xiàn)行為的參數(shù)化、撤銷或重做等需求。 非命令模式的困惑: 類的行為在運行時是以實例方法的形式調(diào)用的,當方法執(zhí)行完畢并返回后,方法棧將會消除;方法的運行狀態(tài)(主要指局部變量)保存在棧幀中,它會隨

    2024年02月07日
    瀏覽(24)
  • 命令模式(Command Pattern)

    命令模式(Command Pattern)

    一、定義 命令模式(Command Pattern)是一種數(shù)據(jù)驅動的設計模式,它屬于行為型模式。請求以命令的形式包裹在對象中,并傳給調(diào)用對象。調(diào)用對象尋找可以處理該命令的合適的對象,并把該命令傳給相應的對象,該對象執(zhí)行命令。 將一個請求封裝為一個對象,從而使你可用

    2024年02月06日
    瀏覽(12)
  • (三)行為模式:2、命令模式(Command Pattern)(C++示例)

    (三)行為模式:2、命令模式(Command Pattern)(C++示例)

    目錄 1、命令模式(Command Pattern)含義 2、命令模式的UML圖學習 3、命令模式的應用場景 4、命令模式的優(yōu)缺點 5、C++實現(xiàn)命令模式的實例 1、命令模式(Command Pattern)含義 命令模式(Command),將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數(shù)化;對請求排

    2024年02月12日
    瀏覽(19)
  • 設計模式——原型模式(Prototype Pattern)

    設計模式——原型模式(Prototype Pattern)

    概述 ?????? 原型模式(Prototype? Pattern):使用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象。原型模式是一種對象創(chuàng)建型模式。原型模式的工作原理很簡單:將一個原型對象傳給那個要發(fā)動創(chuàng)建的對象,這個要發(fā)動創(chuàng)建的對象通過請求原型對象拷貝自

    2024年01月16日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包