天天看点

基于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 游戏开发