(1) 在 BRAM 资源较少的情况下,采用了图片压缩编码的方式,以较少的数据量来表示原来的像素矩阵。
(2) 我们编写了游戏的主菜单和控制逻辑,游戏功能丰富,界面美观。
(3) 我们外接了自制游戏手柄,可以直插在开发板上,方便地控制游戏。
1.4 关键性能指标
(1) 游戏界面美观,飞机图标清晰,游戏动画显示流畅。
(2) 游戏手柄上的摇杆与按键灵敏度高、指令延迟小。
1.5 主要创新点
(1) 使用了自制游戏手柄,相比普通按键,能更方便地控制游戏,提升用户体验。
(2) 在板载 BRAM,资源较少的情况下,采用了图片压缩编码的方式,以较少的数据量来表示原来的像素矩阵。
第二部分 系统组成及功能说明
2.1 整体介绍
系统硬件由 SEA 开发板(型号 xc7s25ftgb196-1)、游戏手柄拓展板和 HDMI 显示屏组成。FPGA 读取按键和摇杆的状态,来控制游戏显示的内容, 其中,FPGA 通过 IIC 方式来读取摇杆的状态。游戏总体控制模块分为按键 功能控制、主菜单控制、游戏逻辑控制和文字图片信息显示控制四个方面。根据玩家不同的指令,HDMI 屏上显示相应的内容。
2.2 各模块介绍
根据总体系统框图,给出各模块的具体设计说明。
(1) 游戏总体控制模块
按键功能控制:不同的按键对应不同的指令,该模块主要负责按键消抖与指令转化。
主菜单控制:游戏初始界面的主菜单有开始游戏、重新开始、皮肤选择和结束游戏四个选项。可以通过按键上下移动光标,选择不同功能。
游戏逻辑控制:该模块主要进行了游戏规则的设计。
显示模块:主要负责文字显示和飞机图标、子弹显示。
(2) HDMI 显示驱动模块:驱动 HDMI 屏,在屏上流畅的显示游戏界面。
(3) 游戏手柄驱动模块:驱动手柄上的 PCF8591 芯片,输出摇杆的位置状态。
(4) IIC 通信模块:实现游戏手柄和 FPGA 的通信,FPGA 读取 PCF8591 输出的数据。
第三部分 完成情况及性能参数
显示的菜单如图 3 所示,可以上下移动光标选择相应的功能。游戏界面如图 4 所示,实现了摇杆控制飞机朝任意方面移动。图片清晰,画面显示流畅,指令延时小,并且游戏规则正确,可以给玩家良好的游戏体验感。
第四部分 总结可扩展之处
A.利用板载的 esp32 模块,实现脱机下载。
B.可以存储一些其他游戏,设计个游戏选择菜单。
C.利用板载的蓝牙模块,实现联机游戏。
D.增加游戏音乐部分。