使用 Scratch 的克隆体能做什么?
克隆体,就像本体的分身,具备本体所有的方法。 在面向对象编程(OOD)中,本体像是 Class(类),克隆体像 Instance(实体),克隆的过程就像类的实例化。
克隆体在 Scratch 的编程中,可以实现这些效果:
- Boss 或者玩家发出的子弹
- 两个 PK 的角色
- 大地图游戏的贴图
使用方法也特别的简单:
左边为创建一个克隆体,右边为克隆体的程序。
Scratch 的克隆体有什么问题?
使用 Scratch 的克隆体,有三大痛点:
一、 克隆体编号。这个克隆体到底是谁?向这个克隆体身上存储数据十分难;
二、侦测中 <碰到了(角色)>,居然不能选自己(当然用一些小技巧可以);
三、现在碰到的这个角色的克隆体,到底碰到的是哪个?
用 Gandi Dolly 解决这些这些问题
一、克隆一个角色的时候,让它克隆体带上数据
在过去,通常是先建立一个私有变量,然后克隆前给私有变量赋值,克隆后,克隆体的私有变量就能记录这个克隆体的编号了,然后再通过这个编号去一个列表中查找对应的数据。
现在,只需要这么一句话即可完成:
其中, key 为自定义的属性名, value 为属性的值。
注意,在所有出现 key 的地方,都要注意 key 的命名。 尽可能按以下规则:
1. 不要有空格
2. 不用特殊符号
3. 不以数字开头
不好的 | 好的 |
/key ! | key |
123 | key123 |
Player ID | playerId |
当克隆后,可以通过 Dolly 的事件来监听克隆体的启动
其中: key 和 value 是克隆时填写的数值。 id 是唯一的克隆体编号(长得像乱码)。
案例一:创建一个克隆体,带上数据 “会话Id”
案例二:创建三个克隆体,为他们分别编号, 按空格键删除编号为 2 的克隆体
二、碰撞检测中确定到底碰到的是哪个克隆体
在 Scratch 中,这基本是做不到的,现在用 Dolly 只需要:
上面的代码当每次按下空格键时,会判断一下当前是否碰到 Bat 的角色?如果碰到的话,就取得碰到的 Bat 的克隆体 id。 然后结合(得到 id 为(???) 的[属性]),就能拿到这个克隆体的各种信息了。
示例工程
Coming soon…
以上就是 Gandi Dolly 的功能。 最后,你猜出了 Dolly 封面图上的三个梗了么?
社区中,其他人写的教程或文章:
不想用任何插件来实现部分 Dolly 的功能? 社区中这些教程可能能帮到你。