少儿编程ScratchJr教程(4)——大魔术师(解决篇)
如果你还没有看过少儿编程ScratchJr教程(4)——大魔术师(疑惑篇),请先看完疑惑篇后再来观看本篇文章。
不知道你有没有自己完成大魔术师的动画呢?接下来,我们就一起来完成它。
第一步,添加动画场景
和之前的动画一样,先选择需要用到的背景图片。
第二步,添加动画角色
和之前一样,从角色库中选中需要的3个角色。
调整好他们各自的大小,将魔术师放在初始的位置上。
第三步,通过积木块,还原动画
这一次,我不再分别完成每个角色后,合并调试。改成按照时间顺序,根据《疑惑篇》中写好的步骤来制作这个动画。
魔术师:说话,介绍节目,请猴子上台
这一步很简单,使用声音积木录音就可以了。
猴子:走上舞台
注意观察动画演示,看看猴子是如何走上舞台的?它最开始并没有在舞台上,当魔术师说完话以后,它才从舞台的最右侧出现,接着走到聚光灯下。
把猴子拖到舞台最右侧,使用隐藏积木将它隐藏起来,准备好它的初始位置和隐藏状态。
动画开始,使用显示积木将猴子显示出来,使用向左移动积木让它从舞台右侧走到聚光灯下,具体移动的步数需要自己尝试。如果你注意观察演示视频,猴子出现时默认是朝向左边,所以在显示积木之前,可以先用向左移动积木改变它的初始方向。
现在需要思考一个问题,猴子是等魔术师讲完话之后,才显示出来,走到聚光灯下,应该如何实现?
可能你立刻就能想到前两节课中使用的等待积木,只需要点击绿旗后,让猴子等待一定时间再移动就可以了。具体时间要多久,只要合并调式就可以试出来。
请你再想一想,除了这样做,还有没有别的方式可以实现?有没有想到我在《疑惑篇》中介绍的事件积木?
当魔术师在说“有请猴子上台”时,是不是就像魔术师对猴子发了一条消息,通知猴子轮到它上台了。所以我们在魔术师说完话后,使用发送消息积木给猴子发送一条消息,消息的颜色你可以任意选择。
当猴子接收到魔术师发送的消息时,就知道自己可以开始上台了。所以我们只需要将绿旗积木换成接收消息积木就可以了,注意接收消息积木的颜色要和发送消息积木的颜色保持一致。这时候猴子也不需要再使用等待积木,因为这条消息本来就是魔术师说完话后才发送给猴子的,这样就免去了合并调试等待时间的麻烦。
魔术师:说话,让猴子翻跟头
和第一步一样,这里还是使用声音积木让魔术师说话就可以了。
猴子:在舞台上翻跟头
猴子要怎么翻跟头?是不是可以让它跳起来,转一圈,再落下来。但是这里的跳起来不是使用跳跃积木,而是使用向上移动和向下移动积木来模仿它跳的过程。
跟猴子走上舞台遇到的问题一样,猴子什么时候开始翻跟头?是不是也要等魔术师说完话,发消息通知它时,它才开始翻跟头。
同样的,魔术师说完第二句话后使用发送消息积木给猴子发送消息,需要注意的是,这次发送的消息颜色要和之前的不同,这样猴子接收到消息后才能分辨,哪个颜色的消息是让它走上舞台,哪个颜色的消息是让它翻跟头。
魔术师:说话,让猴子变成青蛙
终于要到魔术的高潮,魔术师还是用声音积木说了句,“变成青蛙”。接下来就是见证奇迹的时刻。现在请你暂停想一想,如何让猴子变成青蛙?
猴子:消失
青蛙:出现
回忆一下,你在舞台上看见了什么?这里有两个关键的地方。第一,猴子从舞台中消失,同时青蛙出现在舞台上。第二,它们消失和出现是发生在同一个位置。
如何来实现?有没有想到我在《疑惑篇》中说的,发送消息积木可以同时启动所有角色中使用的接收消息积木。
首先,为了让它们发生在同一个位置,你需要把青蛙拖到和猴子舞台中相同的位置上,然后使用隐藏积木将它暂时隐藏起来,准备好它的初始位置和隐藏状态。
接着就是魔术的核心,魔术师在说完“变成青蛙”后,还是使用另外一种颜色发送消息积木给猴子和青蛙发送消息。猴子在接收到这条消息后,隐藏起来。青蛙在接收到这条消息后,显示出来。这样,舞台上的猴子就变成了青蛙。
之后的步骤是不是和上面的很类似,只需要让魔术师发出不同的消息,通知猴子和青蛙做不同的事情就可以了。
魔术师:说话,让青蛙跳一跳
这一步,还是使用声音积木让魔术师说话。
青蛙:在舞台上跳跃3次
使用跳跃积木让青蛙跳3次,什么时候开始跳呢?还是等魔术师说完话后发送消息,青蛙接收到消息后开始跳。还是注意,每个消息的颜色都不能重复。
魔术师:说话,让青蛙变回猴子
还是使用说话积木让魔术师说话。
青蛙:消失
猴子:出现,走出舞台
这一步又要变身了,是不是和上一次变身一样,魔术师发出消息,青蛙接收消息后隐藏起来,猴子接收消息后,显示出来,接着使用向右移动积木从舞台中间走向舞台边缘,接着又使用隐藏积木,仿佛猴子走出了舞台。
魔术师:说话,谢谢大家
最后一步,还是使用声音积木,表示感谢。这里你会发现一个问题,魔术师之前已经使用了5个声音积木,不能再录音了。怎么解决?
不知道你有没有看过腹语表演。一个表演者站在舞台上,手里套着一个布偶,这个布偶就像一个会说话的人,和表演者互相对话。实际上,布偶说话的声音是由表演者通过腹语的方式发出来的。实际上,这也是魔术中的一个重要的技巧,Misdirection(错误引导)。将你的注意力吸引到一处,而魔术的实际发生场所是在另一处。
同样的道理,你可以重新观看一下演示动画,虽然你能听见一个人在说话,但是你真的能分辨出是哪个角色发出的声音吗?
现在你可以换成另外一个角色来录音,但是该选用猴子还是青蛙?注意观看动画演示,魔术师在说谢谢的时候,猴子也在走出舞台。如果你将声音积木添加在猴子移动积木的前面或者后面,因为积木块只能从左至右按顺序运行,这时会变成先听见说话,再走出舞台,或者先走出舞台,再听见说话。
所以这里更好的做法是在青蛙隐藏之后,使用声音积木来说谢谢。这样就可以一边听见说谢谢的声音,一边看见猴子走出舞台。
那如果你就想使用猴子来录音,有没有什么方法可以实现呢?答案是,有方法可以实现。这也是之后课程中会介绍到的另外一个重要的知识点,并行事件。实际上,我们现在已经用到了并行事件,只是我没有把它单独列出来说明,你可以自己思考一下能不能使用猴子来完成最后这一步。
以上,就是大魔术师的制作过程。你在完成这个动画后,还可以尝试着去修改一下《摔跤比赛》和《缩小隧道》,把之前用到的等待积木也换成使用消息积木。
魔术在被解密后所使用的手法,经常会让你感觉平淡无奇,或者让你感觉自己被骗,想要掀翻魔术师的桌子,但这丝毫不会影响它在被解密之前所带给你的震撼感。
一个好的魔术不单单由手法组成,更重要的是魔术师通过表演所营造出来的现场氛围。同样一个魔术,一个会表演的魔术师可以将你的注意力全部掌控在他的手中,一个不会表演的魔术师,会让你在看魔术的过程中无数次走神(好魔术师值得拿一座小金人)。
如果你喜欢魔术或者更喜欢刘谦的魔术,现在他已经入驻B站,在上面开了一个《刘谦的魔术课》,赶紧去学几个小魔术,到朋友面前去收割他们羡慕的眼神吧。

我在想案例时,喜欢将自己喜欢的事物加入到案例中,像第一课的踢足球、第二课的机器猫、这一课的魔术表演,都是我自己喜欢玩或者喜欢看的东西。这也是我常说的,编程就像是写作和绘画一样,可以结合自己的兴趣爱好,发挥想象力,通过它来锻炼自己的创造能力。
同样的,如果你在学习过程中遇到问题无法解决,你可以扫码关注我的微信公众号“梦世界”给我留言,我会对你的提问一一进行解答。或者你有什么好的想法,也欢迎在公众号中给我留言,帮助我对教程进行持续改进。
Talk is cheap. Show me the code...
You can't connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something - your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.
0条留言