首页
/
每日頭條
/
遊戲
/
遊戲設計模式講解
遊戲設計模式講解
更新时间:2025-12-08 09:05:26

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

遊戲設計模式講解(從遊戲開發一個經典例子)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
推荐阅读
王者榮耀各版本玩法技巧
王者榮耀各版本玩法技巧
想要畫面卡頓、幀數低而煩惱麼?想要團戰七進七出絲滑般的流暢?那你肯定不能錯過這篇文章。下面就來給大家帶來“千蕭”分享的王者榮耀新版本遊戲設置選擇的推薦。先來分析下大家手中的手機處理器:T1:骁龍855、骁龍845、骁龍835、A12、A11...
2025-12-08
米老鼠遊戲中的規則
米老鼠遊戲中的規則
​老陸,阿Q,小美三人畢業到教授家裡做客,菜過五味之後,教授拿出了一副珍藏多年的竹制麻将。突然好高興,當時有六年沒打過麻将了!可是!老陸是北京人,阿Q是日本人,小美是成都人,教授是德國人,試問怎麼統一規則?啊啊啊是不是好氣!我們聽教授的規則...
2025-12-08
王者榮耀蔡文姬壓制哪些英雄
王者榮耀蔡文姬壓制哪些英雄
大家好,這裡是每周日更新的榮耀周報,我是你們的正驚小弟。離二月份的結束就剩下了最後一周,應該很多玩家還被“困”在家中,這麼閑的日子不拿王者榮耀來上分實在是太浪費了。話不多說,一起來看看本周又有哪些大事發生吧!輔助登頂勝率榜蔡文姬成第一輔助本...
2025-12-08
這遊戲太好玩了完全是考驗手速
這遊戲太好玩了完全是考驗手速
哈喽哈喽你們好!最近這幾天天氣是很不錯的,我也是随着春風花又開哈!大家過的怎麼樣呢?今天我要帶來的是一款休閑手遊,玩過節奏大師的小夥伴們,你們應該對這款遊戲上上心了啊!節奏大師的玩法偏于現代和時尚,這款遊戲則是比較溫柔,浪漫一點,以鋼琴曲為...
2025-12-08
王者榮耀賽季s13什麼時間開啟
王者榮耀賽季s13什麼時間開啟
[海峽網]王者榮耀S13賽季從9月27日開始,到現在已經是将近3個月了,如果按照正常賽季時間的話,那麼本賽季已經快要結束了,但是顯然S13是比較特殊的賽季,這個賽季會比正常的賽季時間要長一些,那麼S13賽季還有多久結束呢?王者榮耀s13賽馬...
2025-12-08
Copyright 2023-2025 - www.tftnews.com All Rights Reserved