Wir nutzen Cookies, um das allgemeine Benutzerelebnis zu verbessern. Mit der Nutzung unseres Wikis stimmst du der Nutzung von Cookies zu.

Platformer in Scratch

Ein Platformer ist ein Spiel, bei dem eine Spielfigur durch mehrere Level zum Ziel gelangen muss. Dabei kommen in diesen einige Herausforderungen vor, die es zu meistern gilt. In diesem Artikel erfährst du die Basis für einen Platformer in Scratch.

Methode

Es gibt nicht nur eine einzige Möglichkeit, einen Platformer in Scratch zu programmieren. In diesem Tutorial wird eine ziemlich einfache Methode gewählt, nämlich erhalten alle Elemente ihre eigene Farbe, die die Spielfigur erkennt und entsprechend auswertet.

Grafiken

Die verschiedenen Level werden jeweils als Bühnenbilder im Scratch-Zeichnungseditor erstellt. Hierfür wird ein bestimmtes Farbsystem ausgewählt, z. B.:

  • grün: betretbare Fläche, kann aber nicht durchlaufen werden
  • rot: unbetretbare Fläche, bei Berührung Teleportation zum Levelstart

Auch braucht die Spielfigur eine Grafik, doch dafür genügt theoretisch ein gefüllter Kreis.

Skripte

Nun kommen wir zu den Skripten des Projekts. Zu Beginn des Spiels sollte zu dem Bühnenbild des ersten Levels gewechselt werden. Außerdem soll eine Position der Spielfigur zu Levelbeginn gewählt werden. Ein entsprechendes Skript könnte beispielsweise so aussehen:

Wenn @greenFlag angeklickt
wechsle zu Bühnenbild [Level 1 v]
gehe zu x: (-175) y: (-100)

Selbstverständlich muss die Spielfigur auch irgendwie bewegt werden können. Dazu muss das Projekt erkennen, dass die Pfeiltasten gedrückt werden, und die Spielfigur auch in die entsprechende Richtung laufen lassen.

wiederhole fortlaufend
falls <Taste [Pfeil nach links v] gedrückt?> dann
ändere x um (-10)
ende
falls <Taste [Pfeil nach rechts v] gedrückt?> dann
ändere x um (10)
ende

Was wir aber auch nicht vergessen dürfen, ist, dass die Figur auch springen können soll. Dazu brauchen wir aber etwas andere Skripte. Diese sollen definieren, dass die Figur eine bestimmte Strecke "hochgleiten" und danach wieder fallen soll. Dies kann man beispielsweise folgend lösen:

wiederhole fortlaufend
falls <Taste [Pfeil nach oben v] gedrückt?> dann
wiederhole (5) mal
ändere y um (10)
ende
wiederhole (5) mal
ändere y um (-10)
ende
ende

Super, deine Spielfigur kann nun laufen und springen! Aber um ins nächste Level zu gelangen, muss in den Skripten auch definiert werden, wann zu diesem gewechselt werden soll. Dies kann z. B. sein, wenn eine bestimmte x-Position überschritten wird.

wiederhole fortlaufend
falls <(x-Position)>[200]> dann
wechsle zu Bühnenbild [nächstes Bühnenbild v]
gehe zu x: (-175) y: (-100)
ende
ende

Aber die Figur kann noch nicht auf bestimmte Farben reagieren. Doch auch dies ist nicht unmöglich. Programmieren wir zuerst die Reaktion bei Berührung mit der Farbe Rot.

wiederhole fortlaufend
falls <wird Farbe [#FF0000] berührt?> dann
gehe zu x: (-175) y: (-100)
ende
ende

Es gibt aber noch mehr Farben, auf die die Figur reagieren muss. Auch brauchen wir im Spiel eine Schwerkraft. Zwar landet die Figur wieder, wenn sie springt, aber es könnte natürlich auch sein, dass so etwas wie Hügel oder Schluchten in den Leveln vorkommen – und bei solchen Situationen muss die Figur immer auf der Oberfläche landen. Außerdem darf sie im Boden auch nicht einsinken.

wiederhole fortlaufend
falls <nicht <wird Farbe [#008000] berührt?>> dann
wiederhole bis <wird Farbe [#008000] berührt?>
ändere y um (10)
ende
ende

Okay, nun füge die Blöcke zusammen:

Wenn @greenFlag angeklickt
wechsle zu Bühnenbild [Level 1 v]
gehe zu x: (-175) y: (-100)
wiederhole fortlaufend
falls <Taste [Pfeil nach oben v] gedrückt?> dann
wiederhole (5) mal
ändere y um (10)
ende
wiederhole (5) mal
ändere y um (-10)
ende
ende
falls <Taste [Pfeil nach links v] gedrückt?> dann
ändere x um (-10)
ende
falls <Taste [Pfeil nach rechts v] gedrückt?> dann
ändere x um (10)
ende
falls <nicht <wird Farbe [#008000] berührt?>> dann
wiederhole bis <wird Farbe [#008000] berührt?>
ändere y um (10)
ende
ende
falls <wird Farbe [#FF0000] berührt?> dann
gehe zu x: (-175) y: (-100)
ende
falls <(x-Position)>[200]> dann
wechsle zu Bühnenbild [nächstes Bühnenbild v]
gehe zu x: (-175) y: (-100)

Super, dein Platformer ist nun programmiert! Dies ist aber nur die Basis; du könntest in dein Spiel natürlich auch noch mehr Elemente hinzufügen.



Code zum Einbinden ins Forum:
[wiki=de:Platformer in Scratch]Platformer in Scratch[/wiki]