随着宇宙中小行星对地球的威胁越来越大,地球防卫作战指挥部,想让我们的训练师给地球建立一套武器系统,用来摧毁撞向地球的小行星。
课前回顾
通过《动画》章节的练习,训练师你应该掌握如下内容:
- 程序中的事件,就是用来启动程序的一件事情;
- 程序的两种执行方式:顺序执行,重复执行。其中重复执行又分为“有限重复”和“无限重复”;
- 如何绘制流程图来规划任务执行逻辑;
- 如何利用视觉暂留的原理,切换造型来创作动画;
- 如何将程序执行效果与流程图相结合,查找和处理程序出现的问题;
- 初步利用相反数,获得相反的程序运行效果;
- 如何利用相对运动的原理,优化动画效果;
- 了解播放声音,直到结束积木与播放声音积木的区别,同时给动画添加背景音乐;
- 初步了解“多线程编程”
课前准备
1、点击下方按钮,下载“地球保卫战 1.bcm”源码文件。
2、在谷歌浏览器地址栏输入 https://vipcode.fun/kitten编辑器 网址进入源码编辑器,或者直接点击前面的链接进入。
3、导入“地球保卫战 1.bcm”编程源文件。
课程目标
我们要利用编程来建立地球防卫大炮,用来抵御小行星的威胁;进入程序后,播放“突破极限”的背景音乐。并且让防卫大炮的炮口能够瞄准鼠标所指的方向。
思考
1、我们在《动画》章节中,是如何给背景添加背景音乐的?
2、我们之前所学的面向积木,是否可以用在这里,让大炮炮口随时能够瞄准鼠标所指的位置?
3、我们如何用一个流程图,就可以同时规划两个任务?
训练师你能够回答吗?开动大脑,仔细思考一下!
一、在上个训练任务中,我们通过把“播放声音,直到播完”积木,拼接到“重复执行”积木内部,实现了背景音乐的播放;
二、“面向指定度数”积木是可以用在这里的。不过操作有点复杂,训练师,可以自行尝试。Kitten源码编辑器,给我们在动作盒子里提供了另外一个“面向”积木,用来解决这个问题。如下图所示
这个积木用来让角色,或者背景面向后面方框里的对象,比如面向鼠标指针,或者面向其他角色。
三、如果两个任务或者多个任务,都是由同一个事件启动的,那么我们就可以让两个或者多个任务共用一个事件开始节点,从而合并绘制流程图。如下图所示。
我们按照这个流程图去拼接积木就会发现,背景音乐是可以正常播放,但是炮口无法对准鼠标。训练师你知道是为什么吗?在点击开始之后,程序会同时执行左右两个部分的任务,这个流程图左半部分没有问题,所以背景音乐是可以正常播放的。右半部分在点击开始后,就执行了炮口对准鼠标1次,然后右半部分的程序就停止了。右半部分的“炮口对准鼠标”任务按照这个流程图来说没办法一直重复执行。所以炮口就没办法时时刻刻对准鼠标所在的方向。那要怎么办呢?聪明的训练师一定想到了,只要让“炮口对准鼠标”任务,重复执行起来,就可以了。所以我们要修改一下流程图,如下图所示
我们来给背景和炮台编程吧!
1、背景编程
2、炮台编程
我们点击开始,看看防御炮台是不是可以正常瞄准了!
课后回顾
通过这节课的学习,我们学到了如下内容。训练师你是否记得呢?
- 如何添加背景音乐;
- 如何来合并流程图?只要同一个事件启动的程序任务,理论上都可以合并为一个流程图;
- “面向鼠标指针”积木的作用;
- 如果要让某个任务在程序运行过程中一直不停的执行,那就要放到重复执行中去;
样例程序
作品代码文件下载
点击下方按钮,可以下载老师完成的代码,导入之后,可以对比一下,咱们互相进步。编程没有绝对的标准答案,只有更加优化的方案!
加油哦,训练师!