3.4 电风扇——如何中止无限次的循环
在3.3节中,我们讲述了如何使用无限次循环,有时,我们需要中止这种循环。例如在3.3节的舞蹈比赛中,单击第一个角色后,他(她)会跳起舞蹈,但单击第二个角色的时候,第一个角色的舞蹈还会继续,并不停止。如果想要中止第一个角色的舞蹈,我们需要用到一个积木块——“停止全部”(见图3-18)。
图3-18 停止全部
在“控制”分类下,有一个“停止全部”积木块。如果把它拖到程序区域,单击积木块右边的小三角,会显示三个选项:
:所有正在执行的程序(包括背景、角色)都会停止执行。
:只停止使用这个命令的程序段。
:本角色使用这个命令的程序段继续运行,但其他程序中止运行。
下面我们来看“电风扇”任务。
背景:空白背景
这意味着你不需要做任何操作。
角色:电风扇的框架,电风扇的扇叶
玩法要求:
当单击绿旗时,风扇叶片转动起来。
当按下1键,风扇转速提高到1挡(转速提高)。
当按下2键,风扇转速提高到2挡(转速更高)。
当按下3键,风扇转速提高到3挡(转速最高)(见图3-19)。
图3-19 电风扇
问题分析:这个问题的要求是角色在不同的档位下以不同的速度旋转,而且我们不知道什么时候会切换挡位。那么,我们可以先写出角色旋转的程序,然后再来完成提高旋转速度的程序。
在我们开始写程序之前,先来完成准备工作:添加背景和角色。
注意
框架和扇叶是两个角色!想一想为什么?
这两个角色都需要用“新建角色”中的“绘制新角色”画出来(见图3-20)。
图3-20 电风扇的角色
扇叶的造型需要特别注意,造型中心点必须是图3-20中那个黄色的点。否则你的扇叶就变成了回旋镖。
在创建完角色后,就可以给扇叶编写程序了。
试一试
当单击绿旗时,风扇叶片转动用哪个命令可以实现?为了让它不停转动,我们是否应该把转动的积木块放到循环的命令中?
好吧!现在公布答案,如图3-21所示。
图3-21 单击绿旗后电风扇旋转的程序
当我们按下不同的键时,转速不同,在“魔法钢琴”中,我们已经用过了,以及学习了如何将命令中的“空格键”改为数字,现在我们只需要在这个命令下写下重复执行的命令,然后修改命令中的“10”就可以了,如果想要转快,那么把数字改大一些就行。
问题来了,当按下2键,电风扇快速地转了起来,但当你按下1键,你会发现电风扇不能把速度降下来,还保持着按下2键的电风扇旋转的速度。这并不是说,只有2键有用,而意味着这两段程序同时在运行,表现出来的只是风扇转速高的那个。
这意味着,在按下某一个键时,应该让与这个键不相关的其他程序停止运行。结合本节开始讲的停止程序的办法,你知道怎么办了吗?
图3-22就是按下1键时的程序。
图3-22 让电风扇按你想要的速度旋转
这里强行停止了其他程序的无限循环,一定要注意的是,如果想要在程序中终止某一段无限循环的程序,你必须使用强制终止命令,在Scratch里是“停止…”。