Statt der einfachen Variablen, kann man einem Objekt auch eine Liste zuweisen. Diese Liste kann beliebig viele Einträge enthalten. Z.B. kann Scratch alle Einträge der Liste «Sätze» denken und anschliessend löschen:
when flag clicked
repeat until <(length of [Sätze v]) = [0]>
think (item (1 v) of [Sätze v]) for (2) secs
delete (1 v) of [Sätze v]
end
stop [all v]
Der Timer läuft und zählt die Sekunden sobald ein Programm startet. Die aktuell vergangene Zeit lässt sich darstellen. Man kann nun mit einem Ereignis auf eine bestimmte Zeit warten, etwas ausführen und dann den Timer zurücksetzen. Z.B. eine Scratch-Zeit-Ansage:
when [timer v] > (10)
say (join (current [hour v]) [ Uhr]) for (2) secs
say (join (current [minute v]) [ und]) for (2) secs
say (join (current [second v]) [ Sekunden]) for (2) secs
reset timer
stop [this script v]
Leider bei uns nicht unterstützt (weil die PCs keine Webcam eingebaut haben), aber sehr interessant: Die Möglichkeit Ton und Bild der Webcam einzubauen und auf diese zu reagieren:
Die Intensität der Bewegung des Webcam-Bildes kann ein Skript starten, ebenso die wahrgenommene Lautstärke.
when [video motion v] > (10)
when [loudness v] > (10)
(video [direction v] on [this sprite v])
(video [motion v] on [this sprite v])
Man kann sogar die Bewegungs-Richtung und -Intensität des Videos im Bereich eines Sprites abfragen und so eine Gesten-Steuerung programmieren.
when flag clicked
forever
if <(video [motion v] on [this sprite v]) > [5]> then
point in direction (video [direction v] on [this sprite v])
move (10) steps
end
end