少儿编程ScratchJr教程(9)——数学谜题(解决篇)

如果你还没有看过少儿编程ScratchJr教程(9)——数学谜题(疑惑篇),请先看完疑惑篇后再来观看本篇文章。




不知道你有没有自己完成数学谜题的小动画,接下来我们就一起来制作它。


第一步,添加游戏场景


对比一下动画中的背景图和ScratchJr自带的背景图,其中有两处区别。第一,黑板的颜色从白色变成了黑色。第二,黑板和旁边蓝色的墙上多了一些文字。


首先,你可以选中背景图后,在绘图编辑器中将黑板的颜色,通过油漆桶工具变成黑色。



黑板和墙上的文字呢?你可以使用绘图工具画出来,不过这样会不整齐。另一种方式就是使用疑惑篇中介绍的文字工具,输入这些文字。例如,在文字编辑器中输入E = mc²,大小选择最小,颜色选择白色,然后将文字拖动到蓝墙上。



 

用相同的方式,就可以在蓝墙和黑板上添加和动画中一样文字。这里有个问题需要注意,黑板上的问号在动画过程中会变成其他的数字,因此它不是背景的一部分,而是可以通过积木块控制的角色,添加完文字以后的背景会变成下面这样。



第二步,添加动画角色


首先把需要的老师和学生添加进来,你可以任意选择自己喜欢的角色作为老师和学生。还可以像探索月球一样,将角色换成自己的脸,仿佛是自己在教室中上课。



接下来思考一下,除了人物之外,还有哪些角色?是不是还有3个角色,老师说话时显示的问号,以及通过学生发现的规律所计算出的2组数字。在默认的角色库中没有这些东西,因此需要你通过绘画编辑器将它们画出来。



别忘了将它们放在各自初始的位置上,2组数字角色和问号角色位于相同的位置,默认是隐藏起来的。



第三步,通过积木块,制作游戏


首先,老师会使用说话积木向学生提问,说话的内容可以和演示中一样,也可以输入你自己想让她说的内容,还可以使用声音积木录音,让动画变的更真实。



接着,在老师提问完以后,轮到男同学回答问题,他怎么知道老师什么时候提问完呢?是不是有两种实现方式。第一种,绿旗加等待积木,让他等待老师说完话以后再开始自己说话。第二种,使用消息积木,当老师说完话后发送一个消息通知男同学,男同学接收到老师的消息后,开始回答问题。


需要注意的是,男同学回答的内容分为两个部分,第一部分,他用说话积木解释了自己发现的规律。



第二部分,当他说出问号代表的答案时,黑板上的问号同时会变成他说出的数字。如何实现呢?有没有想到大魔术师中的猴子变青蛙。当男同学说出数字前,发送一个消息通知问号和数字角色,问号角色接收到消息后隐藏起来,数字角色接收到消息后显示出来,男同学也在接收消息后说出答案。



接下来,轮到女同学说出自己发现的规律,她如何知道男同学是否回答完毕?你可以在男同学说出答案后再给女同学发送消息,通知她开始说话。或者还有一个简单的方式,女同学使用接收消息积木去接收男同学之前发出的红色消息。此时男同学还未执行完毕,黑板上的数字也正在改变,因此女同学接收到消息后需要使用等待积木等待它们执行完毕,再开始自己的发言。


和男同学的发言一样,女同学的发言同样分为两个部分,先是说出规律。



接着回答问号代表的数字,此时黑板上的数字又会变为另外一组,需要女同学使用消息积木通知两组数字隐藏和显示。



最后一步,当女同学回答完毕以后,老师会夸奖大家的回答很棒,告诉大家除了刚刚发现的两种规律之外,还有第三种规律。老师如何知道女同学回答完毕?你是不是立马可以想到让女同学说完话后发送消息通知老师。这样做没有问题,但是实际上还有一种更简单的方式。


还记不记得我们在学习发送消息积木时特别强调过,如果发送消息积木后面还有别的积木块,它需要等待所有相同颜色的接收消息积木块都执行完毕之后,才会继续执行。


注意观察我们之前使用的发送消息积木和接收消息积木的颜色。老师发送了橙色消息,开始等待男同学接收的橙色消息执行完毕。接着,执行过程中男同学又发送了红色消息,开始等待女同学接收的红色消息执行完毕。最后,执行过程中女同学发送了黄色消息,开始等待她自己接收的黄色消息执行完毕。三种消息之间串联在一起,只有当女同学最后接收的黄色消息执行完毕后,老师发出的橙色消息才会结束等待。


所以,女同学说完话后不需要再额外发送消息通知老师,直接在老师发送的橙色消息后面继续拼接说话积木就可以了。



最后别忘了在老师说完话后,黑板上的文字会变回原本的问号,需要老师发送消息通知数字和问号角色隐藏和显示。



好了,以上就是数字谜题的动画制作。这个动画的目的,主要是让你学会使用文字工具和消息积木的执行顺序,你可以把黑板上的内容替换成任何东西,完成以后开始去给其他小朋友上课吧。


当你通过自己的语言教会别人一件事情时,你会发现自己对这件事情的理解也变的更为深刻,这种“以教为学”的方法就是被称为终极学习方法的“费曼技巧”。


同样的,如果你在学习过程中遇到问题无法解决,你可以扫码关注我的微信公众号“梦世界”给我留言,我会对你的提问一一进行解答。或者你有什么好的想法,也欢迎在公众号中给我留言,帮助我对教程进行持续改进。



Talk is cheap. Show me the code...

0条留言

留言