2018-8-7 15:26:34 [显示全部楼层]
22794浏览
查看: 22794|回复: 5

[micro:bit基础教程] micro:bit造物粒子(基于Mind+)13— 拆弹游戏

[复制链接]
麦克的故事
小朋友们要来麦克家里做客了,麦克很高兴,麦克想把自己最喜欢的玩具拿出来和小朋友们分享,有遥控汽车,遥控飞机
麦克觉得这些玩具没有什么新奇的,怎样才能够做一个属于麦克的游戏呢?麦克决定用micro:bitBOSON做一个炫酷的游戏——拆弹游戏,考验一下小伙伴们的反应能力吧。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图1
所需元件
1×micro:bit主控板
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图2
1×micro:bit扩展板
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图3
1× 彩虹灯带
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图4

1×  MicroUSB 连接线
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图5


实现功能
启动micro:bit之后,LED灯模拟的引线会开始燃烧,当引线烧至最后时炸弹会引爆。麦克需要在炸弹引爆前,根据micro:bit提示的方向依次将板子向不同的方向倾斜,快速解锁炸弹才能避免“**”。
这样的拆弹装置由三个部分组成:
1.    动作识别:用来识别倾斜的方向是否和指示的方向一致。
2.    灯光交互:为LED灯设置引线燃烧的效果,经过时间越长剩余点亮的LED灯越少。
3.    计分系统:在LED灯全部熄灭之前完成20个动作则拆弹成功;LED灯全部熄灭时仍然没有完成,则判定游戏结束。
硬件连接
将彩虹灯带接在扩展板的P0号接口。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图6
编写程序
STEP1:动作识别
首先我们需要让micro:bit能够产生并显示随机的方向,在我们向该方向倾斜操作时能识别出来,随后随机显示下一个方向。这样的一个程序的流程图大致如下。

在游戏过程中,只有当我们的操作与随机产生的指示箭头一致时,才会进行下一步操作,否则一直保持当前的箭头方向。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图7
怎样产生随机方向呢?

可以用0~3四个数字代表四个方向,使用数学Math下的子模块产生随机数模块“选取0至(  )”来从0~3四个数字中随机选择一个数字。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图8
建立一个函数“产生随机方向”,对应产生的随机数,显示不同的箭头。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图9
怎样判读倾斜操作的实际方向呢?

通过在输入input下的姿势识别模块来读取micro:bit的倾斜方向,并且分别对应到0~3中。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图10
通过一个如果if语句条件判断,操作方向与目标方向是否一致。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图11
这个部分的完整程序为:
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图12
注意:“如果为While语句”用于保证两次随机出现的方向不相同。
STEP2:制作炸弹程序

炸弹的效果通过彩色灯带显示,使用灯带来模拟炸弹的保险丝。随着时间的推移,保险丝上的led灯珠将会以稳定的速度相继熄灭。所以反应速度越快,小灯剩余数量越多。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图13
怎么实现倒计时?
建立时间函数,通过计数的形式,设置每次计时的时间间隔,为(1*100)*100ms.一次计时间隔结束,小灯数量减1.

注意:因为micro:bit在处理数据时会消耗到一定的时间,所以倒计时模块实际运行时会走得慢一些。
时间倒计时的同时,小灯的显示部分:
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图14
这个部分的完整程序:
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图15
STEP3:增加计分功能
在操作过程中,每次操作方向和目标方向一致,积一分,直到积满20分,并且此时LED灯珠数量大于0,那么挑战成功,拆单成功,最终得分为LED灯珠剩余个数;否则,失败。

流程图大致如下:
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图16
判断是否成功及失败的程序如下:
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图17
计分部分可以合并在主程序中
STEP4:最终程序。
micro:bit造物粒子(基于Mind+)13— 拆弹游戏图18

能力提升
1.尝试加快LED灯的熄灭速度,增加游戏难度;
2.将上下左右方向用其他图形替代,挑战更高难度的下的反应力。
希望你的micro:bit之旅不会止步,用你的奇思妙想,玩出更多新颖有创意的作品。如果你愿意与我们分享的话,也可以直接登陆我们的论坛,让我们的社区论坛记录下你的点点滴滴!
欢迎登陆DFRobot创客社区!

DFRobot 创客社区: www.dfrobot.com.cn



gada888  版主

发表于 2018-9-1 16:14:10

bang,bang,bang
回复

使用道具 举报

程泽宇  学徒

发表于 2019-7-25 10:46:21

垃圾,程序都是错的,不信你自己回去做一下,垃圾


回复

使用道具 举报

DFTom  NPC

发表于 2019-6-25 14:13:35

此mind+版本为1.5.5。因此随机数只需0-3即可。
截图201906251413347851.png
回复

使用道具 举报

DFS1412H9KQ  见习技师

发表于 2018-9-27 20:33:40

666
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail