Scratch 2.0新特性介绍(4):克隆功能
(2013-05-09 13:05:48)
标签:
itscratch2.0新特征克隆 |
分类: Scratch2.0 |
Scratch 2.0引入的另一个有趣的功能是克隆。
试想想这样的场景:在某个项目中,你需要多个相同的角色,其动作脚本、造型完全相同,不同的仅仅是这些精灵的位置(想想漫天的烟火或繁星吧)。在1.4或之前的版本中,该如何实现呢?只能先将精灵的动作脚本、造型什么的先设计好,再一个个去复制,需要多少个就复制多少个,然后这些精灵都密密麻麻的排在精灵面板上。这还不算麻烦,如果好不容易复制好了,结果却发现脚本有bug需要修改或者想修改一下其功能就悲催了,那只能一个个去修改脚本,或者先将复制好的精灵删除等修改好了之后再重新一个个的复制。
有了Scratch 2.0,麻烦就大大减轻,只需要使用克隆功能就可以一下子搞定。克隆体有着与父精灵有点完全一样的属性,但它不是新的精灵,而仅仅是一个克隆体而已,其它的精灵可以通过“碰到(touching)”(用父精灵作为参数)命令来感知它。
Scratch 2.0实现克隆功能用到了三个block:
(1)指令模块:创建克隆体 Create Clone of ()
(2)事件模块:当作为克隆体启动时(When I Start As a Clone)
(3)指令模块:删除克隆体 (Delete this clone)
可以递归创建克隆体,为了避免无限制创建克隆体将系统资源耗尽,目前限制只能克隆300次。当一个克隆体被创建时,它就会自动启动,同时激发事件: 当作为克隆体启动时(When I Start As a Clone)。
关于变量:全局变量(适用于所有角色的变量)对所有克隆体来说都是相同的。但对于局部变量(只适用于当前角色)来说,每个克隆体都有一个副本,它在不同的克隆体之间是不同的。
当克隆体运行结束时,可以使用指令“删除克隆体(Delete this clone)”将自身删除。
上面提到的克隆功能的用法仅仅是其中的一个而已,更多的用法期待着你自己去发现。
能够动态创建精灵是一个非常大的进步,期望Scratch能进一步实现动态加载资源就好了。