你好,训练师,我们又见面了。在开始今天的训练之前,我们首先回顾一下之前的训练内容吧。
课前回顾
- 我们可以利用相对运动的原理,制造视觉上的误差,从而让小鳄鱼看起来真的在往前走;
- 我们知道只要在数字前面加一个负号,就可以得到一个相反数,用来获得相反的程序执行效果。
课前准备
1、点击下方按钮,下载“动画与音效.bcm”源码文件。
2、在谷歌浏览器地址栏输入 https://vipcode.fun/kitten编辑器 网址进入源码编辑器,或者直接点击前面的链接进入。
3、按照之前所学,在源码编辑器里,导入“动画与音效.bcm”编程源文件。
课程目标
训练师,相信你也看过不少动画作品了,你一定发现,大部分的动画作品都会有好听的背景音乐,这样能让动画作品更加丰富多彩。所以,我们今天的目标就是也给我们《小鳄鱼漫步》动画加上背景音乐,从而给我们动画章节的训练任务画上一个圆满的句号。
思考
- 我们既然要给动画加上背景音乐,那么我们的编程对象是谁?
- 背景音乐一般是播放一遍就完了,还是播完一遍又重复播一遍,这样不停地重复呢?
- 我们之前在《森林寻宝》的训练中,关于播放音乐用的是哪个积木?可不可以也用在这里呢?
训练师,你能够回答吗?
一、编程对象是谁?背景音乐,顾名思义就是让背景播放声音,所以我们的编程对象就是背景咯。
二、一般情况下,背景音乐都是重复播放,播完一遍,再重复播一遍,再重复播一遍,如果不按停止,就会一直这么重复播放下去。所以我们要用到无限重复执行。
三、我们之前的训练任务中,用的是声音盒子中的“播放声音”积木,但是聪明的训练师,一定注意到了。在声音盒子中还有一个“播放声音,直到结束”积木。这个积木也可以用来播放声音。那么这两个积木有什么区别呢?我们从播放声音这个角度来看,这两个积木的功能是一样的。不过训练师你应该还记得程序有从上到下依次执行这样的顺序执行方式。上一个指令积木执行完毕后,才会执行后面一个指令积木。有下图两段程序
如果按照程序一执行。只要“春天在哪里”这首歌一旦开始播放,那么这个播放声音积木就执行完毕,不用等到这首歌播完,就会去执行下一个移动100步的积木:如果按照程序二执行。我们要等到“春天在哪里”这首歌播完,这个积木才算执行完毕,然后再去执行,移动100步这个积木。训练师你明白这两个积木的区别了吗?所以对于需要重复播放的背景音乐来说,我们就要用“播放声音,直到结束”这个积木。
既然我们确定了编程对象就是背景,也确定了背景要去执行的任务,那么接下来我们就要画一个流程图,来规划一下背景执行任务的逻辑了。
按我们就按照这个流程图给背景编程吧,如下图所示
我们点击开始,看看小鳄鱼在美妙的歌声陪伴下,在森林中漫步呢!
聪明的训练师你一定注意到了,我们上节课中也给背景编程了,就在红色方框的右边。训练师,这里需要注意了。由事件积木开始,拼接其他积木片组成的积木片段,我们就把它叫做一个脚本。这里有两个“当开始被点击”事件积木拼接组成的积木片段,所以这里就有两个脚本。左边这个脚本的功能就是不断重复播放背景音乐,右边这个脚本的功能就是用来让背景后移。这两个脚本的功能都是在点击开始按钮之后,同时运行的,所以就有了一边播放声音,一边背景后移的效果了。从这里可以看出,我们可以个一个对象编写多个脚本。同时这里就产生了编程中的一个重要概念,多线程编程。这是一个十分重要,但是又非常复杂的学问,以后我们会继续深入讨论。
关于动画的研究,我们先暂时告一段落。接下来的编程之旅会更加精彩,加油吧!训练师!
课后回顾
通过这节课的学习,我们学到了如下内容。训练师你是否记得呢?
- 重复播放声音,要用“播放声音,直到结束”积木
- “播放声音”积木与“播放声音,直到结束”积木的相同与不同点。
- 如何给背景添加背景音乐。
- 脚本是什么以及初步了解多线程编程。
样例程序
作品代码文件下载
点击下方按钮,可以下载老师完成的代码,导入之后,可以对比一下,咱们互相进步。编程没有绝对的标准答案,只有更加优化的方案!
加油哦,训练师!
课后思考
1、是否可以将背景的两个脚本,融合成一个呢?
2、播放背景音乐,是否可以用“播放声音”积木就可以达成效果呢?
这里没有标准答案。训练师,可以自己尝试!我们下个训练任务再见吧!