很尴尬的在上一节上出现了一块无关的积木“删除本克隆体”,上节教程提到,我们的炸弹一旦被安放完毕,我们就无法再去改变它,只能等它运行完毕,大约要等上2.65秒的时间,才能重新放置。就比方班上有好多个同学,上课的时候老师发现教科书忘记带来了,于是就请小明同学去把教师办公室,把教科书拿过来,这小明还没跑一半呢,老师发现备课的笔记本也没拿,老师年纪大了记性不好哈。这时候怎么办呢,小明都跑一半了也听不见,或者等小明回来再去一趟,或者,再辛苦一下其他同学,比如,让小亮去拿一下备课笔记。
克隆体示例下载 提取码: jrpn
Scratch里我们没有那么多的同学可以帮忙,但是呢,Scratch里的每一个对象都会一个特殊技能——分身术。我们可以召唤一个对象的分身,然后告诉它该去做什么,一旦一个对象开始动作,我们就要等待该对象做完一套动作。但我们把动作交给了分身去完成,本体还是处于待命的状态,这样我们就可以随时召唤第二个、第三个乃至更多分身出来了。
实现分身术的积木就叫做“克隆自己”,我们把原来按下空格键后执行的积木块,一股脑的塞给名叫“当作为克隆体启动时”的积木。当一个克隆体被复制出来以后,“当作为克隆体启动时”这块积木会自动发现它,并自动执行接下来的动作。那本体需要做些什么呢,本体只需要做一件事情,那就是“克隆自己”,至于上一节我们多余的那块“删除此克隆体”,现在我们先不用,让它静静的先在一边等候。
现在,仍旧把鼠标放在显示区域,一边移动鼠标,一边按空格键试试吧!好几个炸弹依次炸开的视觉效果很帅气吧?然后你也该发现问题了,怎么没按几下,就失灵了呢?点击显示区域左上方的红色圆圈,这个圆圈是停止执行所有程序的意思,克隆体是程序中生成的,一旦停止,克隆体就会全体被删除,然后一通轰炸后,同样的问题会再次出现。问题的根源,也是出在克隆体上,电脑系统的资源是有限的,我们无法无限制的复制克隆体,而克隆体做完该做的事情,需要用户主动的去删除它,如何删除,相信读者也猜到了,就是用那块曾经跑错片场的“删除本克隆体”……
放好删除克隆体的积木,重新试一下效果吧,在显示区域移动鼠标,连续点击空格键,虽然还是会有按键时灵时不灵的感觉,但至少不会长时间没有反应了吧?所以说,节约资源,才能实现可持续增长呀,除了节约电脑资源,还要节约用水,节约用电哦。恩,扯远了,回过头解释一下为什么空格按快了会时有时无的问题,同样是因为克隆体有数量限制的原因,克隆体的上限是301个。在克隆体存在的这段时间里,它的行为跟本体是一致的,当屏幕上有两个炸弹的时候,按空格键就变成了2个,而屏幕上有4个炸弹的时候,再按空格键就变成了8个,很快301的上限就被用完了。
复制自己的程序执行完以后,会去检测程序中的克隆体数量,然后为每个克隆体添加一个复制自己的动作,如何避免呢,只能让本体辛苦一些,执行一个根本停不下来的动作,这样它就忙于自己的事情,没有时间再去管其他克隆体了。这个积木块内容有点超前,包含了一个判断的内容,读者可以先行尝试。