|
项目介绍:
本项目为基于迪文串口屏与单片机平台开发的类“羊了个羊”消除小游戏,整体实现过程分为界面资源制作、屏幕端交互配置以及单片机端逻辑控制三个部分。
原理介绍: 在一次开发阶段,首先根据游戏需求设计不同关卡的背景、物品图标、按钮等界面元素,并将图片资源转换生成迪文屏可识别的 ICL 图片文件。随后将 ICL 文件导入 GUI 迪文屏开发软件中,完成页面布局、图片显示区域、触摸按键区域以及关卡切换按钮的配置。通过在 GUI 软件中设置不同页面和按键响应关系,使玩家能够通过触摸屏完成开始游戏、切换关卡、选择物品等基本操作。该阶段主要负责游戏的可视化界面搭建,相当于完成游戏的“显示层”和“交互入口”。
在二次开发阶段,使用 KEIL5 编写单片机控制程序,通过串口与迪文屏进行通信。程序根据屏幕返回的触摸坐标或按键编号,判断玩家当前点击的是哪一个物品,并对该物品进行识别和状态更新。每个物品在程序中都可以用编号、坐标位置、所属层级、是否被遮挡、是否已被选中等数据进行描述。当玩家点击某一物品时,程序首先判断该物品是否处于可点击状态,例如是否被上层物品遮挡、是否已经被消除等;若满足条件,则将其加入下方待消除区域。
游戏的核心逻辑是“三个相同物品消除”。因此,程序需要对待消除区域中的物品进行检测判断:当新物品被加入后,系统会遍历当前槽位中的物品编号,统计相同编号物品的数量。如果某一类物品数量达到三个,则将这三个物品从槽位中删除,同时更新屏幕显示状态,实现消除效果。如果槽位已满但没有可消除的物品,则判定游戏失败。
此外,程序还需要实时判断游戏是否成功。其基本原理是统计关卡中所有物品的剩余数量,或者判断所有物品的状态是否均为“已消除”。当所有物品都被成功消除后,程序向迪文屏发送页面切换或提示指令,显示通关界面;若槽位被占满且无法继续消除,则显示失败界面。通过这种方式,实现了从界面显示、触摸输入、物品识别、消除判断到胜负判定的一整套小游戏运行逻辑。
整体来看,本项目利用迪文屏完成图形界面显示和触摸交互,利用单片机完成游戏规则运算与状态管理。屏幕端负责“显示什么”和“玩家点了哪里”,单片机端负责“点中的物品是否有效”“是否满足消除条件”以及“游戏是否结束”,两者通过串口通信配合,实现了一个较完整的嵌入式小游戏系统。
|