0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DE1-SOC开发板的太空射击游戏

友晶FPGA ? 来源:友晶FPGA ? 2025-08-04 10:47 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天继续常春藤名校之一——康奈尔大学的FPGA课程ECE 5760典型案例分享:基于DE1-SOC开发板的太空射击游戏。

1. 项目概述

项目说明

该项目是在DE1-SoC FPGA平台上开发一个名为“太空射击”的实时游戏,利用系统的ARM+FPGA功能,“太空射击”使用内存映射I/O在VGA显示器上输出图形,并直接与硬件组件交互以实现响应式游戏体验。玩家通过键盘输入控制飞船移动并发射子弹攻击屏幕上的敌人,游戏实时跟踪玩家得分和碰撞检测。

该实现强调高效利用硬件资源、精确的定时以实现流畅动画以及有效的碰撞检测算法,以确保游戏的吸引力和动态性。

使用的硬件:

75fe8a08-6b55-11f0-a18e-92fbcf53809c.png

该系统的功能框图如下:

762172ac-6b55-11f0-a18e-92fbcf53809c.png

2.数学背景

《太空射击》项目涉及几个关键的数学概念和技术:

? 几何坐标:

? 屏幕坐标:游戏屏幕由一个坐标系统定义,左上角为(0,0),x轴向右增加,y轴向下增加。玩家和敌人的位置使用(x,y)坐标进行跟踪。

? 移动:玩家的飞船和子弹通过更新它们的(x,y)坐标来移动。例如,按下'a'键会减少飞船的x坐标,使其向左移动。

? 碰撞检测:

?限界框碰撞:子弹与敌人之间的碰撞检测基于轴对齐限界框(AABB)碰撞检测。算法检查两个对象的包围盒是否重叠。

? 对于子弹击中敌人,以下条件必须成立:

子弹x ≤ 敌人x + 敌人尺寸

子弹x + 子弹大小 ≥ 敌人x

子弹y ≤ 敌人y + 敌人大小

子弹y + 子弹大小 ≥ 敌人y

? 向量数学:

? 方向和速度:子弹的运动通过固定量更新其y坐标来模拟运动。这可以表示为:

子弹y = 子弹y - 子弹速度

此公式确保子弹以恒定速度向上移动。

? 时间控制和延迟:

? 帧率控制:游戏循环包括一个延迟以控制帧率,确保平滑的动画和游戏玩法。延迟使用`usleep`设置:

usleep(100000)

这提供了100毫秒的延迟,实现每秒约10帧的帧率。

? 几何变换:

? 缩放和平移:敌人的位置被缩放和平移以创建不同的运动模式。例如:

enemies[i].px = *(enemy_pos_x_ptr) + 20 × i

此公式调整每个敌人的x位置以创建间距。进一步的变换涉及修改它们的位置以实现更复杂的运动。

? 圆形几何:

? 绘制圆:`VGA_disc`函数使用圆的方程绘制敌人和玩家子弹。对于以(x,y)为中心、半径为r的圆,所有满足以下条件的点(px,py)都是圆的一部分:

(px - x)^2 + (py - y)^2 ≤ r^2

? 计分和时间追踪:

? 计分计算:玩家每次击中敌人得分增加100分:

score += 100

? 时间测量:自游戏开始以来经过的时间使用`gettimeofday`函数计算,该函数提供当前时间的秒数和微秒数。使用的时间为:

time_used = end.tv_sec ? start.tv_sec

太空射击游戏结合了这些数学原理,创造出一个引人入胜且动态的游戏体验。从用于运动和碰撞检测的坐标几何和向量数学到用于平滑动画的时间控制,这些数学概念构成了游戏实现的基础。

3. 硬件设计和软件设计

FPGA端Qsys系统如下:

762f4210-6b55-11f0-a18e-92fbcf53809c.png

HPS端要处理的操作有:

移动玩家的飞船

火球子弹

开始和停止游戏

重置游戏

显示和更新评分

跟踪和显示时间耗尽

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1646

    文章

    22072

    浏览量

    619787
  • 游戏
    +关注

    关注

    2

    文章

    776

    浏览量

    26893
  • 开发板
    +关注

    关注

    25

    文章

    5726

    浏览量

    105660

原文标题:【开源项目分享】基于DE1-SOC开发板的太空射击游戏

