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