Herzlich Willkommen zu deiner ersten Herausforderung. Anders als in den bisherigen Tutorials werde ich dich dieses Mal nicht „an die Hand“ nehmen und Schritt für Schritt den Code schreiben.
Stattdessen beschreibe ich dir in „Menschensprache“, was dein Code können sollte. Zusätzlich gebe ich natürlich Tipps und Hinweise, wie diese Herausforderung gemeistert werden kann.
Bevor du loslegst, solltest du noch einmal für dich überprüfen, ob du die folgenden Punkte auch wirklich verstanden hast:
Du verstehst…
- … dass wir Pico 8 Anweisungen in der Programmiersprache LUA geben müssen, damit es das macht, was wir von ihm wollen.
- … den Aufbau von Pico 8 und weißt, welche Anweisungen in die _init(), die _draw() und die _update() Funktion geschrieben werden.
- … was eine Funktion ist und warum wir sie beim Programmieren nutzen
- … dass Funktionen an einer Stelle im Code definiert bzw. erstellt und an einer anderen Stelle aufgerufen werden
- … dass man Funktionen Werte übermitteln kann
- … dass es in Funktionen oft STELLVERTRETER gibt, die immer den Wert annehmen, der der Funktion beim Aufrufen mitgegeben bzw. übermittelt wurden.
- … was unser Spieler-Objekt ist
- .. dass im Spieler-Objekt Eigenschaften von uns festgelegt werden können und dass jede Eigenschaft einen Wert zugewiesen bekommt.
- … dass unser Spielfeld aus waagerechten (X-Linien) und senkrechten (Y-Linien) besteht
- … dass wir der spr() Funktion mehrere Werte mitgeben können.
Wenn du hinter jedem dieser Punkte nicken und „einen Haken dransetzen“ kannst, bist du sehr gut auf die nun kommende Herausforderung vorbereitet. Wenn nicht, ist die Herausforderung die Möglichkeit, deine Wissenslücken zu schließen. Schaue dir die einzelnen Tutorials noch einmal in Ruhe an, wenn du nicht weiterkommst, lies dir die Beschreibung aufmerksam durch oder sprich mich gerne in der Schule an – wir können uns z.B. in der Vertiefungszeit mal anschauen, wo es noch „hakt“.
Vorbereitung: Einen If-Befehl erweitern
Damit die Lauf-Animation später flüssig läuft, müssen wir eine Anweisung in unserer Funktion _animation() ein bisschen verändern.
Gehe auf TAB 2. Dein Code sollte so aussehen:

Schaue dir noch einmal den folgenden Befehl an:

Welche Anweisung geben wir hier unserem Programm? Wir sagen ihm: Wenn der Wert in der Eigenschaft „Sprite“ unseres Spielerobjekts GLEICH oder NIEDRIGER (also <=) ist, DANN setze den Wert der Eigenschaft „Sprite“ unseres Spielerobjekts wieder auf 1.75.
Mit dieser Anweisung überprüfen wir nur eine Bedingung. Für unsere weiteren Animationen müssen wir aber an dieser Stelle auch überprüfen, ob der Wert in spieler.sprite GRÖßER oder GLEICH 2 ist. Tun wir das nicht, zeichnet unser Programm später kein Bild von unserer Figur, wenn wir nach unten und dann direkt nach links oder rechts laufen.
Glücklicherweise können wir in Pico unseren if-Befehl ganz elegant erweitern, sodass wir keinen neuen If-Befehl schreiben müssen.
Lösche hinter der 0 das Wort THEN, drücke anschließend ENTER und kopiere die folgende Zeile:
or spieler.sprite >= 2 then
Dein Code sollte nun so aussehen:

