3.2 画笔指令积木块编程实例

下面通过蜗牛及其轨迹的绘画来学习画笔模块中各个指令积木块的应用。

3.2.1 实例一:绘制蜗牛爬行轨迹

1.情景介绍

下面通过手动控制来绘制小蜗牛的爬行轨迹。使用方向键移动小蜗牛,小蜗牛在移动的同时绘制出它的轨迹。当按向上方向键〈↑〉时,小蜗牛会向上移动10步;当按向下方向键〈↓〉时,小蜗牛会向下移动10步;每按向右方向键〈→〉一次,小蜗牛将会向右旋转10°;每按向左方向键〈←〉一次,小蜗牛将会向左旋转10°。因此,若要直上直下及旋转90°,则需连续按〈←>键或〈→〉键9次。

2.场景搭建

(1)舞台背景。因为小蜗牛是在教室的墙角被发现的,所以由背景库中将图片chalkboard导入,做舞台的背景,效果如图3-2所示。

978-7-111-55945-0-Chapter03-4.jpg

图3-2 舞台背景效果图

(2)小蜗牛角色绘制。小蜗牛是这次绘画的主角,可以使用“造型”的绘图编辑器来绘制完成。首先用“椭圆工具”绘制蜗牛的壳,然后使用画笔画出蜗牛的身体,也可以使用线段工具来制作完成。绘制效果如图3-3所示。利用颜色填充工具将小蜗牛涂上自己喜爱的颜色,这样可爱的小蜗牛就绘制完成了。填充颜色后的小蜗牛如图3-4所示。场景效果图如图3-5所示。

978-7-111-55945-0-Chapter03-5.jpg

图3-3 使用绘图编辑器绘制小蜗牛

978-7-111-55945-0-Chapter03-6.jpg

图3-4 填充颜色后的小蜗牛

978-7-111-55945-0-Chapter03-7.jpg

图3-5 场景效果图

3.脚本编写

要绘制小蜗牛的爬行轨迹,首先要让它运动起来,直接在动作模块中拖动相应的指令积木块即可。绘制轨迹需应用画笔模块中的指令积木块,然而要想用计算机的键盘来控制它的爬行方向,还需要利用事件模块中的“当按下××”指令积木块,脚本编写如图3-6所示。

978-7-111-55945-0-Chapter03-8.jpg

图3-6 蜗牛爬行轨迹脚本

图3-6中蜗牛爬行轨迹脚本的解释如下。

1)标号为1的脚本:当单击绿旗时开始执行脚本。

2)标号为2的脚本:将小蜗牛移至舞台的中央。

3)标号为3的脚本:让小蜗牛面朝右方。

4)标号为4的脚本:设置画笔的颜色为蓝色。

5)标号为5的脚本:设置画笔的大小为3个单位。

6)标号为6的脚本:将笔画设置为落笔状态

7)标号为7的脚本:为了清除画笔在脚本运行前留下的各种笔迹,需要在脚本的结尾添加“清空”指令积木块。

来自事件模块中的“当按下××”积木块表示当按下上移键〈↑〉时,角色上移10步;当按下下移键〈↓〉时,角色下移10步;当按下左移键〈←〉时,角色向左旋转10°;当按下右移键〈→〉时,角色向右旋转10°。

4.运行效果

当按〈↑〉〈↓〉〈←〉〈→〉方向键时,可以控制小蜗牛爬行的方向和距离,这样小蜗牛在教室爬行的轨迹就被记录下来了,效果如图3-7所示。

978-7-111-55945-0-Chapter03-9.jpg

图3-7 小蜗牛爬行轨迹效果图

3.2.2 实例二:迷失在森林中的蜗牛

1.情景介绍

在每位同学都完成绘画后,老师便把带来的小蜗牛放回到了大自然中,让它回家与自己的亲人团聚。小蜗牛爬啊爬,发现四周全是整排整排相同的树木,它迷失在了森林中。同学们都十分地想念那个给他们带来快乐的小蜗牛,为了纪念它,自发画了一幅画,如图3-10所示。同学们画这幅画用了很长的课余时间,因为森林里的树太多了,每一棵树的绘画都需要大量的时间。老师却告诉同学,其实只需要画一棵树便能绘制出整片森林,因为有一个神奇的指令积木块——图章。

