1

我在 Scratch 中创建了一个飘落的雪花背景,偶然发现了以下代码:

在此处输入图像描述

然后我阅读了关于克隆精灵的 wiki,并被这句话难住了:

所有精灵的变量对于每个克隆都是相同的,但只有这个精灵的变量对于每个克隆都是不同的。

问题:

单击块中,我创建了自己的克隆。克隆和单击时块都共享变量y pos但它们似乎独立地起作用(因此在 oops 术语中)类型为“this”的变量,即仅为克隆对象实例化的单独变量。我不能用勾号显示它,所以我假设它是克隆本地的?

还是y pos全局(类变量)?我猜是后者,但上面的句子没有帮助。

4

3 回答 3

2

Scratch 中的局部变量也是每个克隆中的单独实例。全局变量只存在一次,对所有对象都相同。Scratch 没有类变量,这些变量将在同一对象的克隆之间共享。

于 2017-01-05T20:43:34.203 回答
1

为了使其正常工作,变量 ypos 必须是本地的(仅适用于这个 Sprite),否则两者会相互干扰。

于 2016-04-27T05:56:57.480 回答
0

变量可访问性将根据您创建它的方式而有所不同。当您在变量菜单中创建变量时(即您选择名称的位置),它会询问您是否希望“所有精灵”或“仅此一个”可以访问该变量。如果您选择“所有精灵”,则该变量将被全局创建,并且所有精灵都可以访问(并且可以更改)。如果您选择“仅此一个”,则应该创建一个局部变量,并且只能由每个精灵单独访问。


希望我有所帮助。-绿鹰1220

于 2016-12-06T18:43:21.593 回答