首页
/
每日頭條
/
遊戲
/
遊戲設計模式講解
遊戲設計模式講解
更新时间:2025-07-03 15:26:00

經常有人會說,程序員寫代碼要什麼設計模式,随便寫就行,這其實是一種很不好的習慣,就好比蓋房子,不需要設計圖随便蓋就可以,但是想要蓋成高樓大廈,一定要經過嚴謹的設計,不然就容易崩塌。我們采用設計模式來寫代碼,更多的,是為了不坑自己。

遊戲設計模式講解(從遊戲開發一個經典例子)1

今天我們來講一個經典的設計模式,策略模式。

舉個簡單的例子,我們玩RPG遊戲中,玩家都有各式各樣的武器,每個武器攻擊的動畫效果都不一樣,如果我們使用簡單的方式來做,可以寫很多個if或者switch之類的語句,判斷當前的武器是否是斧頭,那麼進行揮砍,判斷當前的武器是否是長槍,那麼刺向敵人,或者是弓箭,進行拉弓操作。并且,有些武器可能還有必殺技,又是一套很多個不同的if語句。

而策略模式,正是為了解決上述問題,策略模式,定義了算法族,并且算法之間可以互相替換。這個設計模式的好處,在于算法的變更獨立于使用算法的人。可能聽起來比較拗口,上述遊戲設計的例子例子中,使用不同的武器,就是不同的算法,如果我們新增一個新的武器,隻要新增新的算法,而去掉一個武器,隻要删除舊的算法。

遊戲設計模式講解(從遊戲開發一個經典例子)2

可能有人會問,這種設計的好處是什麼呢?明明多寫幾個if的事情,為什麼要設計得如此複雜。首先,在遊戲中,除了主角之外,還有很多不同的角色跟怪物,他們也有可能可以使用多種武器,那麼同樣的代碼要出現非常多次,非常的冗餘,而在軟件設計中,代碼冗餘的危害是非常大的,舉個簡單的例子,新增一個武器,就要涉及到非常多處的代碼,稍有不慎,就可能會改漏,帶來故障。

遊戲設計模式講解(從遊戲開發一個經典例子)3

這個是上述例子畫出來的類圖,這種設計模式有什麼好處呢?假如我們新增了一個新的怪物,怪物B,那麼隻要繼承角色這個類,設置他使用的武器,就可以做出攻擊動作了,同樣,假如我們新增一個新的武器,例如機械鍵盤,那麼同樣隻要新建一個機械鍵盤的類,實現武器的接口即可,當我們實現完之後,原有的主角程序員,隻要調用跟換武器為機械鍵盤,便可以使用機械鍵盤去攻擊了!如果我們不适用設計模式,新增一個機械鍵盤作為武器,又要增加多少工作量呢!

總結

作為一個程序員,我覺得對寫代碼應該是有追求的,那樣才能夠稱之為一個合格的工程師,隻有這樣,我們才能夠不停的進步。可能有人會說,這個代碼已經這樣了,沒救了,那是否需要加強思考,找到現有的問題,再下一次設計中去解決呢?提升效率的同時又提高了自己的能力!

好了,今天我們就介紹到這裡,再次祝大家中秋快樂。歡迎大家關注我,共同學習,共同進步。大家的支持是我繼續唠嗑的動力。同名公衆号(沙茶敏碎碎念)

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
親子0-6個月遊戲
親子0-6個月遊戲
親子0-6個月遊戲?成長公約遊戲陪伴19享受生活,享受當下,我來為大家科普一下關于親子0-6個月遊戲?以下内容希望對你有幫助!親子0-6個月遊戲成長公約遊戲陪伴19享受生活,享受當下!幼兒園放學的路上,除了和孩子聊聊幼兒園的生活,還可以欣賞...
2025-07-03
gtasa5代地圖
gtasa5代地圖
gtasa5代地圖?之前有一款遊戲和GTA一樣名震江湖,最後因為GTA5的到來而漸漸沒落了,它在2010年發售,不過沒有幾天就更新了盜版,所以這個遊戲廠商一直處于虧錢的狀态,那麼它究竟優秀在哪裡呢?說實話就是玩法的和地圖大小了,在自由世界的...
2025-07-03
遊戲是如何被制作出來的
遊戲是如何被制作出來的
很多朋友好奇是怎麼制作遊戲的,然後也想學習一下制作遊戲,今天就跟大家聊一下遊戲制作的東西。遊戲公司開發一款遊戲是由幾個不同的崗位組成的,策劃、原畫、設計、3D模型、程序等.這五大模塊下還細分不同的小模塊。今天把比較具有代表性的說一下就可以了...
2025-07-03
提升注意力的遊戲排行榜
提升注意力的遊戲排行榜
孩子的專注力是被保護出來的許多家長會抱怨自己的孩子:□有點聲響就分神□做事常常丢三落四□寫作業磨磨蹭蹭,邊寫邊玩□一個玩具沒玩兩分鐘,又去幹别的事□上課不專心聽講、小動作多、常常東張西望或發呆這些“小毛病”被冠上“孩子專注力不好”的标簽,家...
2025-07-03
英雄聯盟英雄登場率排名最新
英雄聯盟英雄登場率排名最新
《英雄聯盟》已經進入了S9的季前賽版本,在新的賽季中新增設了許多遊戲機制,玩家可以更加自主的決定自己的打法,那麼一起看來看看有什麼變化吧:防禦塔鍍層遊戲開局,防禦塔會有一個鍍層,擊破鍍層可以蝴蝶額外金币,同時也增加了防禦塔的防禦力。屬性符文...
2025-07-03
Copyright 2023-2025 - www.tftnews.com All Rights Reserved