基于FPGA的飞机大战游戏系统设计

FPGA技术江湖 2022-10-02 08:15

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。“煮酒言欢”进入IC技术圈,这里有近50个IC技术公众号。


第一部分 设计概述

1.1 设计目的

我们设计了一款基于 FPGA 的SEA开发板 的飞机大战游戏。飞机大战游戏是一款休闲益智类游戏,既简单又耐玩。在初始界面,我们有开始游戏、重新开始、皮肤选择和结束游戏四个选项。开始游戏后,玩家可以用游戏手柄方便的控制飞机在屏幕上向任意方向移动,通过躲避子弹和射击敌机得分,在屏幕左上角可以看到当前生命和得分。

1.2 应用领域

最近的一些复古游戏网上商店吸引了许多喜欢老式电子游戏的买家。一些爱好者一直在收集复古游戏产品,一些普通玩家也开始收集旧式磁带和CD,还有小时候玩过的游戏机。

虽然复古游戏只占全球 1090 亿美金游戏行业的一小部分,但确是非常有吸引力的缝隙市场。该游戏平台可以作为一个复古游戏机使用,经过后期加工改良,可以将游戏移植到专用游戏机或手机等设备上,供玩家使用。这款飞机大战游戏,可以放松心情,释放压力,提高反应能力。

1.3 主要技术特点

(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.增加游戏音乐部分。


【QQ交流群】

群号:173560979,进群暗语:FPGA技术江湖粉丝。

多年的FPGA企业开发、培训经验,各种通俗易懂的学习资料以及学习方法,浓厚的交流学习氛围,QQ群目前已有4000多名志同道合的小伙伴,无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,FPGA技术江湖打造最纯净最专业的技术交流学习平台。

【微信交流群】

现微信交流群已建立12群,人数已达数千人,欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式。

欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式,更多精彩内容等你发现

END






往期精选 

 
 

电子版资料获取方式正确流程

【免费】FPGA工程师招聘平台

FPGA芯片行业科普

新谈:为什么你觉得FPGA难学?如何入门?

SANXIN-B01开发板verilog教程V3电子版

笔记连载 | Day9【xilinx ZYNQ7000系列之《PS端 》串口打印】

求职面试 | FPGA或IC面试题最新汇总篇

FPGA项目开发:204B实战应用-LMK04821代码详解(二)


FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

加群主微信,备注职业+方向+名字进群


FPGA技术江湖QQ交流群

备注地区+职业+方向+名字进群

FPGA技术江湖 任何技术的学习就好比一个江湖,对于每一位侠客都需要不断的历练,从初入江湖的小白到归隐山林的隐世高人,需要不断的自我感悟自己修炼,让我们一起仗剑闯FPGA乃至更大的江湖。
评论 (0)
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