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