2016-04-26 16 views
1

ich einen fallenden Schnee-Hintergrund in Scratch erstellen und über den folgenden Code gestolpert:Variablen in geklonten Scratch-Sprites - global oder lokal?

enter image description here

ich das Wiki über das Klonen von Sprites dann lesen und bei dieser Satz stapfte:

Variablen für alle Sprites sind für jeden Klon gleich, aber die Variablen für dieses Sprite sind für jeden Klon unterschiedlich.

Frage:

In meinem wenn Block geklickt ich einen Klon von mir selbst erstellen. Sowohl der Klon als auch die teilen sich die Variabley pos, aber sie scheinen unabhängig voneinander zu agieren (also in oops Begriffen) eine Variable vom Typ 'das', dh eine separate Variable, die nur für das Klonobjekt instanziiert wurde. Ich kann es nicht mit einem Häkchen anzeigen, also gehe ich davon aus, dass es sich um den Klon handelt.

Oder ist y pos global (eine Klassenvariable)? Ich rate Letzteres, aber der obige Satz hilft nicht.

+0

Scratch's Y-Achse ist von -180 bis 180, nicht -360 bis 360 Btw. – Scimonster

+0

Es ist die Animation zu verlangsamen –

+0

Ich habe das selbst entdeckt, aber die Animation bleibt halb unten statt unten auf dem Bildschirm - probier es aus! –

Antwort

1

Damit dies funktioniert, muss die Variable ypos lokal sein (nur für diesen Sprite), sonst würden sich die beiden gegenseitig stören.

+0

Das habe ich bei den 'say statements' herausgefunden und ich denke, es ist lokal. Ich fand die Affen-Klone und Nicht-Affektor-Klone. Schätze, dass der Grund für Kommentare im Code anderer Leute in Scratch sehr wichtig ist oder dass du dir am Kopf kratzt. –

0

Die Variable Erreichbarkeit hängt davon ab, wie Sie sie erstellen. Wenn Sie die Variable im Variablenmenü erstellen (dh wo Sie den Namen wählen), werden Sie gefragt, ob Sie die Variable über "alle Sprites" oder "nur diese" erreichen möchten. Wenn Sie "Alle Sprites" auswählen, wird die Variable global erstellt und ist für alle Sprites zugänglich (und änderbar). Wenn Sie "nur diese" auswählen, sollte eine lokale Variable erstellt werden, die nur für jedes Sprite einzeln zugänglich sein soll.


Ich hoffe, ich half. -GreenHawk1220

1

Eine lokale Variable in Scratch ist auch eine separate Instanz in jedem Klon. Eine globale Variable existiert nur einmal und ist für alle Objekte gleich. Scratch hat keine Klassenvariablen, die unter Klonen desselben Objekts geteilt würden.