2.场景搭建

使用默认的舞台,角色用上个例子中的小蜗牛,还有一个角色就是树木,从角色库中直接选取文件Tree1来完成。场景效果如图3-8所示。

978-7-111-55945-0-Chapter03-10.jpg

图3-8 场景效果图

3.脚本编写

因为在这里要形成成片的森林,所以只需要为树木角色添加脚本,脚本如图3-9所示。

下面分析一下树木的脚本。因为要画6棵树,所以使用重复执行6次的指令积木块。重复的动作由“图章”指令积木块来完成。它的作用就是将角色树木的造型复制在舞台上,就像按下图章一样,然后向前移动60步为下次按下图章做好准备。这个角色的复制品不能被移动,也不能拥有脚本,但可以被清除。

978-7-111-55945-0-Chapter03-11.jpg

图3-9 树木角色的脚本

4.运行效果

运行脚本的效果如图3-10所示。

在本实例中,如果给小蜗牛添加了如图3-6所示的脚本,就可以手动控制小蜗牛隐藏在森林中的地方了。

978-7-111-55945-0-Chapter03-12.jpg

图3-10 迷失在森林中的蜗牛运行效果

3.2.3 实例三:彩色棒棒糖

1.情景介绍

鉴于同学们在本次图画课上的优异表现,老师决定奖励每位同学一个彩色的棒棒糖,每个棒棒糖的颜色都是不一样的,同学可自行挑选自己喜爱的颜色的棒棒糖。

2.场景搭建

使用默认的舞台,角色就是小红和小明。为了突出彩色的棒棒糖,暂时委屈一下小红和小明,就不让他们出现在舞台上了。如图3-11所示,去掉角色显示后面的对钩。

978-7-111-55945-0-Chapter03-13.jpg

图3-11 设置小明角色不显示在舞台上

3.脚本编写

小明喜欢深色的棒棒糖,而小红喜欢浅色的棒棒糖,他们的脚本分别如图3-12和图3-13所示。

图3-12和图3-13中的脚本可以绘制出颜色完全不同的棒棒糖,但其实它们的脚本只有略微的区别。小红发现,图3-13比图3-12的脚本多了一个“将画笔的色度增加××”指令积木块,使其绘制出的轨迹明显比前者浅了、亮了许多。

978-7-111-55945-0-Chapter03-14.jpg

图3-12 小明深色棒棒糖的脚本

978-7-111-55945-0-Chapter03-15.jpg

图3-13 小红浅色棒棒糖的脚本

脚本分析:在彩色棒棒糖轨迹的绘制中,最大的功臣非“重复执行”指令积木块莫属,一圈一圈的彩色条纹就是在它的帮助下完成的。首先将画笔设定为所需的颜色和大小。最初画笔的大小决定了棒棒糖的大小,即棒棒糖最外一圈的大小。“重复执行”指令积木块重复执行7次,每次重复的动作包括通过“落笔”指令积木块画棒棒糖的一圈,使用“将画笔的颜色值增加××”指令积木块为画笔改变颜色(即画笔的颜色值增加70),目的是使每一圈的颜色都有所不同,利用“将画笔的大小增加××”指令积木块使画笔大小减少30,利用指令积木块“将画笔的色度增加××”来改变画笔的色度,使每一圈的颜色有深浅的变化。这里使用了一个小技巧,利用画笔大小从大变化到小,由外圈向里圈绘制,使得后绘制的里圈覆盖在先绘制的外圈上面,就形成了棒棒糖的一圈一圈的效果。

通过图3-12和图3-13可以发现,小明的脚本没有“清空”指令积木块,而小红的脚本有“清空”指令积木块,这是为什么呢?实际上当执行脚本时,由于小红和小明脚本执行速度的不一致,会导致先绘制的图形被后执行的“清空”指令积木块清除,因此只需要保留一个“清空”指令积木块就可以了。

4.运行效果

脚本运行效果如图3-14所示。

978-7-111-55945-0-Chapter03-16.jpg

图3-14 脚本运行效果(左边为小红的浅色棒棒糖,右边为小明的深色棒棒糖)