Willkommen zu dieser umfassenden Anleitung, in der wir gemeinsam ein spannendes Spiel in Scratch entwickeln werden! Dieses Spiel beinhaltet einen besonderen Twist: Spieler erhalten nur 2 Mal pro Level einen Punkteabzug, wenn sie ein bestimmtes Objekt berühren. Das macht das Spiel herausfordernder und strategischer. Also, lasst uns eintauchen und Schritt für Schritt das Spiel aufbauen!
Was ist Scratch?
Bevor wir beginnen, noch kurz für alle, die Scratch noch nicht kennen: Es ist eine visuelle Programmiersprache, die von MIT entwickelt wurde. Sie ermöglicht es, spielerisch Programme zu erstellen, indem man Codeblöcke wie Puzzleteile zusammenfügt. Ideal für Anfänger und alle, die das Programmieren lernen möchten!
Spielidee und Vorbereitung
Unser Spiel wird folgendermaßen ablaufen: Ein Spielercharakter bewegt sich durch ein Level und muss Hindernissen ausweichen. Jedes Mal, wenn der Spieler ein Hindernis berührt, wird ein Punkt abgezogen. Aber Achtung: Dieser Abzug passiert nur die ersten zwei Male pro Level. Danach bleibt der Punktestand konstant, auch wenn der Spieler weitere Hindernisse berührt. Ziel ist es, das Level mit möglichst wenigen Berührungen zu schaffen.
Benötigte Sprites:
- Ein Spieler-Sprite (z.B. eine Katze, ein Alien oder ein selbstgezeichneter Charakter)
- Ein Hindernis-Sprite (z.B. ein Ball, ein Stein oder ein anderes sich bewegendes Objekt)
- Ein Punktzahl-Sprite (optional, zur visuellen Darstellung der Punkte)
- Ein Level-Sprite (optional, zur Darstellung des Levels)
Vorbereitung in Scratch:
- Öffne Scratch (online unter scratch.mit.edu oder offline mit der Scratch-App).
- Lösche den Standard-Katzen-Sprite, falls du ihn nicht als Spieler verwenden möchtest.
- Füge die benötigten Sprites hinzu (entweder aus der Scratch-Bibliothek oder indem du eigene hochlädst/zeichnest).
- Benenne die Sprites sinnvoll (z.B. „Spieler”, „Hindernis”, „Punktzahl”).
Programmierung des Spieler-Sprites
Zuerst programmieren wir die Bewegung des Spieler-Sprites.
Code für die Bewegung (Beispiel mit Pfeiltasten):
wenn [Pfeil nach oben v] Taste gedrückt? dann
ändere y um (10)
end
wenn [Pfeil nach unten v] Taste gedrückt? dann
ändere y um (-10)
end
wenn [Pfeil nach rechts v] Taste gedrückt? dann
ändere x um (10)
end
wenn [Pfeil nach links v] Taste gedrückt? dann
ändere x um (-10)
end
Füge diesen Code in den „immer”-Block ein, damit die Bewegung kontinuierlich erfolgt:
wenn [grüne Flagge v] geklickt
wiederhole fortlaufend
wenn [Pfeil nach oben v] Taste gedrückt? dann
ändere y um (10)
end
wenn [Pfeil nach unten v] Taste gedrückt? dann
ändere y um (-10)
end
wenn [Pfeil nach rechts v] Taste gedrückt? dann
ändere x um (10)
end
wenn [Pfeil nach links v] Taste gedrückt? dann
ändere x um (-10)
end
end
Programmierung des Hindernis-Sprites
Das Hindernis soll sich bewegen, um das Spiel herausfordernder zu gestalten. Hier sind ein paar Beispiele:
Beispiel 1: Horizontale Bewegung:
wenn [grüne Flagge v] geklickt
gehe zu x: (-200) y: (0) // Starposition festlegen
wiederhole fortlaufend
ändere x um (5)
wenn x Position > (200) dann
setze x auf (-200) // Wieder von vorne beginnen
end
end
Beispiel 2: Zufällige Bewegung:
wenn [grüne Flagge v] geklickt
wiederhole fortlaufend
gehe zu x: (Zufallszahl von -200 bis 200) y: (Zufallszahl von -150 bis 150)
warte (1) Sekunde(n)
end
Passe die Werte (Geschwindigkeit, Positionen) nach deinen Wünschen an.
Programmierung des Punkteabzugs
Jetzt kommt der wichtigste Teil: Der Punkteabzug, der nur zweimal pro Level erfolgen soll.
- Erstelle eine Variable namens „Punkte”. Setze den Anfangswert auf z.B. 10.
- Erstelle eine Variable namens „AnzahlBerührungen”. Setze den Anfangswert auf 0.
- Erstelle einen „Falls … dann” Block im Spieler-Sprite, der prüft, ob der Spieler das Hindernis berührt.
wenn [grüne Flagge v] geklickt
setze [Punkte v] auf (10)
setze [AnzahlBerührungen v] auf (0)
wiederhole fortlaufend
wenn wird [Hindernis v] berührt? dann
wenn < (AnzahlBerührungen) dann
ändere [Punkte v] um (-1)
ändere [AnzahlBerührungen v] um (1)
end
end
end
Erklärung:
- Wir initialisieren die Variablen „Punkte” und „AnzahlBerührungen”.
- Die „wiederhole fortlaufend”-Schleife sorgt dafür, dass der Code ständig ausgeführt wird.
- Der „wenn wird [Hindernis v] berührt?”-Block prüft, ob eine Berührung stattgefunden hat.
- Der innere „wenn (AnzahlBerührungen) < (2)"-Block prüft, ob die Anzahl der Berührungen kleiner als 2 ist. Wenn ja, wird ein Punkt abgezogen und die "AnzahlBerührungen" um 1 erhöht.
Level-Reset
Wenn du ein neues Level startest, musst du die Variable „AnzahlBerührungen” zurücksetzen. Das kann z.B. geschehen, wenn der Spieler ein bestimmtes Ziel erreicht oder eine andere Bedingung erfüllt ist.
Beispiel:
wenn [Ziel erreicht v] dann
setze [AnzahlBerührungen v] auf (0)
// Weitere Aktionen für das nächste Level (z.B. Positionen zurücksetzen, Geschwindigkeit erhöhen)
end
Anzeige der Punktzahl
Um die Punktzahl sichtbar zu machen, kannst du entweder die Variable direkt auf der Bühne anzeigen lassen oder einen eigenen Punktzahl-Sprite erstellen.
Variante 1: Variable anzeigen:
- Klicke im „Variablen”-Bereich auf das Häkchen neben „Punkte”. Die Variable wird nun auf der Bühne angezeigt.
Variante 2: Punktzahl-Sprite:
- Erstelle einen neuen Sprite (z.B. ein Textfeld).
- Füge folgenden Code hinzu:
wenn [grüne Flagge v] geklickt
wiederhole fortlaufend
setze Aussehen auf (verbinde [Punktzahl: ] mit (Punkte))
end
Zusätzliche Features
Hier sind einige Ideen, um dein Spiel noch weiter zu verbessern:
- Verschiedene Level: Gestalte unterschiedliche Level mit verschiedenen Hindernissen und Schwierigkeitsgraden.
- Power-Ups: Füge Power-Ups hinzu, die dem Spieler vorübergehend Vorteile verschaffen (z.B. Unverwundbarkeit).
- Soundeffekte: Integriere Soundeffekte für Kollisionen, Punktabzüge und andere Ereignisse.
- Highscore-Liste: Speichere die besten Ergebnisse, damit Spieler sich gegenseitig herausfordern können.
- Animationen: Gestalte die Bewegung der Sprites flüssiger und füge Animationen für besondere Aktionen hinzu.
Fazit
Herzlichen Glückwunsch! Du hast nun ein Scratch-Spiel mit einem Punkteabzug-System programmiert. Dieses Beispiel zeigt, wie man mit Variablen und bedingten Anweisungen komplexe Spiellogik erstellen kann. Experimentiere mit den verschiedenen Parametern und Funktionen, um dein Spiel noch einzigartiger zu machen. Viel Spaß beim Programmieren und Spielen!