Weiteres

Listen

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:

Scratchs-Sätze als Liste
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]
Scratchs Skript

Timer

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:

Scratchs Timer
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]
Scratchs Timer-Skript

Webcam

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])
Webcam-Blöcke

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
If mit Webcam-Intensität