5780-Qt C++開發(fā)的植物大戰(zhàn)僵尸工程源碼 可借鑒的開發(fā)思路
Qt/C++開發(fā)的植物大戰(zhàn)僵尸工程源碼 可借鑒的開發(fā)思路
附:完整設(shè)計(jì)文檔、UML圖、不定時(shí)提供源碼分析講解,協(xié)助了解功能運(yùn)作原理。
1 系統(tǒng)需求分析
當(dāng)可怕的僵尸入侵的時(shí)候,誰能想到,弱小的植物能承擔(dān)起保衛(wèi)家園的責(zé)任?也許你早聽 說過那些沒有腦子的僵尸席卷整個(gè)街區(qū)、吃掉一戶一戶屋主人的腦子的故事。但這次,你終于 要真正面對(duì)入侵自己家園的僵尸了。有僵尸在你的草坪上!
草坪是植物們的領(lǐng)地。面對(duì)瘋狂踐踏的入侵者,植物們不惜以自己的身軀阻擋僵尸前進(jìn) 的道路�?墒墙┦睦X不僅可以用來吃掉腦子,還可以用來吃掉植物。面對(duì)擋路的一切東西, 僵尸們選擇:吃掉它們!
用什么來保衛(wèi)你自己的家園和腦子呢?我們只有勇氣,和自己手中的那把小鏟子。
試設(shè)計(jì)游戲,并實(shí)現(xiàn)以下功能:
擁有圖形界面,如游戲主界面和準(zhǔn)備界面
能完成游戲操作,如放置植物,刪除植物,生成僵尸,攻擊等操作
正確且合理的勝負(fù)判斷
實(shí)現(xiàn)卡牌冷卻效果
兩個(gè)場(chǎng)景的選擇,晴天和黑夜
背景音效的實(shí)現(xiàn),如碰撞,放置植物以及收集陽光等
正確顯示陽光槽,植物卡牌槽等部件
實(shí)現(xiàn)九種植物和七種僵尸
實(shí)現(xiàn)調(diào)試功能,按下一些按鍵可以執(zhí)行一些特殊操作,比如快速產(chǎn)生僵尸和增加陽光
實(shí)現(xiàn)代碼層級(jí)的一些基本要求,如面向?qū)ο蟮睦^承派生多態(tài)等機(jī)制,文件操作(讀取 媒體資源文件,讀取記錄用戶名和游戲最長(zhǎng)時(shí)間的文本文件),一些基本數(shù)據(jù)結(jié)構(gòu)的使用 (如 list,map,set)等
2 總體設(shè)計(jì)
植物大戰(zhàn)僵尸是一款游戲非常經(jīng)典的益智類游戲,畫風(fēng)友好,玩法多樣,整體邏輯比較 清晰。本次我選擇使用 c++的 GUI 庫(kù) Qt 來寫復(fù)現(xiàn)游戲�?傮w上來說完成了游戲加載界面,菜單選擇界面,主游戲邏輯和交互界面和游戲的基本功能。由于手頭的資源有限(比如植物 和僵尸的貼圖)以及時(shí)間等方面的限制,本游戲?qū)崿F(xiàn)了了七種僵尸和九種植物,以及白天和 黑夜兩個(gè)場(chǎng)景模式,具有了一定的可玩性。
首先談一下我在初期設(shè)計(jì)的主要想法。我認(rèn)為,同為程序,不同種類的程序的開發(fā)思路 是截然不同的。比如設(shè)計(jì)一個(gè)數(shù)據(jù)管理系統(tǒng)和游戲的思路是截然不同的。我認(rèn)為游戲的最 大特點(diǎn)在于它是一種交互性極強(qiáng)的產(chǎn)品形式,而且一般工程量較大,需要兼顧內(nèi)在邏輯和 外在用戶交互界面,并且由于和用戶的交互性極強(qiáng),操作多樣化,非常適合面向?qū)ο蟮拈_發(fā) 思想。因此本次自選題我選擇了實(shí)現(xiàn)植物大戰(zhàn)僵尸這一經(jīng)典的游戲。
基于自己的水平考慮,我選擇了非常常規(guī)的經(jīng)典面向?qū)ο蟮乃悸�,定義良好的復(fù)用性強(qiáng) 的基類,如果想要添加新的對(duì)象和功能,只需要從基類派生并將新類加入生成器。在邏輯和 UI 界面的關(guān)系選擇上,讓每個(gè)游戲?qū)ο筘?fù)責(zé)處理自己的邏輯和動(dòng)畫,而不是將邏輯和畫面 完全分開,每回合邏輯執(zhí)行完成后渲染畫面。因?yàn)榍罢唠m然效率低了一些,但是總體上說更 符合人的思路,對(duì)前期的架構(gòu)設(shè)計(jì)要求也沒有那么高,可以后期逐步完善,拓展性更強(qiáng)一 些。
而在要求上,我完成了必須要求
函數(shù)重載
類的繼承和抽象基類
動(dòng)態(tài)分配 內(nèi)存和文件操作
使用了 list 和 set 等數(shù)據(jù)結(jié)構(gòu)
總體上來說,需要實(shí)現(xiàn)的模塊和功能有:
渲染場(chǎng)景:包括加載歡迎界面和游戲主界面
多種植物:游戲的主要實(shí)體對(duì)象之一
多種僵尸:游戲的主要實(shí)體對(duì)象之一
多種飛行物:如豌豆、孢子等,也是游戲的重要對(duì)象
多種動(dòng)畫:在游戲中需要根據(jù)實(shí)物的狀態(tài)來更新各種動(dòng)畫
獎(jiǎng)勵(lì)物:陽光等
多種卡片:主要指的是種植植物是選擇的卡片,需要完成冷卻功能




本源碼地址:http://m.bmm520.net/vip/vc/2023/1105/24099.html