首页 > scratch> 详细内容
我教“孩子”在10小时内精通Scratch-第2小时:画画
日期:2019-05-03 

“嘟”的一声,视频接通了。视频那头的她已经开始卖萌了,睁大了眼睛吐着舌头,好像在等我喂吃的。。。

我就只好翻白眼,“萌货,今天上班累不累啊?” (总觉得“女儿”在上班,老爸却在读博士怪怪的。。。)

她开始诉苦,“累,都忙疯了。我想玩小猫放松放松,粑粑,我们今天学什么啊?”

我黑线=.=,“不要叫我粑粑!今天我们先熟悉下Scratch的各个功能模块,也就是怎么控制小猫,然后我教你怎么让小猫画画好吗?”

“好呀好呀,我已经准备好了!”她很兴奋地看着电脑。

我让她先打开网页"https://scratch.mit.edu/",这时她应该看到(部分):

我告诉她,“萌货,你先创建一个新项目,点击Create按钮。” 这时候她看到的应该是这样的画面。

还没等我开口,她惊呼,“刚才还是英文画面,它居然自动跳到中文了耶?!”

这样的细节也能注意到,不愧是我女儿!

我先给她介绍脚本的各个模块,“你看脚本那个地方,‘动作’、‘外观’、‘声音’按钮,顾名思义,那里面的命令就是控制小猫怎么动,外表怎样,发出什么声音;‘画笔’功能就是控制在图上画画的笔;其他功能暂时不学习,等以后再介绍。”

我接着告诉她,“你要把每个项目都看成你的孩子。所以,你可以先给它起个名字,比如小猫,不过如果你的项目多了,你就不知道每个项目是做什么的了,所以。。。”

还没等我说完,她都学会抢答了,“我知道,起个能表达内容精髓的名字。”

我问她,“比如?”

“小猫咪学画画!” 她说完一脸欣喜。

我打趣她,“你叫小猫咪?哈哈。好,那我们先让小猫咪画一条直线。”

她也做好了准备。

我继续跟她介绍,“先点击小猫,让它待命。再点击‘事件’按钮,把‘当绿旗被点击’拖到右侧空白区域,这相当于告诉小猫,如果你点击‘绿旗’,它就要开始听你的指令了。放心吧,它很听话的。”

“这个我明白,下一步是不是点那个‘画笔’?” 她已经开始主动思考了。

“你好聪聪(明)!对的,你点开看看有什么。”我趁机夸她。这时她看到这样的画面:

“你平时画画的第一步是做什么?”我启发她。

“我知道啦!我要把‘落笔’块拖过去,画完了我还要‘抬笔’,所以我还要把‘抬笔’块放在‘落笔’块下面。” 这时,她看到的是这样的画面:


我希望能让她每写完一行代码就试试效果,这样可以形成感觉,“你点击‘绿旗’看看会发生什么?” 就是下图红框里的这个按钮,如果鼠标接触它,它会变成鲜亮的绿色。

她点了一下,告诉我,“神马都没有发生啊。”

我赶紧告诉她原因,“这是因为你只是落笔抬笔,你并没有移动笔。”

她豁然开朗,“对哦,那我是不是要去‘动作’按钮里找移动的命令?”

我松了一口气,看来她已经明白了:

有一些效果需要不同的功能模块之间的命令配合起来才能完成。这是学编程的一个小台阶。对于小孩子,一定要让他们明白和体会组合的魅力,让他们发挥想象力,去尝试组合不同功能的命令,实现丰富多彩的编程效果。

我鼓励她,“是的,你去把‘动作’按钮里的‘移动10步’命令拖到‘落笔’和‘抬笔’之间,再点击‘绿旗’,看看会发生什么?”

她这时会看到这样的结果:

她告诉我,“小猫咪好像移动了一点,但是并没有出现画笔的痕迹啊。”

我告诉她,“那你把‘移动10步’改成‘移动100步’试试?”

她兴奋地叫着,“啊哈,小猫咪终于动起来了,真懒,我叫它走10步就只走10步,多走点还可以减减肥嘛。”她看到的结果是这样的:

我哈哈地笑,“小猫咪好无辜,太听话也被批,哈哈!”

我接着告诉她原因,“这是因为只移动10步,小猫咪的身体把它画的线挡住了,如果你只想画画,希望小猫咪暂时先消失一下,你可以点击‘外观’按钮,把里面的‘隐藏’拖到‘落笔’之前。”

她照做了:

这时代码应该是这样的:

我接着告诉她,“你点击‘绿旗’看看,小猫咪是不是消失啦?”

她如果点击‘绿旗’,看到的是这样的画面:

她好奇地问我,“小猫咪消失啦,它去哪里啦?”

我调侃她,“它是被你批评,伤心地走啦!哈哈!”  

紧接着安慰她,“别担心,它只是被隐藏起来了,如果这时你把‘显示’块拖到‘抬笔’后面,它会再次出现。不过我们先让它一下消失一下,专心画画吧。”

我问她,“我觉得你画的太细了,想不想把画笔变粗点?”

“想啊想啊,怎么弄?”

我告诉她,“别急,我们先把舞台擦干净。你点击‘画笔’按钮,然后把‘清空’拖到‘隐藏’前面,这个时候你点击‘绿旗’的话,程序会先清空舞台,再隐藏小猫咪,然后落笔画长度为100的直线。不信你试试看。”

她这时候的操作:

看到的代码应该是这样的

点击‘绿旗’之后,画面应该是这样的:

结果是(右侧边缘有一条蓝线):

她开始问我,“我怎么觉得小猫咪一直在偷偷滴往右走。”

我告诉她,“对的,如果你想每次开始的时候让小猫咪回到中心的地方,你需要告诉小猫咪,你先到中心地方等着。怎么告诉它呢?”

