使用 Scratch 的克隆体能做什么?
克隆体,就像本体的分身,具备本体所有的方法。 在面向对象编程(OOD)中,本体像是 Class(类),克隆体像 Instance(实体),克隆的过程就像类的实例化。
克隆体在 Scratch 的编程中,可以实现这些效果:
- Boss 或者玩家发出的子弹
- 两个 PK 的角色
- 大地图游戏的贴图
使用方法也特别的简单:
左边为创建一个克隆体,右边为克隆体的程序。
Scratch 的克隆体有什么问题?
使用 Scratch 的克隆体,有三大痛点:
一、 克隆体编号。这个克隆体到底是谁?向这个克隆体身上存储数据十分难;
二、侦测中 <碰到了(角色)>,居然不能选自己(当然用一些小技巧可以);
三、现在碰到的这个角色的克隆体,到底碰到的是哪个?
用 Gandi Dolly 解决这些这些问题
一、克隆一个角色的时候,让它克隆体带上数据
在过去,通常是先建立一个私有变量,然后克隆前给私有变量赋值,克隆后,克隆体的私有变量就能记录这个克隆体的编号了,然后再通过这个编号去一个列表中查找对应的数据。
现在,只需要这么一句话即可完成:
其中, key 为自定义的属性名, value 为属性的值。
不好的 | 好的 |
/key ! | key |
123 | key123 |
Player ID | playerId |
当克隆后,可以通过 Dolly 的事件来监听克隆体的启动
其中: key 和 value 是克隆时填写的数值。 id 是唯一的克隆体编号(长得像乱码)。
案例一:创建一个克隆体,带上数据 “会话Id”
案例二:创建三个克隆体,为他们分别编号, 按空格键删除编号为 2 的克隆体
二、碰撞检测中确定到底碰到的是哪个克隆体
在 Scratch 中,这基本是做不到的,现在用 Dolly 只需要:
上面的代码当每次按下空格键时,会判断一下当前是否碰到 Bat 的角色?如果碰到的话,就取得碰到的 Bat 的克隆体 id。 然后结合(得到 id 为(???) 的[属性]),就能拿到这个克隆体的各种信息了。
示例工程
Coming soon…
以上就是 Gandi Dolly 的功能。 最后,你猜出了 Dolly 封面图上的三个梗了么?
社区中,其他人写的教程或文章:
ccw新扩展--多莉
共创世界(CCW)是下一代 ACGN(游戏、动画、漫画、小说)内容创作社区。这里有强大易用的 Scratch 编程创作工具、十万开发者、百万独立游戏。想创作、学习、试玩独立游戏都可以来这里。
www.ccw.site
不想用任何插件来实现部分 Dolly 的功能? 社区中这些教程可能能帮到你。
如何让克隆体拥有专属的变量
不得不说,曾经这个问题困扰过我好一段时间。直到有一天想到了一个绝妙的方法(不得不说我想出来之后就觉得以前我是个智障) 相比我以前想到的方法都十分的烦,而且还有一定的牺牲,因为即使你给他设好了ID转眼就被其他克隆体抢走了,最后我想到了一个办法自定义积木。 id这个值可以在积木内任意使用然后在搞两个列表 一个存储值,第二个存储ID(然后有人就焕然大悟了)然后加一点自定义积木方便后期操作。 ...
www.ccw.site

快速学会克隆体数据交互
教程 在许多编程场景中,我们会需要知道很多信息,尤其是让克隆体了解其它克隆体的信息。 就此问题,本文章将快速讲解方法"克隆体数据交互"。 声明:本文中讲述的方法名称都是作者自己编的,并非官方的严谨命名。 (图1-1) 如图1-1,在新建变量时,我们能发现存在两个选项 1.适用于所有角色 2.仅适用于当前角色 如果以2选项创建一个变量,这个变量将会只存在于一个角色内。 同时,这个变量也为"克隆体变量" 1.在克隆体生成时,按照生成此克隆体时的本体数据来设定该变量(即克隆体会继承生成时的本体的数据)。 2.在此之后,克隆体的任何此变量变化不会影响其它角色和克隆体。 此时的问题就十分明显: 声明:并不需要变量名一致,按照你喜欢的来 先 设置克隆体变量,命名为"类型" 然后设置 当绿旗被点击: 将"类型"设置为"本体" 声明的具体内容可以为任何内容(只需要与克隆体区分开)。 即 设置克隆体变量,命名为"编号" 可以选择是否初始化(因为只要在变化就没有问题) 当绿旗被点击: 将"编号"设置为"0" 然后便是重中之重: 定义如下函数(图2-1,2-2) (图2-1) 此处是否不刷新画面可以随意。 (图2-2)此处判断类型和后续调回类型的文本需要为先前初始化内设置的文本。 1.只会由本体执行该函数。因此可以放心在广播下放置该函数 2.每次克隆体时,编号都会变化。因此,每一个由该函数克隆出的克隆体的"编号"都并不相同。 定义如下代码: (图2-3) 如图2-3,定义两个全局列表,并在开头初始化。 (图2-4) 如图(2-4),令克隆体在生成后把"编号"和"类型"发送到对应列表中。 即 简单测试: (图2-5) 如图(2-5),我们能够让每个克隆体拥有不同编号的同时 在其它列表的对应项找到它们自己的其它数据。 此克隆体数据交互的一些操作: 1.如果数据会实时变化,令克隆体找到自己的编号位置,然后替换所有存储自己数据的列表的对应项即可 2.判断索敌等,只要"记住自己锁定的克隆体编号",就可以持续得到它们的数据对应值 由此,你成功学会了克隆体数据交互。
www.ccw.site
