Scratch中的变量

许多人都知道,Scratch中有两类变量,即全局变量和私有变量。不过,克隆体变量因其隐秘,而不为许多人所知,本系列博客将介绍Scratch中的变量类型及其实际应用。

首先我们来看全局变量,在任意角色中(包括舞台),新建一个变量,选择“适用于所有角色”即可创建全局变量:
Scratch中的变量

任何角色都可以调用全局变量,使用简单,就不再赘述。

接着我们再来看私有变量,在特定角色中,新建一个变量,选择“仅适用于当前角色”即可创建私有变量:
Scratch中的变量

创建完私有变量之后,可以在屏幕上看到:

Scratch中的变量

这时,变量名前面还有角色名,私有变量只能被当前角色,即角色1调用。值得注意的是,不同角色的私有变量可以重名,但全局变量不可重名:

Scratch中的变量

那么如何调用其他角色的私有变量呢?我们可以在侦测模块里找到:

Scratch中的变量

再通过下拉菜单把它改成:

Scratch中的变量

这时,我们就可以在角色1中调用Abby的私有变量了。私有变量是角色独有的,在某个角色中操作私有变量,不会影响到其他角色的私有变量。

那么,克隆体有没有自己的变量呢?答案是肯定的,接下来我们来看看如何创建克隆体变量吧!

首先,第一步和私有变量是完全一样的,但是最好在变量名上和私有变量有所区别,避免混淆:

Scratch中的变量

接着我们产生一些克隆体,并且在每次克隆体启动时都将克隆体变量增加1:

Scratch中的变量

然而结果却不能如愿,所有克隆体显示的都是1:

Scratch中的变量

这是因为每个克隆体都是独立的,而且克隆体变量都是继承自本体,所有结果都是1。现在我们加入私有变量,并且让其在每次克隆之前自加,确保每个克隆体被克隆出来的瞬间,私有变量都不一样。然后在克隆体启动的瞬间,将私有变量赋值给不同的克隆体变量:

Scratch中的变量

没错!这才是我们要的克隆体变量:

Scratch中的变量

可以发现,即便克隆体的代码完全一样,但是因为每个克隆体的变量被赋予不同的值,最后的结果是不一样的,这就是克隆体变量。