Nplus实验室 发表于 2019-6-4 12:07:35

掌控板游戏之赛龙舟

本帖最后由 Nplus实验室 于 2019-6-4 12:10 编辑

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

以上作品使用到的材料有:掌控板和数据线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坐标是否达到要求。
②   石头移动以及碰撞判定:
石头使用实心矩形表示,其坐标由两个列表Xlist、Ylist储存表示,宽高跟龙舟一样,分别为21,、18。由于mPythonX暂时还没有对象的创建和使用,多个主线程同时运行也暂时无法支持。所以石头使用定时器子线程来实现。判定失败:
游戏失败判定思路是:石头的X坐标(可理解为Xlist的第0项)在龙舟的碰撞范围内时,石头的Y坐标跟龙舟的Y坐标(Ylist的第0项)靠的很近(即在同一轨道):
③    启动和重启:
加入一个playing变量控制游戏的启动和待机状态:最后加上分数计数、游戏结束亮灯、游戏重启分数置零、熄灭红灯等小功能。一款端午气息很浓的赛龙舟游戏就完成啦!加上电池盒,随时随地都可以玩哦!以下附上对应的图形化编程文件。

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

很应景啊,设计也有创意。
页: [1]
查看完整版本: 掌控板游戏之赛龙舟