我顿了顿,让她思考一下,接着说,“在‘动作’按钮里,有一个‘移到x冒号y冒号’的块,把这个块拖到代码区域里的‘清空’块前后都可以。”

她告诉我,“我把这个块拖到‘清空’下面了,接下来呢?” 那代码应该是这样的:

“然后点击x和y的右侧的数,把x和y的数值都改成0。”代码变为:

“别点‘绿旗’,你先把‘隐藏’和下面的所有命令都消除掉。很简单,你只需要点击‘隐藏’块不放,然后拖到脚本的区域就可以啦。” 此时代码是这样的:

我告诉她,“你点击‘绿旗’的话,小猫咪还是不出来,你信不信?” 如果她点击‘绿旗’,看到的舞台应该是白白的一片,就不给图了。

她很好奇地试了,“真的耶,那我把‘显示’块放在下面再试试。。。恩,这样就可以了,好简单,小猫咪真听话。” 此时舞台和创建新项目的时候一样,也不给图了。

我听了后就哈哈地笑,女儿真可爱,问她,“现在你已经可以控制小猫咪出现或者消失了。那么我们尝试把画笔变粗点,你把将‘画笔的大小设定为1’块拖到‘显示’块下面,再把‘1’改成‘5’。”

她做完后告诉我好了,我接着教她,“你把‘落笔’拖到‘将画笔的大小设定为5’下面,再把‘抬笔’放在‘落笔’下面。接着点击‘动作’按钮,把‘移动10步’拖到‘落笔’下面,并将数字‘10’改成‘100’。”此时代码是这样的:

她告诉我弄好了,我让她点击‘绿旗’看看效果。效果如下图。

她很开心O(∩_∩)O~,“画笔真的变粗了啊!”

我这时候问她,“你想不想给画笔换一个颜色?”

她还在开心中^_^,“哈哈,我看到这个命令了,不用你教我,这个我会!这有三个命令是改画笔颜色的。”她说的是

我开始尝试增加难度,“那你画一个正方形看看?”

她问我,“没问题!可是该怎么画竖线呢?”

我把皮球提给她,“你自己觉得呢?”

她很快给我答案,“可以用‘动作’里的‘将y坐标增加10’这个块。”

于是她开始尝试,边改代码边自言自语,“正方形的四条边相等,所以应该把‘10’改成‘100’。”

我夸她,“真聪聪!” 她的代码应该是这样的:

点击‘绿旗’后,应该得到这样的效果:

这时候她又疑惑了,“怎么让小猫咪往左走呢?”

我反问她,“数学里的负数是不是正数的反方向啊?” (如果小孩子没有学过负数,下面这个可以忽略,往下看,跳到“没有负数的解决方案”。)

她顿悟,“哦,我明白啦!只需要把‘移动100步’改成‘移动-100步’就可以了。”代码如下:

我很高兴O(∩_∩)O,“也可以用‘将x坐标增加10’拖到‘抬笔’上面,然后把‘10’改成‘100’也可以做到。”代码如下:

点击‘绿旗’,结果如下:

剩下的不用我教她,她已经都会了,“然后我把‘将y坐标增加10’这个块放在‘抬笔’上面,然后把‘10’改成‘-100’就可以了。”代码如下:

点击‘绿旗’,结果如下:

看到正方形出现的那一刻,我的“女儿”兴奋地敲桌子,她的手机倒下了,然后我就只能看到她家的天花板了。。。。。。

我提出抗议,“我摔倒了,你要赔钱,快扶我起来!”

于是她又把手机拿起,靠在一个地方,这样视频的时候我才能看到她。

没有负数的解决方案

我接着告诉她,“其实还可以有别的方法,不用负数也可以画正方形,只要在画完横之后把小猫咪的朝向改变就可以。”

她问我,“那怎么改变小猫咪的朝向呢?”

我故作神秘,问她,“你觉得呢?”

她看着电脑屏幕思考了一会儿,就笑了,“很简单嘛, 我只要用‘面向90方向’这个块就可以了。” 然后她给看了看她修改后的代码和点击‘绿旗’后的效果。

我想不到她悟性还不错,以前只知道她卖萌总是给我带来惊喜和井猜。所以,

不要小看任何一个人在编程方面的潜力!

当然,我没有贬低我“女儿”的意思。她也是很聪聪的人,继承了‘爹’的智商(✿~‿~)。

我希望她不要骄傲,就告诉她,“还有一个方法,可以用‘向右旋转15度’这个块,你把‘15’度改成‘90’度试试。”她给我的代码和效果是这样的:

我接着告诉她,“其实这个还有别的方案,以后我们会学到‘控制’按钮,里面会有循环功能,这是编程里很重要的一个功能。”

她的好奇心也来了,“那怎么用循环啊?”

我得意了,心想你不会了吧O(∩_∩)O! hiahiahia!

然后我告诉她,“你点击‘控制’按钮,选择‘重复执行10次’这个块,拖到‘落笔’下面,它会自动把下面的所有块都包进去,你把抬笔拖到‘重复执行10次’下面,把‘10’改成‘4’。然后只留一组‘移动100步’和‘向右旋转90度’就可以了。”

她很聪明,给我的代码是这样的(效果和上一张图一样的,略掉):

教她做的其他项目,过程与上面的类似,这里就只给出代码和效果图:


如何画不断变颜色的正方形

变颜色的关键命令是:

代码:


效果:

如何画彩虹状的圆

代码:

效果:

如何画彩色六角形并转一圈(360度)

代码:

效果:

小猫咪表示抗议,“我都转晕啦!”

我只好安慰它,“今天就辛苦你喽!我去给你做红烧