文章出处:【微信号:友晶FPGA,微信公众号:友晶FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于DE1-SOC开发板的oneAPI实验教程(2)

    上一期我们从oneAPI CLI Samples Browser复制保存的Simple DMA是基于Quartus Pro的Nios V示例,无法直接用在DE1-SoC开发板上,因此这一节我们用
    的头像 发表于 06-23 11:17 ?648次阅读
    基于<b class='flag-5'>DE1-SOC</b><b class='flag-5'>开发板</b>的oneAPI实验教程(2)

    求购de1-soc开发版。有的请联系我。急求呢。QQ:528369266

    求购de1-soc开发版。有的请联系我。急求呢。QQ:528369266
    发表于 12-15 16:00

    DE1-SOC新货转让

    本人研究生,在暑假期间参加了一个比赛,获得了一块DE1-SOC作为比赛奖品,于2015年12月26日拿到奖品,淘宝官网上卖价1575,现在想低价转售,暂定价格1200,可议价,开发套件还未拆封,保证
    发表于 12-27 10:43

    DE1-SoC官方自带ControlPanel代码解读与AV图像采集处理?

    DE1-SoC一段时间了,官方给的controlPanel那个示例给出了工具链的安装方式,而且给了用这块开发QT界面的一套流程,目前想在该代码上修改,想结合AV端采集图像,通过Opencv进行图像处理,可如何与Opencv进
    发表于 05-06 22:18

    大神帮忙看看,为什么我的开发板无法用电脑进行配置

    器那里的USB-Blaster驱动消失了,变成不可识别的DE-SOC(图2)。注:电脑是win7 64位系统,软件是Quartus II 13.1开发板是Cyclone V,DE1-SOC新人第一次发帖,希望大神帮帮忙,小弟先谢
    发表于 07-17 19:49

    DE1-Soc用户手册

    DE1-Soc用户手册
    发表于 08-05 16:08

    小弟求购Altera DE1-SOC开发板,哪位大神玩剩下了传承一下,多谢!

    小弟想自学FPGA,预购Altera DE1-SOC。哪位大神玩过了,技术了熟于胸。也别冷落了板子,赠人玫瑰手有余香,请联系小弟,让技术继续发挥余热,价格可谈。 联系方式:***注:10.22不能入手就在淘宝买了,之后就不用耽误大神时间了。非常感谢!
    发表于 11-18 15:00

    de1-soc FPGA(Quartus工程含Qsys系统) + HPS 操作步骤

    原谅我记忆力不好。。。花了好久弄明白的东西才十个小时不到就忘记了,所以趁现在记得赶紧记录下来。本文内容:重建de1-soc中HPS-FPGA工程。 PS:原工程在http
    发表于 07-03 08:10

    如何在DE1-SOC开发板上搭建NIOS II处理器运行UCOS

    介绍了如何在DE1-SOC开发板上搭建NIOS II处理器运行UCOS II,一步一步指导的,特此上传,希望能帮点忙。
    发表于 06-14 15:29 ?12次下载

    DE1-SoC开发工具包的详细用户和使用手册资料免费下载

    带宽互连主干与FPGA结构无缝连接。DE1-SoC开发板配备了高速DDR3存储器、视频和音频能力、以太网
    发表于 10-16 16:55 ?99次下载
    <b class='flag-5'>DE1-SoC</b><b class='flag-5'>开发</b>工具包的详细用户和使用手册资料免费下载

    ALTERA公司的DE1 SoC FPGA开发板的培训教程免费下载

    本文档的主要内容详细介绍的是ALTERA公司的DE1 SoC FPGA开发板的培训教程免费下载包括了:第1DE1-SOC 快速入门,第2
    发表于 07-08 08:00 ?34次下载
    ALTERA公司的<b class='flag-5'>DE1</b> <b class='flag-5'>SoC</b> FPGA<b class='flag-5'>开发板</b>的培训教程免费下载

    DE1-SoC结构及电路图

    DE1-SoC结构及电路图免费下载。
    发表于 04-07 11:33 ?39次下载

    DE1-SOC进行硬件加速的2D N-Body重力模拟器设计

    该项目的目标是创建一个用DE1-SOC进行硬件加速的2D N-Body重力模拟器。
    的头像 发表于 04-09 11:08 ?1012次阅读
    用<b class='flag-5'>DE1-SOC</b>进行硬件加速的2D N-Body重力模拟器设计

    街机弹球机的模拟设计实现

    该项目是实现经典的街机游戏——弹球机。使用DE1-SOC开发板上的滑动开关,玩家可以设置球的初始速度。
    的头像 发表于 04-09 11:30 ?861次阅读
    街机弹球机的模拟设计实现

    在友晶DE1-SOC开发板实现Chirikov标准映射求解器

    该项目是在友晶DE1-SOC开发板实现Chirikov标准映射的求解器,并将其应用于图像加密和解密的概念验证。
    的头像 发表于 07-07 15:22 ?1039次阅读
    在友晶<b class='flag-5'>DE1-SOC</b><b class='flag-5'>开发板</b>实现Chirikov标准映射求解器