少儿编程ScratchJr教程(6)——灌篮高手(解决篇)

如果你还没有看过少儿编程ScratchJr教程(6)——灌篮高手(疑惑篇),请先看完疑惑篇后再来观看本篇文章。




不知道你有没有自己完成灌篮高手的动画,接下来我们就一起来制作它。


第一步,添加动画场景


同样的,我们从背景图库中选中体育馆。你可以看见在默认的体育馆中,除了篮球架,下面还有一个足球门,感觉是不是有点奇怪。你可以选中这张背景图片,点击画笔进入绘制编辑器,在右边的菜单中有一个剪刀图案的按钮,选中它以后,可以将图片中不要的东西剪掉。在这里,我们就选中剪刀,将篮筐下面的足球门剪掉。




第二步,添加动画角色


这个动画用到了两个角色,默认的小蓝人和篮球,将它们从角色库中添加进来,调整好大小和初始位置。




第三步,通过积木块,还原动画


我们先来制作小蓝人,它做了两件事。第一步,一边说“灌篮”,一边从中圈移动到罚球线。如何让角色同时做两件事?有没有想起《疑惑篇》中介绍的并行事件?


我们使用两个绿旗积木来同时启动两个指令串,一个让它向右移动,另一个让它说“灌篮”。



接着,他需要从罚球线跳向篮筐。请你思考一下,在这个过程中发生了什么事?你可以看见小蓝人朝着下图黑色箭头的方向朝篮筐移动,但是你并没有这种向斜上方移动的积木块,应该怎么办?


实际上这个黑色的箭头方向,可以分解成下图中两个红色的箭头方向。小蓝人只需要一边向上移动,同时一边向右移动就可以了,是不是又用到了并行事件。



在这里你可以有几种不同的实现方式。刚刚我们已经使用两个绿旗积木让小蓝人一边说话,一边移动到罚球线。接下来,你只需要在它们后面分别加上向右移动和向上移动积木就可以了。为了保证角色看着是在朝一个方向前进,你还需要把向右和向上两个积木的数字,设置为一样的。



但是这样做你可能会遇一个问题,小蓝人说话的时间和移动到罚球线的时间可能不一样,导致后面两个积木不是同时开始执行。



所以你需要测试一下,哪个积木结束的快一些,就在它的后面增加一个等待积木,等待另一个积木执行完以后,再同时执行后面的积木。


这里声音积木的时长可能不容易控制,你还可以再增加一个绿旗积木,让它先等待小蓝人移动到罚球线,接着再同时起跳。




除了上面这种方法之外,还有另外一种方法,使用消息积木。当小蓝人移动到罚球线之后,他可以发送一个消息通知自己准备起跳。接着,使用两个接收消息积木块同时启动,一个让他向上移动,一个让他向右移动,你就会看见他斜着跳向了篮筐。




跳向篮筐之后,小蓝人还需要回到地上,在向上移动积木的后面增加一个向下移动积木。



接下来,轮到篮球了。第一步,它会上下运动,跟随小蓝人移动到罚球线。是不是同样需要使用并行事件,一边上下运动,一边向右移动。这里需要注意两个问题,第一篮球向右移动的距离和小蓝人是一样的。第二,在向右移动的过程中,上下移动了多少次,需要自己测试。



注意观察你就会发现,上下移动的积木块都是重复的,有没有想起《疑惑篇》中介绍的循环积木。



第二步,篮球也需要斜着飞向篮球框,是不是和小蓝人一样,同时一边向右移动,一边向上移动。



最后,篮球被猛烈灌入篮筐,飞快的掉在地上。你可以使用速度积木让篮球更快的向下移动。需要注意的是,当你使用速度积木将篮球变快之后,重新运行动画时,篮球的速度不会自动恢复,所以你还需要在最开始将速度恢复为正常状态。



以上,就是小蓝人大灌篮的制作过程。我在上面的制作过程中,将小蓝人的起跳和落下分成了向上移动和向下移动两个步骤,你还可以尝试一下能不能使用跳跃积木来代替。


在之后的编程过程中你会发现,制作一个项目时,往往会有很多不同的实现方式,它们并没有绝对的对错之分,而是基于一个问题的不同解决方法。实际上这也更接近我们的现实生活,它不是绝对的非黑即白,而是有更多不同的可能性。如何让自己保持开放的态度,采用多元思维思考问题,将是你持续获得成长的关键。


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



Talk is cheap. Show me the code...


0条留言

留言