迪文科技论坛

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

【分享】刘阳 李永臻-别踩白块项目

[复制链接]

1

主题

0

回帖

22

积分

新手上路

Rank: 1

积分
22
发表于 4 天前 | 显示全部楼层 |阅读模式
一、作品简介

1. 基本信息

本作品是基于迪文T5L屏开发的嵌入式GUI交互游戏,还原经典《别踩白块》玩法,作为嵌入式GUI开发的综合实践项目。

2. 项目目标

• 实现一款“别踩白块”游戏(类似钢琴块),要求:

◦ 多个方块自动下落

◦ 玩家在正确区域内按下按键得分

◦ 下落速度稳定、无卡顿

◦ 支持无限连续游戏

3. 开发平台与工具

• 硬件:迪文T5L屏

• 开发环境:DGUS Tool、Keil C51

• 语言:C语言

• 屏载交互资源:触控按键、DGUS变量接口、图片显示

4. 主要功能

• 四个独立下落的方块

• 动态得分/扣分规则(三个区域判定)

• 自动生成随机起始高度,实现无限下落

• 实时分数显示

5. 技术特色

• 随机高度生成策略

• 采用虚拟Y值与实际Y值分离的下落模型

• 基于活跃块数的延时补偿算法,保证速度一致性

6. 项目工作量与完整性

• 代码模块化:分为初始化模块、下落控制模块、按键检测模块、随机生成模块

• 已实现完整游戏循环、无限新块生成、分数更新与显示

• 调试稳定,支持长时间运行


二、工作原理

1. 随机高度生成策略

使用get_special_randoms生成四个起始虚拟Y值(均为负数),通过固定随机间距(gap)使方块错落出现,增加游戏可玩性;当所有方块落出屏幕后自动重置,实现无限连续游戏。

2. 双Y值下落机制

• 虚拟Y值(y_want):每轮累加,决定理论位置

• 实际Y值(y_now):仅在虚拟值进入屏幕时更新,用于控制图片移动和按键区域判定

• 优势:屏幕外方块不参与移动与检测,简化逻辑;所有方块共用统一速度累加器,保证下落速度一致

3. 三区域按键判定

• 过早点击区(Y小于300):方块尚未到达按键位置,此时按下→扣分

• 有效打击区(Y在300和481之间):方块在按键范围内,此时按下→得分

• 漏击区(Y大于481):方块已越过按键范围,若未按下→扣分

• 设计依据:结合触摸响应时间与屏幕布局,保证手感

4. 延时补偿算法

• 每个方块移动后固定延时2ms

• 统计本轮实际下落的方块数(count),额外补偿(4-count)*2ms

• 效果:无论几个方块同时下落,每轮总耗时恒定≈8ms,下落速度稳定

5. 软件整体架构

(1)模块划分

• 初始化模块(main.c):设置虚拟Y值、图片颜色、变量初值

• 下落控制模块(main_window.h/c):虚拟值递增、实际移动、延时补偿

• 按键检测模块(btn_ctr.h/c):读取按键、区域判定、分数更新

• 随机生成模块(data_pro.h/c):产生下一轮方块的起始高度

(2)模块间调用关系

主循环依次调用四个方块的下落→每个方块下落时触发按键检测→全部处理完后进行延时补偿→若全部落出屏幕,则调用随机生成模块重置。


三、设计思路

1. 设计过程

围绕嵌入式GUI交互游戏需求,完成需求拆解、硬件选型、模块化架构设计、核心逻辑开发与调试优化:

1. 明确游戏核心功能,选定迪文T5L屏作为硬件载体,依托屏载资源实现交互;

2. 采用模块化拆分,将代码划分为初始化、下落控制、按键检测、随机生成四大模块,降低耦合度;

3. 设计双Y值分离模型,解决逻辑与显示耦合问题;设计延时补偿算法,保证下落速度稳定;

4. 完成三区域按键判定逻辑,覆盖过早点击、有效点击、漏击全场景,实现完整游戏循环。

2. 创新点

• 双Y值分离下落模型:逻辑计算与显示控制解耦,简化调试,保证下落速度一致;

• 动态延时补偿算法:基于活跃方块数动态补偿延时,实现多方块匀速下落,提升游戏体验;

• 全场景按键判定:覆盖三类点击场景,结合模块化设计,保证游戏逻辑严谨性与可维护性;

• 轻量化实现:依托迪文屏自带资源,无需额外硬件,支持无限连续游戏,适配嵌入式场景。


四、演示视频:


五、附件上传:

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-18 22:59 , Processed in 0.023756 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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