Aus Das deutschsprachige Scratch-Wiki
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 die grüne flagge 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 die grüne flagge 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.
[wiki=de:Platformer in Scratch]Platformer in Scratch[/wiki]