Scratch – ein Fangspiel programmieren
Dies ist eine Aufgabe aus dem Bereich der fortgeschrittenen Scratch-Programmierung. Du lernst, ein kleines Fangspiel zu programmieren und verwendest dabei in Scratch Zufallszahlen und die Stoppuhr-Funktion.
Ich gehe in diesem Blogbeitrag davon aus, dass du bereits einige Kenntnisse im Umgang mit Scratch hast und werde einige Punkte weniger ausführlich erklären. Falls du noch keine Scratch-Kenntnisse hast oder deine Kenntnisse erst etwas auffrischen möchtest, empfehle ich dir zunächst meinen Scratch-Einstiegskurs zu bearbeiten.
Ausprobieren
Bevor du mit dem Programmieren beginnst, kannst du zunächst mein Fangspiel ausprobieren. Ziel des Spieles ist es, die kleine Spinne innerhalb von 60 Sekunden möglichst oft zu fangen. Die Spinne verändert dabei ständig ihre Größe und ihre Position.
Kurzanleitung
Zur vollständigen Anleitung wechseln
Die Kurzanleitung bietet dir einen schnellen Einstieg in die Programmierung deines Fangspieles. Für ausführlichere Erklärungen kannst du die vollständige Anleitung weiter unten in diesem Blogbeitrag nutzen.
Öffne nun den Programmcode des Beispielspieles. Du kannst dafür den folgenden Link benutzen: https://scratch.mit.edu/projects/636907135/editor/.
Schau dir den Scratch Beispielcode genau an. Das Fangspiel besteht aus einem Bühnenbild und einer einzelnen Figur – der Spinne. Außerdem werden zwei Variablen genutzt. Die Variable „Punkte“ wird genutzt, um zu zählen, wie häufig die Spinne gefangen wurde. Die Variable „Timer“ zählt die Spielzeit von 60 Sekunden langsam herunter. Programmieren musst du lediglich die Spielfigur der Spinne. Im Beispielprogramm erkläre ich dir anhand der Kommentare alle Programmiersequenzen.
Nun bist du dran. Wähle ein eigene Bühnenbild und eine eigene Figur aus und übernimm die Programmierblöcke in dein eigenes Spiel.

Wenn du alle Code-Blöcke in dein eigenes Programm übernommen hast, dann kannst du dieses über das kleine grüne Flaggen-Symbol starten.
Überprüfe anschließend, ob dein Spiel funktioniert, wie erwartet. Werden alle Fänge korrekt zu den Punkten addiert und beginnt dein Spiel bei jedem neuen Start wieder mit 0 Punkten? Endet dein Spiel nach 60 Sekunden automatisch? Wenn alles funktioniert, wie du es dir vorstellst, zeige dein Spiel doch deinen Freund:innen oder deiner Familie und lass‘ es durch jemand anderen testen.
Gut gemacht! Du hast nun dein erstes eigenes Fangspiel programmiert und dafür mit Zufallszahlen und der Stoppuhr-Funktion gearbeitet.
Herausforderungen
Willst du dein Spiel noch etwas erweitern und suchst dafür nach Herausforderungen. Was hältst du von den folgenden Ideen:
- Erweitere dein Spiel so, dass zu Beginn des Spieles angegeben werden kann, wie lang die Spieldauer sein soll
- Erweitere dein Spiel so, dass man zu Beginn aus drei Spielfiguren eine Spielfigur auswählen kann, mit der dann gespielt wird
- Baue dein Spiel so um, dass es einen Minus-Punkt gibt, wenn man daneben klickt
- Baue mehrere Level mit unterschiedlichen Spielfiguren, die gefangen werden müssen.
Vollständige Anleitung
Schritt 1: Figuren und Bühnenbild auswählen
Öffne zunächst die Scratch Entwicklungsumgebung und erstelle eine neues Programmierprojekt. Du kannst dafür den nachfolgenden Link nutzen:
Überlege dir nun, wie dein Fangspiel aussehen soll. Wähle ein Bühnenbild und eine eigene Figur aus oder zeichne diese selbst. Eine Anleitung dazu findest du in meinen verschiedenen Scratch-Einstiegstutorials. Lies zum Beispiel den Blogbeitrag „Bühnenbilder und Texte“ für eine detaillierte Anleitung.
Schritt 2: Variablen anlegen
Für das Fangspiel werden zwei Variablen benötigt, die du zunächst im Blockabschnitt Variablen anlegen musst. Das Anlegen der neuen Variable erfolgt über die Schaltfläche „Neue Variablen“. Falls du nicht mehr genau weißt, wie das Anlegen funktioniert, schau es dir doch noch einmal in meinem Blogbeitrag „Töne und Klänge“ an.

Die erste Variable die benötigt wird, nennst du „Punkte“. Sie wird im Fangspiel dazu verwendet, zu zählen, wie oft die Spinne gefangen wurde. Die zweite Variable wird „Timer“ genannt. Du verwendest sie später, um zu berechnen und anzuzeigen, wie viele Sekunden es noch dauert bis die aktuelle Spielrunde abgelaufen ist.
Sobald du die beiden Variablen angelegt hast, solltest du noch ihre initialen Werte – also die Werte zu Beginn des Spieles – festlegen. Dabei wird der Punktestand auf 0 (Punkte) und der Timer auf 60 (verbleibende Spielsekunden) gesetzt.

