圖片
第一部分 設(shè)計(jì)概述
1.1 設(shè)計(jì)目的
我們設(shè)計(jì)了一款基于 FPGA 的SEA開發(fā)板 的飛機(jī)大戰(zhàn)游戲。飛機(jī)大戰(zhàn)游戲是一款休閑益智類游戲,既簡單又耐玩。在初始界面,我們有開始游戲、重新開始、皮膚選擇和結(jié)束游戲四個(gè)選項(xiàng)。開始游戲后,玩家可以用游戲手柄方便的控制飛機(jī)在屏幕上向任意方向移動,通過躲避子彈和射擊敵機(jī)得分,在屏幕左上角可以看到當(dāng)前生命和得分。
1.2 應(yīng)用領(lǐng)域
最近的一些復(fù)古游戲網(wǎng)上商店吸引了許多喜歡老式電子游戲的買家。一些愛好者一直在收集復(fù)古游戲產(chǎn)品,一些普通玩家也開始收集舊式磁帶和CD,還有小時(shí)候玩過的游戲機(jī)。
雖然復(fù)古游戲只占全球 1090 億美金游戲行業(yè)的一小部分,但確是非常有吸引力的縫隙市場。該游戲平臺可以作為一個(gè)復(fù)古游戲機(jī)使用,經(jīng)過后期加工改良,可以將游戲移植到專用游戲機(jī)或手機(jī)等設(shè)備上,供玩家使用。這款飛機(jī)大戰(zhàn)游戲,可以放松心情,釋放壓力,提高反應(yīng)能力。
1.3 主要技術(shù)特點(diǎn)
?。?) 在 BRAM 資源較少的情況下,采用了圖片壓縮編碼的方式,以較少的數(shù)據(jù)量來表示原來的像素矩陣。
?。?) 我們編寫了游戲的主菜單和控制邏輯,游戲功能豐富,界面美觀。
?。?) 我們外接了自制游戲手柄,可以直插在開發(fā)板上,方便地控制游戲。
1.4 關(guān)鍵性能指標(biāo)
?。?) 游戲界面美觀,飛機(jī)圖標(biāo)清晰,游戲動畫顯示流暢。
?。?) 游戲手柄上的搖桿與按鍵靈敏度高、指令延遲小。
1.5 主要創(chuàng)新點(diǎn)
?。?) 使用了自制游戲手柄,相比普通按鍵,能更方便地控制游戲,提升用戶體驗(yàn)。
?。?) 在板載 BRAM,資源較少的情況下,采用了圖片壓縮編碼的方式,以較少的數(shù)據(jù)量來表示原來的像素矩陣。
第二部分 系統(tǒng)組成及功能說明
2.1 整體介紹
系統(tǒng)硬件由 SEA 開發(fā)板(型號 xc7s25ftgb196-1)、游戲手柄拓展板和 HDMI 顯示屏組成。FPGA 讀取按鍵和搖桿的狀態(tài),來控制游戲顯示的內(nèi)容, 其中,F(xiàn)PGA 通過 IIC 方式來讀取搖桿的狀態(tài)。游戲總體控制模塊分為按鍵 功能控制、主菜單控制、游戲邏輯控制和文字圖片信息顯示控制四個(gè)方面。根據(jù)玩家不同的指令,HDMI 屏上顯示相應(yīng)的內(nèi)容。
2.2 各模塊介紹
根據(jù)總體系統(tǒng)框圖,給出各模塊的具體設(shè)計(jì)說明。
?。?) 游戲總體控制模塊
按鍵功能控制:不同的按鍵對應(yīng)不同的指令,該模塊主要負(fù)責(zé)按鍵消抖與指令轉(zhuǎn)化。
主菜單控制:游戲初始界面的主菜單有開始游戲、重新開始、皮膚選擇和結(jié)束游戲四個(gè)選項(xiàng)??梢酝ㄟ^按鍵上下移動光標(biāo),選擇不同功能。
游戲邏輯控制:該模塊主要進(jìn)行了游戲規(guī)則的設(shè)計(jì)。
顯示模塊:主要負(fù)責(zé)文字顯示和飛機(jī)圖標(biāo)、子彈顯示。
?。?) HDMI 顯示驅(qū)動模塊:驅(qū)動 HDMI 屏,在屏上流暢的顯示游戲界面。
?。?) 游戲手柄驅(qū)動模塊:驅(qū)動手柄上的 PCF8591 芯片,輸出搖桿的位置狀態(tài)。
?。?) IIC 通信模塊:實(shí)現(xiàn)游戲手柄和 FPGA 的通信,F(xiàn)PGA 讀取 PCF8591 輸出的數(shù)據(jù)。
第三部分 完成情況及性能參數(shù)
顯示的菜單如圖 3 所示,可以上下移動光標(biāo)選擇相應(yīng)的功能。游戲界面如圖 4 所示,實(shí)現(xiàn)了搖桿控制飛機(jī)朝任意方面移動。圖片清晰,畫面顯示流暢,指令延時(shí)小,并且游戲規(guī)則正確,可以給玩家良好的游戲體驗(yàn)感。
第四部分 總結(jié)
可擴(kuò)展之處
A.利用板載的 esp32 模塊,實(shí)現(xiàn)脫機(jī)下載。
B.可以存儲一些其他游戲,設(shè)計(jì)個(gè)游戲選擇菜單。
C.利用板載的藍(lán)牙模塊,實(shí)現(xiàn)聯(lián)機(jī)游戲。
D.增加游戲音樂部分。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<