移动速度不同的灯
这篇文章会介绍使用“函数”积木,搭配“背景执行”、“数组”、“循环”和“点亮”积木,让 micro:bit 的 LED 灯,能用不同的速度,在同一个画面中显示 ( 同一个画面里,有些灯移动的比较快,有些则移动的比较慢 )。
积木程序原理
当启动时,建立一个名为 list 的“二维数组”,数组第一层为 y 轴座标,第二层为 x 座标数组 ( 第一层建立第六个项目,目的为了让画面好编辑 )。
如果对于数组操作 LED 还不熟悉,可以先行阅读:数组点灯 ( 显示图形 )、数组点灯 ( 动画 )
使用“计次循环”,次数设定 0~4 次,读取第一层数组的第一个项目,并将项目 ( 第二层数组 ) 里的项目依序取出,接着使用逻辑判断,判断如果项目数值等于 1,就点亮对应座标的 LED,如果不等于 1 则熄灭对应座标的 LED。
完成后,启动 micro:bit 就会看见第一排的第一颗灯亮起 ( 对照数组第一排的数字 )。
将点灯的积木放入“无限循环”( 设定 true 则重复无限次 ) 里,每次重复后将数组最后一个项目,移动到第一个项目,并暂停 100 毫秒再继续重复。
完成后,启动 micro:bit,第一排的 LED 就会开始往右移动。
了解控制“一排灯”的动画原理之后,接下来将透过“函数”,将共同的程序积木独立出来,再分别套用到另外四排灯,新增一个名为 led 的“函数”,再加入 y ( 第几排 ) 和 speed ( 速度 ) 两个“数字”参数。
把重复无限次循环,放到 led 函数里,将 0 全部改成函数参数 y,暂停 100 毫秒改成函数参数 speed。
修改后的 led 函数如下图:
由于函数里使用了“无穷循环”,所以使用呼叫函数后,会造成函数后方的程序无法执行 ( 除非函数的循环结束 ),必须搭配“背景运行”积木,让五排灯各自呼叫各自的函数。
参考:背景运行
完成后,启动 micro:bit,就能看到五排 led 都以不同的速度移动。
范例解答
- 范例解答:移动速度不同的灯
延伸练习
如果已经熟悉了移动速度不同的灯的原理,还可以尝试更多好玩的作法:
尝试用“函数”的方法,控制参数,让灯可以往左或往右移动 ( 解答 )。
微信扫码关注
抖音扫码关注