今天在逛 makecode 网站时偶然发现了一个很好玩的库 – Turtle,它是一个 micro:bit 的扩展库,作用是控制一个 led 亮点,然后通过编程控制它的移动,并且可以画出移动轨迹,从而画出复杂的图形,碍于 micro:bit 板子上 点阵大小的限制,可以画出的复杂图形不多,不过还是值得一试,下面就是我画的一个螺旋线。
这节教程将会介绍一下 Turtle 这个扩展库的基本用法,它的里面每个模块的意思,下节教程我们会一起来实现上面的螺旋线。
为什么叫 Turtle ?
Turtle 这个扩展库 灵感来源于一门古老的编程语言 – Logo,注意不是 Lego,Logo 是一门专门用于教育的编程语言,它最主要的功能是画乌龟图形(Turtle Graphics),乌龟图形可以想象为用编程命令来控制一只小乌龟的爬行轨迹,然后不停重复,从而画出千变万化的图形
有没有让你想起小时候那种圆圈圈玩具呀,它叫做万花尺
一般来说,乌龟图形有 5 个要素
- 位置
- 方向
- 移动步数
- 移动速度
- 笔刷
位置
位置代表了小乌龟的位置坐标,主要作用是设置小乌龟的起始坐标,也可以改变小乌龟的当前位置,使轨迹线变成不连续的
方向
方向代表了小乌龟的移动方向,即小乌龟下一步要走的方向,我们可以通过调整小乌龟的角度来改变它的方向
移动步数
移动步数代表小乌龟下一步要移动几步,代表了下一条轨迹线的长度,比如上面的动图里,forward 30 就代表了小乌龟向前移动 30 步,除了向前,还可以向后移动
移动速度
移动速度代表了小乌龟的移动速度,在同样的时间里,移动速度越快,小乌龟的轨迹线画的越快
笔刷
笔刷可以想象为有一个虚拟的画笔在小乌龟的身上,可以通过程序控制笔刷落下还是抬起,笔刷落下小乌龟爬行的轨迹会被显示出来,如果笔刷抬起,小乌龟会按照程序继续爬行,但是不会留下轨迹
添加 Turtle 扩展库
下面我们来添加这个扩展库,其他扩展库也可以通过同样的方法来添加。
- 打开 makecode 编程网站,新建一个项目
- 点击 高级,然后点击 扩展
3. 找到 microturtle,点击一下,然后就会添加到刚才新建的项目里了
4. 添加成功之后,就会在模块分类里看到一个新的分类 Turtle
模块介绍
下面来介绍一下这个扩展库的每个模块
移动步数
控制移动步数的模块有两个,分别是 forward 和 back,forward 表示向前移动,back 表示向后移动,模块里的数字代表了移动多少步
默认情况下,龟龟的移动方向是向上,所以 forward 表示向上移动一个 led,back 表示 向下移动一个 led,如下图
移动方向
控制移动方向的也有两个模块,turn left 和 turn right,turn left 表示转向左边,turn right 表示转向右边
来看下面的例子
前面说过,乌龟的默认方向是 向上,左转一下方向变为向左,然后向前移动一步,然后右转一下,方向又变回了向上,然后再向前一步
设置位置
设置位置也有两个模块,set position 和 home,set position 可以指定 x 坐标和 y 坐标,而 home 表示把 乌龟移动到 home 位置,也就是 (2,2) 这个位置,即屏幕中间。
设置笔刷
设置笔刷只有一个模块,pen
设置亮度
设置亮度模块用于控制乌龟爬行时轨迹的 led 灯亮度,范围是 0-255,255 最亮,如果设置为 0,则和 pen up 一样表示没有轨迹
设置速度
设置速度模块用于控制乌龟的移动速度,即每秒乌龟爬行的 led 数量,数值越大,速度越快
龟龟扩展库就介绍到这里啦,下节教程我们来实现文章开始的螺旋线,敬请期待啦。