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