Aus Das deutschsprachige Scratch-Wiki
Jede Figur auf der Bühne hat eine X-Position und eine Y-Position, die ganz genau angeben, wo sie sich befindet. Sogar die Maus! Und genauso, wie man mit einem Musikrekorder Töne aufzeichnet und wiedergibt, kann man in Scratch die Bewegung von Figuren oder der Maus aufzeichnen und wiedergeben. Dazu speichert man jede Sekunde, wo sich die Maus oder die Figur befindet, wenn sie sich bewegt.
Die Bewegung des Stiftes
Bevor wir etwas Gemaltes wiedergeben können, brauchen wir natürlich erstmal einen Stift, der etwas malt! Dieser soll nach dem Klicken der Grünen Flagge der Maus folgen. Dazu geht er in einer Endlos-Schleife zur Maus-x- und Maus-y-Position. Damit keine andere Figur den Stift verdeckt, soll er zu Beginn nach vorne kommen.
Wenn die grüne flagge angeklickt komme nach vorn wiederhole fortlaufend gehe zu x: (Maus x-Position) y: (Maus y-Position) end
Zudem muss der Stift malen, wenn man die Maustaste gedrückt hält, und aufhören, wenn man sie wieder loslässt! Dafür erstellt man ein zweites Script, damit die Bewegung und das Malen parallel ablaufen. Zuerst wird der Stift abgehoben, damit er am Anfang nicht malt. Zudem muss man noch die Stiftfarbe (in diesem Fall Bleistift-Grau) und die Stiftdicke festlegen. Nun wartet die Stift-Figur, bis der Benutzer die Maustaste drückt um zu malen, wenn das geschieht senkt er den Stift ab und wartet, bis dis die Maustaste nicht mehr gedrückt ist. Wenn das der Fall ist, hebt er den Stift wieder an.
Wenn die grüne flagge angeklickt schalte Stift ein setze Stiftfarbe auf [#ff0000] setze Stiftdicke auf (4) warte (2) Sekunden wiederhole fortlaufend warte bis <Maustaste gedrückt> schalte Stift ein warte bis <nicht <Maustaste gedrückt>> schalte Stift aus
Damit der Stift mit seiner Spitze malt und nicht mit der Mitte (diese wird von Scratch automatisch ausgewählt), muss man den Drehpunkt der Figur auf die Stiftspitze setzen.
Zum Schluss folgt noch ein einfaches Script, welches das Gemalte wegwischt, wenn man zum Beispiel die Leertaste drückt.
Wenn Taste [Leertaste v] gedrückt wird lösche alles
Aufzeichnen
Das Aufzeichnen des Gemalten wird über eine weitere Figur geregelt, welche zwei Kostüme hat. Zu Beginn wird das "Start-Kostüm" angezogen! Die Taste A muss gedrückt werden, um die Aufnahme zu starten und zu stoppen, daher muss die Figur zwischen den beiden Kostümen wechseln. Das geht ganz einfach mit dem Befehl Nächstes Kostüm! Das erste Kostüm ist hierbei das Start-Icon und das zweite Kostüm soll das Stop-Icon sein.
Wenn die grüne flagge angeklickt wechsle zu Kostüm [start v]
Wenn Taste [a v] gedrückt wird wechsle zum nächsten Kostüm
Aufgezeichnet wird aber immer noch nichts. Zuerst erinnern wir uns, dass beim Aufzeichnen die X-Position und die Y-Position der Figur, in unserem Fall der Maus, eine große Rolle spielen. Diese werden wir in den sog. Listen abspeichern! Wir erstellen also zwei Listen, die wir "X-Position" und "Y-Position" nennen. Wenn die Aufnahme mit dem A-Klick gestartet wird, wechselt das Start-Kostüm zum Stopp-Kostüm mit der Nummer 2. Also muss zuerst überprüft werden, ob Kostüm Nummer 1 (Start) getragen wird (was bedeutet, die Aufnahme muss erst gestartet werden) oder ob Kostüm Nummer 2 (Stop) getragen wird (die Aufnahme läuft gerade). Wenn letzeres der Fall ist, dann sollen die folgenden Handlungen ausgeführt werden: Zuerst muss alles was in der Liste x-Position und alles was in der Liste y-Position steht gelöscht werden um Platz für neue Daten zu machen. Dann wird die x-Position und die y-Position der Maus solange zur Liste hinzugefügt, bis wieder die A-Taste gedrückt wird. Hierbei wird aber erst geprüft, ob der Benutzer überhaupt zeichnet, d.h. ob die Maustaste gedrückt ist oder nicht. (Erinnere: Zeichnen tut der Stift nur solange, wie man die Maustaste gedrückt hält.)
Wenn die grüne flagge angeklickt warte (0.5) Sekunden falls <(Kostümnummer) = [2]>, dann lösche alles aus [X-Position v] lösche alles aus [Y-Position v] lösche alles wiederhole bis <Taste [a v] gedrückt> falls <Maustaste gedrückt>, dann füge (Maus x-Position) zu [X-Position v] hinzu füge (Maus y-Position) zu [Y-Position v] hinzu end end end
Wiedergabe
Der "Geisterstift" wird dann aktiv, wenn man "W" drückt, um das Aufgezeichnete wiederzugeben. Am Anfang des Programms, wenn man die Grüne Fahne klickt, sollte man die Stiftdicke und -farbe festlegen, außerdem befindet sich der Stift dann in der linken unteren Ecke neben dem Start-/Stopsymbol.
Wenn die grüne flagge angeklickt setze Stiftfarbe auf [#ff0000] gehe zu x: (-174) y: (-175)
Die Taste "W" wie Wiedergabe ist für den Geisterstift das Zeichen in Aktion zu treten. Er soll nun anhand der in den Listen gespeicherten Koordinaten das nochmal malen, was der Benutzer mit dem Stift gezeichnet hat. Wie funktioniert das?
Denk daran, dass Scratch wie ein großes Koordinatensystem ist! Der 1. Wert der X-Liste und der 1. Wert der Y-Liste ergeben zusammen eine Koordinate: (-178/-27). Dort beginnt die Zeichnung! Der Geisterstift muss also dort hingehen und sich dann absenken. Dannach muss er alle Koordinaten "einmal" abfahren, dazu nehmen wir eine Schleife. Die Anweisung muss so oft wiederholt werden, wie Koordinaten in der Liste sind, unsere Listen haben jeweils 6 Werte. Dazu verwendet man den Befehl Länge von Liste. Beim ersten Mal muss er zur 1. Koordinate (also Wert 1 von X-Position und Wert 2 von Y-Position) gehen, beim zweiten mal zur 2. Koordinate und so weiter. Dazu erstellen wir eine neue Variable, den "Zähler". Vor der Schleife wird der Zähler auf eins gesetzt. In der Schleife geht der Geisterstift dann zum "Zählersten" Element aus X bzw. Y, also das Erste. Dann wird der Zähler um 1 erhöht, jetzt geht der Geisterstift wieder zum "Zählersten" Element aus X bwzw. Y, also das Zweite. Solange, bis alle Koordinaten durchlaufen wurden, dann ist die Schleife beendet. Jetzt muss man den Geisterstift noch anheben und zurück in die linke, untere Ecke bewegen.
Wenn Taste [w v] gedrückt wird lösche alles gehe zu x: (Element (1) von [X-Position v]) y: (Element (1) von [Y-Position v]) setze [Zähler v] auf (1) schalte Stift ein wiederhole (Länge von [X-Position v]) mal gehe zu x: (Element (Zähler) von [X-Position v]) y: (Element (Zähler) von [Y-Position v]) ändere [Zähler v] um (1) end schalte Stift aus gehe zu x: (-174) y: (-175)
Bemerke: Auch der Drehpunkt des Geisterstiftes muss auf dessen Spitze sein, damit er auch mit der Spitze malt!
[wiki=de:Aufzeichnen und Wiedergabe der Bewegung von Figuren]Aufzeichnen und Wiedergabe der Bewegung von Figuren[/wiki]