4304浏览
查看: 4304|回复: 5

[项目] 掌控板游戏之赛龙舟

[复制链接]
本帖最后由 Nplus实验室 于 2019-6-4 12:10 编辑

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


以上作品使用到的材料有:
掌控板和数据线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
截图201906041023118898.png

赛龙舟.rar

6.47 KB, 下载次数: 1878

gada888  版主

发表于 2019-6-4 17:59:02

有意思的设计
回复

使用道具 举报

rzyzzxw  版主

发表于 2019-6-4 18:46:54

有趣的创意
回复

使用道具 举报

rzegkly  版主

发表于 2019-6-5 06:22:26

掌控游戏很棒
回复

使用道具 举报

dpQVTDZ1  见习技师

发表于 2019-6-5 09:45:29

点赞
回复

使用道具 举报

钉钉钉头  初级技师

发表于 2019-6-5 17:27:32

很应景啊,设计也有创意。
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail