Lernpfad:Scratch für Fortgeschrittene/Figuren klonen: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
Zeile 70: Zeile 70:


Das Besondere an lokalen Variablen ist, dass sie für jeden Klon einen anderen Wert speichern können.
Das Besondere an lokalen Variablen ist, dass sie für jeden Klon einen anderen Wert speichern können.
Das folgende Beispiel verdeutlicht dies. Es enthält eine Figur, die zehn verschiedene Kostüme hat. Jedes Kostüm stellt eine andere Ziffer von 0 bis 9 dar. Außerdem hat die Figur eine lokale Variable <sb>(nummer)</sb>. Beim Klick auf die grüne Flagge {{Scratch2/ui|Flagge}} wird nun im Abstand von 0,5 Sekunden jeweils die Variable mit <sb>ändere [nummer v] um (1)</sb> um eins erhöht, sowie ein Klon erzeugt. Die Klone wiederum gleiten innerhalb von einer Sekunde zu einer Position, die sich aus der <sb>(nummer)</sb> berechnet und wechseln dann zur Kostüm mit der in <sb>(nummer)</sb> gespeicherten Nummer. Beachte, dass der Kostümwechsel erst nach einer Sekunde stattfindet, wenn schon längst der nächste Klon erzeugt wurde und damit auch die <sb>(nummer)</sb> schon wieder hochgezählt wurde. Die Klone haben sich aber den Wert bei ihrer Erzeugung gemerkt und wechseln so zum richtigen Kostüm.
Das Skript sieht wie folgt aus:
<scratchblocks>
Wenn die grüne Flagge angeklickt
setze [nummer v] auf (0)
gehe zu x:(-200) y:(0)
wiederhole (10) mal
  ändere [nummer v] um (1)
  erzeuge Klon von [mir selbst v]
  warte (0.5) Sek.
end
Wenn ich als Klon entstehe
gleite in (1) Sek. zu x:((-200)+((nummer)*(40))) y:(0)
wechsle zu Kostüm (nummer)
</scratchblocks>


[[Datei:Scratch Klone3.gif|center|frame|Beispiel für die Verwendung von lokalen Variablen zur Steuerung von Klonen.]]
[[Datei:Scratch Klone3.gif|center|frame|Beispiel für die Verwendung von lokalen Variablen zur Steuerung von Klonen.]]

Navigationsmenü