有时候我们的作品会有很多角色,甚至会出现很多相同的角色并且做着相同的事情,比如一起操练的战士们,游戏中很多相同的怪兽。对于很多相同的角色的出现,我们可以利用克隆技术来解决这一问题。
在Scratch编程中,我们可以在“控制”脚本中发现“克隆”指令模块(图1),克隆就是复制自己,任何角色都能使用克隆积木创建出自己或其他角色的克隆体,甚至连舞台也可以使用克隆。
当克隆发生的那一刻,克隆体会继承原角色的所有状态(图2):包括当前位置、方向、造型、效果属性和所有脚本等,我们通过脚本“克隆”来感受下“继承”的意思。
脚本是克隆体继承原角色的所有属性:先克隆一个原来的自己(黄色、位置在<0,0>点),然后原角色颜色增加25并向前移动200步,这样舞台上就有两个小猫了。
我们来执行脚本程序(图3):
当我们按下空格键时舞台上出现两只小猫,当我们再按下空格键时舞台上不是三只小猫,而是四只小猫,这是为什么呢?原来克隆体还会继承原角色的所有代码(圖4)。
第1次按空格键时,克隆体继承了原角色的所有属性和代码,当再次按空格键时原角色和克隆体都要执行“克隆自己”指令模块,角色数量的增长是以指数级增长,即2的n(次数)方。
如果我们想一次只克隆一个,我们通常用以下的代码(图5):
这段代码的核心是“当绿旗被点击”,因为“当绿旗被点击”在脚本程序中只执行一次,所以克隆体的代码将不被执行(图6)。