掌控板游戏之赛龙舟

2019-06-046084
AI 快速预览详细 收起
本文介绍了如何使用掌控板和mPythonX软件制作一个赛龙舟游戏。项目的主要目标是通过AB键控制龙舟在三条道上来回移动,躲避河里的石头(障碍物),增加分数。游戏结束后同时按下AB键可以重启游戏。所需材料包括掌控板、数据线和N+电池盒。通过详细的步骤和图形化编程文件,读者可以轻松完成这个有趣的项目。


      最近端午节快到了,吃粽子、赛龙舟是端午的必备项目。但是作为水性不好、远在内陆的我来说去河里赛龙舟好像永远都是奢望。虽然这样,但是在掌控板上我们可以做一个类似于赛龙舟的游戏啊!于是就有了下面这一个作品:


以上作品使用到的材料有:
掌控板和数据线X1;
N+电池盒X1;
软件:mPythonX

附电池盒购买链接:https://m.tb.cn/h.eeQdSFU?sm=cbd2ec

本项目的思路是使用AB键控制龙舟在三条道上来回移动躲避河里的石头(障碍物),增加分数,碰到石头就游戏结束。游戏结束后同时按下AB键重启游戏。
由以上分析可以得知,本项目主要完成目标有3个:
①   AB控制龙舟上下移动;
②   石头的移动以及碰撞判定;
③   启动和重启。

①   AB控制龙舟上下移动:
首先需要画两条横线,将64像素的OLED屏幕大致平均分为三份,所以在21和42像素画两条长度128的横线。然后在屏幕左边(X坐标为0)。高度比三条道窄一点。这里我选择了高度18,宽度21。

在事件分类里拖出“当A被按下时”来控制龙舟的上下移动。因为需要保证龙舟不会移动到三条道之外,所在在A/B键按下后需要判断它的Y坐标是否达到要求。
掌控板游戏之赛龙舟图5
掌控板游戏之赛龙舟图6

②   石头移动以及碰撞判定:

石头使用实心矩形表示,其坐标由两个列表Xlist、Ylist储存表示,宽高跟龙舟一样,分别为21,、18。由于mPythonX暂时还没有对象的创建和使用,多个主线程同时运行也暂时无法支持。所以石头使用定时器子线程来实现。
掌控板游戏之赛龙舟图7
判定失败:

游戏失败判定思路是:石头的X坐标(可理解为Xlist的第0项)在龙舟的碰撞范围内时,石头的Y坐标跟龙舟的Y坐标(Ylist的第0项)靠的很近(即在同一轨道):
掌控板游戏之赛龙舟图1

③    启动和重启:

加入一个playing变量控制游戏的启动和待机状态:
掌控板游戏之赛龙舟图2
最后加上分数计数、游戏结束亮灯、游戏重启分数置零、熄灭红灯等小功能。
掌控板游戏之赛龙舟图3
掌控板游戏之赛龙舟图4
一款端午气息很浓的赛龙舟游戏就完成啦!加上电池盒,随时随地都可以玩哦!
以下附上对应的图形化编程文件。

截图201906041022487300.png (111.95 KB, 下载次数: 2832)

STEM教育 · 掌控板游戏之赛龙舟_image_3.webp

截图201906041023118898.png (143.3 KB, 下载次数: 2797)

STEM教育 · 掌控板游戏之赛龙舟_image_6.webp

赛龙舟.rar

6.47 KB, 下载次数: 3455

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
钉钉钉头
钉钉钉头
很应景啊,设计也有创意。
dpQVTDZ1
dpQVTDZ1
点赞
rzegkly
rzegkly
掌控游戏很棒
rzyzzxw
rzyzzxw
有趣的创意
gada888
gada888
有意思的设计
- 没有更多了 -