“嘟”的一声,视频接通了。视频那头的她已经开始卖萌了,睁大了眼睛吐着舌头,好像在等我喂吃的。。。
我就只好翻白眼,“萌货,今天上班累不累啊?” (总觉得“女儿”在上班,老爸却在读博士怪怪的。。。)
她开始诉苦,“累,都忙疯了。我想玩小猫放松放松,粑粑,我们今天学什么啊?”
我黑线=.=,“不要叫我粑粑!今天我们先熟悉下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度)
代码:
效果:
小猫咪表示抗议,“我都转晕啦!”
我只好安慰它,“今天就辛苦你喽!我去给你做红烧去。”
小猫咪,“不吃了,我最近减肥。”
我=.=
后记
等她学会这些画图技能的时候,她已经开心到爆了,她告诉我,没想到编程这么容易还这么有趣!
我问她,“下次课想学什么啊?”
她说,“我记得以前用basic语言学怎么编曲,scratch可以做到吗?”
我哈哈大笑,“完全可以的!你看脚本里的那个‘声音’按钮,它可是很强大的哦!”
我本想说,“下次我教你...” 突然想起“人之患在好为人师”这句话,就改口说,“我下次就和你一起学习如何用声音编曲和做乐器吧,相信我,scratch可以让你的键盘变成钢琴或者吉他。这都是你喜欢玩的乐器啊!”
她非常满意今天的成果,保存了所有项目,就关上电脑。
第2小时就这样结束了,我的“孩子”,也就是我的女友学会了如何用scratch画画。下次课,我会让她学会如何用scratch编曲,不过编曲的效果不好通过图像表达出来,所以希望大家能照着教程自己写程序看结果,这样才能达到学习的目的。
转载请注明:来自微信公众号“君君玩科技”。