地球保卫战 1

随着宇宙中小行星对地球的威胁越来越大,地球防卫作战指挥部,想让我们的训练师给地球建立一套武器系统,用来摧毁撞向地球的小行星。

课前回顾

通过《动画》章节的练习,训练师你应该掌握如下内容:

  1. 程序中的事件,就是用来启动程序的一件事情;
  2. 程序的两种执行方式:顺序执行,重复执行。其中重复执行又分为“有限重复”和“无限重复”;
  3. 如何绘制流程图来规划任务执行逻辑;
  4. 如何利用视觉暂留的原理,切换造型来创作动画;
  5. 如何将程序执行效果与流程图相结合,查找和处理程序出现的问题;
  6. 初步利用相反数,获得相反的程序运行效果;
  7. 如何利用相对运动的原理,优化动画效果;
  8. 了解播放声音,直到结束积木与播放声音积木的区别,同时给动画添加背景音乐;
  9. 初步了解“多线程编程”

课前准备

1、点击下方按钮,下载“地球保卫战 1.bcm”源码文件。

2、在谷歌浏览器地址栏输入 https://vipcode.fun/kitten编辑器 网址进入源码编辑器,或者直接点击前面的链接进入。

3、导入“地球保卫战 1.bcm”编程源文件。

课程目标

我们要利用编程来建立地球防卫大炮,用来抵御小行星的威胁;进入程序后,播放“突破极限”的背景音乐。并且让防卫大炮的炮口能够瞄准鼠标所指的方向。

思考

1、我们在《动画》章节中,是如何给背景添加背景音乐的?

2、我们之前所学的面向积木,是否可以用在这里,让大炮炮口随时能够瞄准鼠标所指的位置?

3、我们如何用一个流程图,就可以同时规划两个任务?

训练师你能够回答吗?开动大脑,仔细思考一下!

一、在上个训练任务中,我们通过把“播放声音,直到播完”积木,拼接到“重复执行”积木内部,实现了背景音乐的播放;

二、“面向指定度数”积木是可以用在这里的。不过操作有点复杂,训练师,可以自行尝试。Kitten源码编辑器,给我们在动作盒子里提供了另外一个“面向”积木,用来解决这个问题。如下图所示

这个积木用来让角色,或者背景面向后面方框里的对象,比如面向鼠标指针,或者面向其他角色。

三、如果两个任务或者多个任务,都是由同一个事件启动的,那么我们就可以让两个或者多个任务共用一个事件开始节点,从而合并绘制流程图。如下图所示。

我们按照这个流程图去拼接积木就会发现,背景音乐是可以正常播放,但是炮口无法对准鼠标。训练师你知道是为什么吗?在点击开始之后,程序会同时执行左右两个部分的任务,这个流程图左半部分没有问题,所以背景音乐是可以正常播放的。右半部分在点击开始后,就执行了炮口对准鼠标1次,然后右半部分的程序就停止了。右半部分的“炮口对准鼠标”任务按照这个流程图来说没办法一直重复执行。所以炮口就没办法时时刻刻对准鼠标所在的方向。那要怎么办呢?聪明的训练师一定想到了,只要让“炮口对准鼠标”任务,重复执行起来,就可以了。所以我们要修改一下流程图,如下图所示

我们来给背景和炮台编程吧!

1、背景编程

2、炮台编程

我们点击开始,看看防御炮台是不是可以正常瞄准了!

课后回顾

通过这节课的学习,我们学到了如下内容。训练师你是否记得呢?

  1. 如何添加背景音乐;
  2. 如何来合并流程图?只要同一个事件启动的程序任务,理论上都可以合并为一个流程图;
  3. “面向鼠标指针”积木的作用;
  4. 如果要让某个任务在程序运行过程中一直不停的执行,那就要放到重复执行中去;

样例程序

作品代码文件下载

点击下方按钮,可以下载老师完成的代码,导入之后,可以对比一下,咱们互相进步。编程没有绝对的标准答案,只有更加优化的方案!

加油哦,训练师!

视频教程