Schritt 3: Spielfigur programmieren
Der nachfolgende Code wird genutzt, um die Spielfigur – also in unserem Beispielprogramm die Spinne – zu programmieren. Er unterteilt sich in zwei wesentliche Abschnitte: Dem anfänglichen positionieren der Spinne auf einer Startposition und dem anschließenden zufälligen Anzeigen der Spinne an unterschiedlichen Positionen.

Starteinstellungen
Zunächst wird also die Spinne auf eine feste Startposition platziert (gehe zu x: (-5) y: (-56)
), in ihrer Größe angepasst (setze Größe auf (100)
) und eingeblendet (zeige dich
). Du kannst alle hier verwendeten Werte für die Größe und Positionierung der Spielfigur individuell ändern, sodass es für deine eigene Spielfigur passend ist. Im Anschluss wird die Spielfigur so programmiert, dass sie über eine Sprechblase zum Start des Fangspiels aufruft (sage (Fang mich) für (2) Sekunden
).

Zu Zufallsposition wechseln
Alle nachfolgenden Anweisungen werden fortlaufend in einem wiederhole fortlaufend
-Block ausgeführt. Diesen musst du also ganz außen platzieren. Um die Spinne nun an einer zufälligen Position zu platzieren, kannst du ganz einfach den Block gehe zu (Zufallsposition)
verwenden.

Größe der Figur ändern
Um das Fangspiel etwas interessanter zu gestalten, wird nun auch noch die Größe der Figur zufällig angepasst. Der Aussehen-Block setze Größe auf (...)
wird dabei durch den Operatoren-Block Zufallszahl von (25) bis (100)
ergänzt. Du kannst den unteren und den oberen Wert für die Zufallsgröße auch nach belieben anpassen, sodass dein Spiel an deine Spielfigur angepasst ist. Verwendest du größere Zahlen, wird dein Spiel einfacher, weil deine Figur größer und damit leichter zu fangen ist.

Positionswechsel nach zufälliger Zeitspanne
Im letzten Programmteil wird nun die Spielfigur noch angezeigt und nach einer zufälligen Zeitspanne wieder ausgeblendet. Das ausblenden passiert ebenfalls für eine zufällige Zeitspanne. Beiden Zeitspannen werden über den warte (...) Sekunden
-Block realisiert. Als Wert für die Sekunden wird dabei eine Zufallszahl zwischen 0.5 und 1.5 Sekunden verwendet. Du kannst die Werte nach deinen eigenen Vorstellungen anpassen, je kleiner die Zahlen sind, umso schneller verschwindet deine Spielfigur wieder und umso schwieriger wird das Spiel.

Schritt 4: Timer programmieren
Nachdem die Spielfigur programmiert wurde, wird nun der Timer eingebaut. Dieser sorgt dafür, dass das Spiel nur für eine bestimmte Anzahl an Sekunden läuft. Der Timer wird dabei im Spiel angezeigt und zählt in Sekundenschritten rückwärts bis er bei 0 angekommen ist.

Stoppuhr nutzen
Zur Umsetzung des Times wird die Stoppuhr-Funktion von Scratch verwendet. Die Stoppuhr wird zu Beginn des Spiels auf 0 gesetzt (setze Stoppuhr zurück
) und zählt von diesem Zeitpunkt an die Zeit, die das Spiel bereits läuft.

Timer herunterzählen
Im nächsten Schritt wird der Timer langsam rückwärts gezählt. Dafür wird der aktuelle Wert der Stoppuhr genommen und von 60 Sekunden subtrahiert. Das Ergebnis wird noch gerundet, damit der dargestellte Wert im Spiel besser lesbar ist. Anschließend wird der berechnete Wert der Timer-Variablen zugewiesen.

Spielende
Sobald der Timer abgelaufen – also kleiner als 0 – ist, wird das Spiel beendet. Dabei wird zunächst dafür gesorgt, dass sich die Spinne nicht länger versteckt und neu positioniert wird (stoppe [andere Skripte der Figur]
). Anschließend wird die Spinne wieder angezeigt, an ihrer Startposition platziert und auf ihre Startgröße zurückgesetzt. Dann sagt die Spinne über eine Sprechblase, dass das Spiel beendet wurde. Außerdem wird der erreichte Punktestand angesagt. Nutze dafür die Operatoren verbinde (...) und (...)
sowie deine Variable „Punkte“, um die tatsächlich erreichte Punktzahl auszugeben. Ganz zum Schluss beendest du mit dem Block stoppe [alles]
alle Skripte. Dein Spiel ist nun vollständig beendet.

Schritt 5 : Punkte zählen
Ein wichtiger Teil deines Spieles fehlt nun noch: das Zählen der Punkte. Dafür nutzt du diesmal den Ereignisblock Wenn diese Figur angeklickt wird
. Über die Bedingung falls <(Timer) > (0)>, dann
stellst du sicher, dass die Punkte nur solange gezählt werden, wie die Spielzeit noch läuft. Wurde deine Spielfigur erfolgreich gefangen – also angeklickt, versteckst du die Figur (verstecke dich
) und erhöhst die Punkte um den Wert 1 (ändere [Punkte] um (1)
). Außerdem kannst du den erfolgreichen Fang noch durch einen passenden Sound untermalen (spiele Klang (...) ganz
). Wähle hier ein Geräusch, dass zu deiner Figur passt.

Geschafft!
Herzlichen Glückwunsch, du hast dein erstes eigenes Fangspiel programmiert. Falls du noch nach Möglichkeiten suchst, um dein Spiel zu erweitern. Schau dir doch die passenden Herausforderungen am Ende der Kurzanleitung an.