Übersetzen wir den Befehl noch einmal in Menschensprache, damit klar wird, was wir hier gemacht haben:
| Anweisung in LUA | Anweisung in Menschensprache |
| if spieler.sprite <= 0 or spieler.sprite >= 2 then spieler.sprite = 1.75 end | Wenn der Wert in der Eigenschaft „Sprite“ unseres Spieler-Objekts KLEINER oder GLEICH 0 ist ODER Wenn der Wert in der Eigenschaft „Sprite“ unseres Spieler-Objekts GRÖßER oder GLEICH 2 ist DANN Setze den Wert in der Eigenschaft „Sprite“ unseres Spieler-Objekts wieder auf 1.75 |
Wir können also mit Hilfe des Wortes or nicht nur EINE, sondern gleich ZWEI Bedingungen in unserem if-Befehl überprüfen. Dieses Wissen brauchen wir für unsere Herausforderung.
Herausforderung
Kommen wir nun zur eigentlichen Herausforderung. Arbeite die folgenden Schritte ab, um deine Figur nach oben und unten laufen zu lassen und sie dabei zu animieren.
Figur animieren, wenn sie nach oben läuft
- Zeichne im Sprite-Editor in Fenster Nummer 003 und 004 zwei Bilder deiner Figur, wie sie nach oben läuft (Kleiner Tipp: Sie sollte dabei von der Rückseite zu sehen sein)
- Gehe zurück in den Code. Lege TAB 4 an und erstelle dort eine Funktion mit Namen _animation2(). Wenn du nicht mehr weißt, wie eine Funktion erstellt wird, schaue dir Schritt 2 unseres 5. Tutorials noch einmal an https://sora.fshcloud.de/?p=301
- Schreibe in diese Funktion nun die folgenden Anweisungen:
| Anweisungen für die Funktion _animation2() |
| – Setze den Wert in der Eigenschaft „Schalter“ unseres Spieler-Objekts auf false – WENN der Wert der Eigenschaft „Sprite“ unseres Spieler-Objekts KLEINER ist als 3 ODER wenn der Wert der Eigenschaft „Sprite“ unseres Spieler-Objekts GRÖßER ist als 4 DANN setze den Wert der Eigenschaft „Sprite“ unseres Spieler-Objekts auf 3 – Beende den If-Befehl – Rechne anschließend den Wert der Eigenschaft „Sprite“ unseres Spielerobjekts um 0.25 dazu (Verwende hierfür die folgenden beiden Zeichen += ) |
4. Gehe in TAB 2 und rufe die _animation2() in unserem if btn (2) then auf. Deine Figur wird nun animiert, wenn sie nach oben läuft
Figur animieren, wenn sie nach unten läuft
- Zeichne im Sprite-Editor in Fenster 016 und 017 zwei Bilder deiner Figur, wie sie nach unten läuft.
- Lege in TAB 4 UNTER der Funktion _animation2() eine neue Funktion an, die du _animation3() nennst.
- Schreibe in diese Funktion nun die folgenden Anweisungen:
| Anweisungen für die Funktion _animation3() |
| – Setze den Wert in der Eigenschaft „Schalter“ unseres Spieler-Objekts auf false – WENN der Wert der Eigenschaft „Sprite“ unseres Spieler-Objekts KLEINER ist als 16 ODER wenn der Wert der Eigenschaft „Sprite“ unseres Spieler-Objekts GRÖßER ist als 17 DANN setze den Wert der Eigenschaft „Sprite“ unseres Spieler-Objekts auf 16 – Beende den If-Befehl – Rechne anschließend den Wert der Eigenschaft „Sprite“ unseres Spielerobjekts um 0.25 dazu (Verwende hierfür die folgenden beiden Zeichen += ) |
4. Gehe in TAB 2 und rufe die _animation3() in unserem if btn (3) then auf. Deine Figur wird nun animiert, wenn sie nach unten läuft .
Herzlichen Glückwunsch. Du hast den ersten Teil unserer Tutorial-Reihe geschafft und kannst deine Spielfigur über das Spielfeld laufen lassen.
In den weiteren Tutorials wirst du lernen, wie du eine sogenannte MAP erstellen kannst und wie deine Spielfigur mit dieser MAP interagiert.
