- 1
- 2
- 3
- 4
- 5
获得赏金
15.00元STM32掌上游戏机 OLED屏 矩阵按键 超级马里奥
资料介绍
这个项目主要实现了一个基于 OLED 屏幕的各类小游戏,包含了 OLED 屏幕的初始化与操作,以及游戏的核心逻辑,下面为你详细介绍各个文件:
以马里奥小游戏为例:
下面是代码部分的讲解:
mario.c
该文件实现了马里奥游戏的核心逻辑,包括角色控制、地图更新、物体显示和碰撞检测等功能,主要功能如下:
角色控制:
Man_Control:处理按键输入,控制马里奥的移动、跳跃和下管道等动作。

地图更新:
Gat_MapData:移动时更新地图缓存,处理地图的滚动和物体的生成。
Show_Map:显示地图缓存中的数据,包括墙、道具墙等。
物体显示:
Show_AutoObject:显示自动移动的物体,如敌人蘑菇、乌龟和放大菇,并处理碰撞检测。
Show_Property:显示金币,并处理金币的上升、下落和地图移动补偿。
下面是马里奥游戏的逻辑:
Mario_Play:游戏主循环,初始化地图数据,不断显示物体和地图,并在游戏结束时显示游戏结束界面。
Game_Wing:游戏获胜的踩旗子动画,并显示最终得分。
初始化游戏地图数据,根据回合数设置不同的地图页,并调用Init_MapDate函数进行地图数据的初始化。

初始化按键 (Key_Init()) 和 OLED 屏幕 (OLED_Init())。
进入无限循环,不断调用 Mario_Play() 函数来运行游戏。
马里奥的控制与移动,要用按键发出信号控制人物的移动:

跳跃:当按下跳跃键且马里奥不在下落状态时,设置跳跃高度限制并标记为跳跃状态。
向右移动:根据马里奥的位置和是否撞墙,决定是马里奥自身移动还是更新地图。
向左移动:当按下左键且不撞墙时,马里奥向左移动。
向下移动:当按下下键且下方是管道时,触发下管道动画并重置地图。
因为人的下落速度不是线性的,要考虑到重力,引入重力函数。

下落检查:如果马里奥下方没有障碍物且不在下落状态,则标记为下落状态。
跳跃处理:在跳跃过程中,检查是否撞墙,根据墙的类型进行不同处理,如生成金币、撞碎普通墙等。
下落处理:如果下方有障碍物,则停止下落;如果掉下悬崖,则调用 Game_Over() 函数。
最终效果展示图:

部分文件列表
| 文件名 | 大小 |
| 马里奥实验台(新增下管道版本)/ | |
| 马里奥实验台(新增下管道版本)/DebugConfig/ | |
| 马里奥实验台(新增下管道版本)/DebugConfig/Target_1_STM32F103C8_1.0.0.dbgconf | 7KB |
| 马里奥实验台(新增下管道版本)/EventRecorderStub.scvd | |
| 马里奥实验台(新增下管道版本)/Game/ | |
| 马里奥实验台(新增下管道版本)/Game/Mario.c | |
| 马里奥实验台(新增下管道版本)/Game/Mario.h | |
| 马里奥实验台(新增下管道版本)/Game/Mario_Data.c | |
| 马里奥实验台(新增下管道版本)/HardWare/ | |
| 马里奥实验台(新增下管道版本)/HardWare/Key.c | |
| 马里奥实验台(新增下管道版本)/HardWare/Key.h | 1KB |
| ... | |
- 21ic小能手打赏了15.00元
最新上传
-
江岚 打赏20.00元 2天前
-
江岚 打赏50.00元 2天前
-
江岚 打赏20.00元 2天前
-
江岚 打赏10.00元 2天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
tangyu1 打赏1.00元 3天前
-
jjjjkkkkk 打赏1.00元 3天前
-
emlimei 打赏1.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前
资料:低频功率放大器的设计.
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:51单片机数字频率计
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
13573902396 打赏1.00元 3天前
-
21下载积分 打赏310.00元 3天前
用户:江岚
-
21下载积分 打赏310.00元 3天前
用户:潇潇江南
-
21下载积分 打赏60.00元 3天前
用户:他山之石可攻玉
-
21下载积分 打赏310.00元 3天前
用户:小猫做电路
-
21下载积分 打赏210.00元 3天前
用户:zhengdai
-
21下载积分 打赏210.00元 3天前
用户:w993263495
-
21下载积分 打赏10.00元 3天前
用户:烟雨
-
21下载积分 打赏60.00元 3天前
用户:gsy幸运
-
21下载积分 打赏70.00元 3天前
用户:铁蛋锅
-
21下载积分 打赏65.00元 3天前
用户:xzxbybd
-
21下载积分 打赏60.00元 3天前
用户:jh0355
-
21下载积分 打赏60.00元 3天前
用户:w178191520
-
21下载积分 打赏20.00元 3天前
用户:jh03551
-
21下载积分 打赏20.00元 3天前
用户:sun2152
-
21下载积分 打赏20.00元 3天前
用户:kk1957135547
-
21下载积分 打赏25.00元 3天前
用户:w1966891335
-
21下载积分 打赏20.00元 3天前
用户:xuzhen1
热门下载
- 从双脉冲到动态RDS(on):GaN器件动态参数测试全解析
- c2762669 变容二极管_1SV305(TPH3,F)_规格书
- 一颗便宜可靠的3D磁场传感器MMC5603NJ 手册
- STM32F407ZGT6的示波器 信号发生器 数字万用表集成装置设计
- 2024电赛元件仪器清单
- GJB 152A-1997 军用设备和分系统电磁发射和敏感度测量
- modbus_tcp 源码 可直接移植使用
- 泰和安TX3016C TX3006C TX3008C火灾报警控制器安装使用说明书 V1.3
- 专业级文件压缩与解压工具 ZArchiver_Pro_1.0.10_101035_9e6036
- 5W和15W无线充资料




全部评论(0)