天天看點

基于FPGA的Bubble 遊戲開發

1.為了節約算法資源消耗,玩家發射的泡泡數量有限,統一為20個炮彈。

2.為了展現不同速度下的難度,弱化滑鼠的作用,發送泡泡會左右快速或者慢速移動,然後瞄準後,使用者發射泡泡。

3.為了将程式量控制在1萬行以内,做如下的簡化:如果發送的泡泡和上方的泡泡,2個泡泡顔色相同,那麼自動消除這2個泡泡,但是不考慮連鎖的反應(即橫向,斜向,多個的情況,這個涉及到複雜的搜尋機制,本課題隻考慮發射的泡泡和上方的泡泡相同的時候才消泡泡),因為這個部分非常複雜。注意,必須是發射的和原來有的泡泡顔色相同才消除,兩個發射的或者兩個本來就有的放在一起的,不消除。

4.如果20個泡泡發射完成,如果使用者消除的泡泡次數小于5,那麼會提示遊戲失敗。此時安健下去重新開始遊戲。如果使用者消除的泡泡次數大于15,那麼提示遊戲勝利,安健按下去,則重新開始遊戲。

----------------------------------------------------------------------------------------------------------

5.開發闆上的PS/2接口接滑鼠,USB接口接鍵盤

6.按下開發闆最左邊的按鍵,系統複位,複位後,遊戲重新開始,且泡泡顔色排列會新的随機産生;

7.8個數目管的功能:

右邊連續四個,為使用者遊戲積分,中間2個數位管,表示遊戲一局已經發送的泡泡數量,0~20顯示

然後最左邊的2個數位管,第一個,0位慢速模式,1表示快速模式,第二個數位管不使用,沒具體功能。

------------------------------------------------------------------------------------------------------------------

8.遊戲中,滑鼠右擊S,表示SLOW,慢速模式,滑鼠右擊F,表示FAST,快速模式。

------------------------------------------------------------------------------------------------------------------

9.如果泡泡超出遊戲界面的紅色虛線,那麼會失敗,螢幕會彈出悲傷的表情

10.每次消除一個泡泡,會有100分得分,如果中得分大于1500分,那麼會勝利,螢幕會彈出高興的表情

11.每次消除一個泡泡,會有100分得分,如果中得分小于500分,那麼會失敗,螢幕會彈出悲傷的表情

------------------------------------------------------------------------------------------------------------------

12.鍵盤控制,USB接口,輸入鍵盤。

A,相當于reset功能,遊戲重新開始

D,相當于滑鼠左鍵,發射泡泡功能。

------------------------------------------------------------------------------------------------------------------

系統結構如下所示:

基于FPGA的Bubble 遊戲開發

其整體RTL結構如下:

基于FPGA的Bubble 遊戲開發

硬體測試結果如下:

基于FPGA的Bubble 遊戲開發
基于FPGA的Bubble 遊戲開發
基于FPGA的Bubble 遊戲開發