迪文科技论坛

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

【分享】2026智能工程学院 范长宏&封旭&赵相征 鸣人快跑

[复制链接]

1

主题

0

回帖

26

积分

新手上路

Rank: 1

积分
26
发表于 前天 11:14 | 显示全部楼层 |阅读模式
一、作品简介
本作品是一套运行在迪文 DGUS 800×480 串口屏和 T5L51 单片机上的像素风跑酷游戏系统。界面采用「鸣人风格」忍者角色,包含四帧待机动画与四帧跑步动画,配合三类障碍物、分数显示、碰撞提示、任务完成和返回界面,形成完整的游戏流程。
游戏提供低、中、高三档速度,支持跳跃、二段跳、暂停和重新开始。角色连续越过障碍物可累积连击奖励,最高为9连击;在空中完成越障还能获得双倍连击奖励,使操作时机和连续越障成为得分关键。

二、工作原理
系统采用「DGUS 负责人机交互与画面显示,T5L51 负责实时游戏逻辑」的分工方式。
• 触摸输入:玩家点击开始、跳跃、暂停、结束或速度按键后,DGUS 将按键状态写入对应的 VP 变量,例如开始键0x1032、跳跃键 0x1042。
• 输入采集:T5L51 通过 sys_read_vp() 轮询 VP 变量,读取并清零本次触摸状态,避免一次点击被重复执行。
• 游戏循环:单片机执行角色跳跃、重力计算、障碍物移动、碰撞检测、连击计分和状态切换。障碍物每 100ms 移动一次,分数与角色动画同步刷新。
• 画面输出:T5L51 将角色和障碍物的坐标、分数、文本指针写入 0x4032、0x5032—0xA032、0x3032等显示变量,DGUS 根据变量刷新图标位置、动画帧和游戏结束文本。
• 待机控制:系统同时读取页面状态并调节 PWM 输出,用于待机后的背光控制。

碰撞判断采用角色四角与障碍物矩形的范围检测。针对实际调试中发现的宽障碍物边缘问题,程序增加了「已越过障碍物不再重复参与碰撞」的状态判断,并在障碍物到达屏幕左边缘后完成一次安全判定,避免第二类宽石块被跳过后仍误触发游戏结束。
三、设计思路
1. 以状态机组织完整游戏流程
系统按照「进入页面—等待开始—游戏运行—暂停/碰撞—重新开始—任务完成—返回」的状态组织程序。主循环只在按下结束键后进入完成页面,暂停和碰撞则停留在游戏页面,便于玩家重新开始。
2. 用变量映射连接界面与逻辑
界面元素通过 ICL 图库和 DGUS 变量描述指针配置。T5L51 不直接绘制像素,而是更新坐标、图标和文本指针,从而把嵌入式控制逻辑与串口屏显示资源解耦。触摸按键和显示变量采用统一的16 位 VP 地址协议,通信结构清晰。
3. 用轻量算法增强可玩性
角色运动使用简化的竖直上抛模型和重力累加,二段跳通过空中再次触发跳跃键实现。障碍物由固定对象池循环生成;每越过一个障碍物更新连击次数,空中越障时在当前连击基础上再加一次奖励。该方案在8051 资源限制下仍能保持稳定的实时性。
4. 完善视觉和发布流程
角色素材统一为 40×80 像素,保留待机、跑步各四帧;界面覆盖开始、运行、暂停、碰撞、完成等 12 个页面,并提供多个按键状态图。工程还提供Keil C51 编译脚本、DGUS 资源构建脚本和自动校验脚本,可重复生成固件、HEX/BIN 文件并检查页面、图库、按键地址和构建产物。
四、演示视频
https://b23.tv/dIoesYi
五、附件上传

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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