迪文科技论坛

 找回密码
 立即注册
搜索
查看: 32|回复: 0

【分享】2026智能工程学院 张益成&王飞腾&郭继源 极限跑酷

[复制链接]

1

主题

0

回帖

26

积分

新手上路

Rank: 1

积分
26
发表于 前天 12:09 | 显示全部楼层 |阅读模式
一、作品简介
本作品《极限跑酷》是一款基于单片机的像素风休闲跑酷小游戏。系统以 T5L(增强型 C51 内核,主频 206.4384 MHz)单片机为主控,以迪文 DGUS 彩色触摸屏(800×480)为人机交互界面,采用 Keil C51 与迪文 DGUS 开发系统完成程序与界面设计。
游戏以黄昏城市天际线为背景,玩家控制的像素角色在画面中自动奔跑,途中需通过"跳跃"躲避不断涌来的三类障碍物(火焰、油桶、木箱),并可在游戏进行中随时切换低、中、高三档速度以调节难度;界面右上角实时显示得分,玩家可通过"暂停""结束""返回"等触摸按键灵活控制游戏进程。游戏具备完整的开始—进行—暂停—结束—返回流程,并辅以 PWM 驱动的 LED 呼吸灯实时指示游戏状态,交互直观、画面美观、趣味性与可玩性兼备。
作品的主要特点如下:
(1)人机交互友好:全部操作通过触摸屏按键完成,功能按键布局清晰、响应即时;
(2)画面美观完整:采用复古像素美术风格,黄昏城市天际线背景,角色与障碍物均为定制像素贴图,风格统一;
(3)玩法可调可控:三档速度随时切换,配合障碍物随机生成,兼顾娱乐性与挑战性;
(4)物理效果真实:跳跃采用抛物线运动学建模,动作流畅自然;
(5)状态指示清晰:PWM 呼吸灯在待机时呼吸闪烁、游戏中点亮、结束时恢复,实时反映游戏状态。
二、工作原理
本作品采用"主控单片机+串口触摸屏"的主从分工架构:T5L 单片机负责全部游戏逻辑运算,迪文 DGUS 触摸屏负责界面显示与触摸输入采集,二者通过 DGUS 总线以 VP(变量存储区)地址直接读写数据实现交互。系统总体框图如图 1 所示。
图 1  系统总体框图
(一)系统硬件组成与总体架构
系统由电源、T5L 单片机、迪文 DGUS 触摸屏及 LED 指示灯组成。T5L 单片机作为系统主控,承担游戏状态机、运动学计算、障碍物随机生成与碰撞检测等核心逻辑;迪文 DGUS 屏与单片机以并行总线相连,承担界面绘制、图标动画播放、触摸按键采集以及文本与分数显示;单片机的 PWM0 通道输出占空比可调的方波驱动 LED,实现呼吸灯效果;电源为各模块提供稳定供电。
(二)单片机与 DGUS 屏的数据交互原理
DGUS 屏将触摸按键、图标动画、文本与数值等资源映射为若干连续编址的 VP 变量地址(本作品占用 0x1000~0xB000 区间)。单片机通过 sys_read_vp() 与 sys_write_vp() 函数对这些地址进行读写,从而完成人机交互:
输入类:触摸屏检测到按键动作后,将"启动、开始、跳跃、暂停、结束、返回、三档速度"等按键状态写入对应 VP 地址,单片机在主循环中反复读取并作出响应;
输出类:单片机将玩家坐标、障碍物坐标、游戏分数、图标动画启停、游戏结束提示等数据写入 VP 地址,驱动屏上对应控件刷新显示。
读写操作借助 8051 内部 DGUS 协处理器接口(ADR 地址寄存器、DATA0~DATA3 数据寄存器、APP_ACK 应答信号、APP_EN 使能信号)以并行总线方式完成,每次以一个 16 位字为单位传输,实现高速稳定的数据交换。
(三)游戏逻辑实现原理
1. 系统时基:定时器 2 配置为 1 ms 定时中断,为系统提供精确时基;游戏各帧节奏由延时控制,障碍物每 100 ms 移动一次,跳跃每 50 ms 积分一次。
2. 状态机设计:主程序按"启动待机→进入游戏→游戏主循环→游戏结束→返回"的层次组织,通过循环结构与按键标志变量实现页面与状态切换。
3. 角色运动模型:玩家水平位置固定(x=58),仅需处理竖直方向的跳跃。跳跃采用竖直上抛运动模型,初始竖直速度 vy=-24(向上),重力加速度 g=8,按 50 ms/帧积分更新(高度 h 累加速度 v,速度 v 累加 g/4),直至回落地面,形成流畅的抛物线轨迹;障碍物自屏幕右端 x=690 向左移动,水平速度分低(28)、中(40)、高(60)三档(单位:像素/0.2 s),每 100 ms 更新一次位置。
4. 障碍物生成与管理:系统维护至多 3 个障碍物对象(火焰 51×78、油桶 67×87、木箱 56×73),采用伪随机数 rand() 决定生成时间间隔(3~5 s)与移动时长(5.2~7.8 s),实现障碍物陆续出现、错落有致的游戏节奏。
5. 碰撞检测:将玩家与障碍物均简化为矩形,检测玩家矩形的四个顶点是否落入障碍物矩形范围,任一点命中即判定碰撞(has_hit=1),随即在屏幕中央显示"游戏结束!"提示并停止游戏逻辑。
6. 动画与反馈:通过写 VP 地址控制 DGUS 屏的图标动画(角色 4 帧跑步动画、障碍物图标)启停;游戏状态通过调节 PWM0 脉宽(0~100%)控制 LED 亮度实现指示。
主程序执行流程如图 2 所示。
图 2  主程序流程图
三、设计思路
(一)设计过程
1. 需求分析:明确以单片机为核心,实现一款可触摸操作、画面完整、具有娱乐性的休闲小游戏,强调人机交互直观与开发可行。
2. 方案选型:对比纯单片机点阵显示与"单片机+串口屏"两种方案,最终选择 T5L 单片机与迪文 DGUS 屏组合。T5L 芯片内部集成 8051 内核与 DGUS 总线,天然适配迪文屏,显示与交互交由屏端完成、逻辑由单片机承担,开发效率高、画面表现力强。
3. 界面与美术设计:使用迪文 DGUS 开发工具绘制像素风格界面(启动页、游戏页),设计黄昏城市天际线背景,制作玩家 4 帧跑步动画与三类障碍物贴图,并配置触摸按键与 VP 地址映射。
4. 程序框架设计:按"系统初始化—启动待机—游戏主循环—结束返回"的状态机组织主程序,将运动学、障碍物管理、碰撞检测、动画控制等封装为独立函数模块,结构清晰、便于调试与维护。
5. 联调测试:逐项验证触摸操作响应、角色跳跃、障碍物移动与生成、碰撞判定、计分、暂停/结束/返回及呼吸灯指示,并根据操作手感微调速度、重力与障碍物参数。
(二)创新点
1. 架构创新:"单片机+DGUS 串口屏"主从分工,屏端完成全部显示与触控,主控专注游戏逻辑,软硬件耦合度低、开发高效、可移植性好。
2. 视觉创新:全套定制像素风美术,画面复古美观、风格统一,区别于传统数码管/点阵方案的低表现力。
3. 玩法创新:三档速度可调与障碍物随机生成相结合,既保证操作灵活性又维持挑战性,避免游戏枯燥。
4. 物理建模:以抛物线运动学实现跳跃,运动轨迹自然真实。
5. 交互反馈:PWM 呼吸灯实时指示游戏状态,增强沉浸感与操作体验。
演示视频:https://b23.tv/ISXKKuR
附件上传:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-11-4 10:56 , Processed in 0.042249 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表