翻转吃豆子
这篇文章会介绍如何使用“旋转感测”、“创建角色”、“得分”、“变数”、“得分”、“角色是否碰到其他角色”等积木,实作一个透过翻转 micro:bit 移动 LED 灯位置,去碰撞其他 LED 灯的吃豆子小游戏。
相关文章参考:旋转感测、创建角色、变数、得分、角色是否碰到其他角色。
游戏方式
翻转吃豆子是一个经由旋转或翻转 micro:bit,控制 LED 灯位置的小游戏,开始游戏之后,画面上会出现“可以控制”的 LED 灯 ( 角色 ),还有一个“可以吃”的 LED 灯 ( 豆子 ),翻转 micro:bit 可以移动角色,当角色碰到豆子,就可以得分 ( 吃到豆子 )。
使用 micro:bit 实作,游戏操作步骤如下:
- 按下 A 按钮,开始游戏。
- 画面中出现“角色”和“豆子”,豆子的亮度较暗。
- 翻转 micro:bit 移动角色去碰撞豆子。
- 角色碰到豆子后就得分,豆子消失,从另外的地方再产生新的豆子。
积木程序原理
参考“平衡灯 ( 旋转感测 )”一文的内容,打开平衡灯的范例,从这个范例继续修改。
范例:平衡灯 ( 旋转感测 )
首先建立一个准备吃豆子的角色:
- 收合画面里两个重复无限次积木,让画面更清爽 ( 用鼠标在积木上按右键,选择收合积木 )。
- 当启动时,新增一个变数 run,数值设定 0 ( 作为游戏开始的判断 )。
- 新增“当按下按钮 A”积木,按下 A 按钮时将 run 设定为 1,并建立一个角色 player,位置 (2,2)。
将另外一个重复无限次的积木内容,改成用游戏积木的方式呈现 ( 设定游戏角色的 x 和 y 座标为 x 和 y 的变数数值 )。
修改按下按钮和重复无限次的程序,加入“豆子角色”和“吃豆子机制”:
- 当按下按钮 A 时:
- 新增一个变数 bean 为豆子角色,x、y 座标分别设定 0~4 的随机数值,亮度设定 50。
- 设定得分从 0 开始
- 重复无限次积木:
- 新增逻辑判断,判断角色 player 碰到豆子 bean ( 角色吃到豆子 )。
- 角色碰到豆子时,删除豆子角色 ( 变数 bean )。
- 删除豆子角色后,重新建立豆子角色。
- 角色碰到豆子时,让得分增加 1。
最后要加入“倒数计时”机制,替游戏增加更多刺激性,加入倒数计时有两种方法,第一种方式为“使用开始倒数积木”,将积木加入“当按钮 A 被按下”的程序最下方,按下 A 按钮之后,就会开始进行倒数直到时间结束。
比较不建议使用这个做法,因为倒数结束表示“游戏结束”,在 MakeCode 游戏积木的默认逻辑中,游戏结束时所有功能都会停用,直到重新启动 micro:bit 才能再次使用。
第二种方法是“使用循环的倒数计时”:
- 加入“游戏继续”积木 ( 创建角色会影响 LED 显示,所以后方会使用游戏暂停积木来让 LED 正常显示,因此在前面要用“游戏继续”来取消暂停 )。
- 使用“重复 10 次”循环搭配“暂停 1000 毫秒”,做出倒数 10 秒的机制。
- 倒数结束后,将变数 run 设为 0 ( 表示游戏结束,无法移动角色 )。
- 删除 bean 与 player 两个角色。
- 使用“游戏暂停”积木,将游戏暂停,避免影响到 LED 显示。
- 使用显示数字积木,显示最后得分。
完成后,启动 micro:bit,按下 A 按钮,开始进行翻转吃豆子的游戏。
范例解答
范例解答:翻转吃豆子
实作“翻转吃豆子”的小技巧
为什么要使用“游戏继续”和“游戏暂停”呢?
因为 MakeCode 游戏积木里的“游戏结束”功能,会让整块 micro:bit 功能停止运作,必须重新启动才能继续游戏,且创立角色后,角色会影响 LED 所有的显示画面,使用了游戏暂停就能避免这种情况发生。
微信扫码关注
抖音扫码关注