| Was du am Ende des Tutorials können solltest: – Du kannst mit Hilfe des if- Befehls deine Spielfigur in alle vier Richtungen bewegen |
| Übung: – Bewege deine Figur nach rechts, oben und unten, in dem du den if-Befehl anwendest. – Verändere die Geschwindigkeit deiner Figur, in dem du den Wert der Eigenschaft „Speed“ deines Spieler-Objekts veränderst. |
Einführung
Im letzten Tutorial hast du deine Spielfigur auf das Spielfeld gebracht. Nun willst du sie natürlich noch bewegen können. In Pico 8 erreichen wir das, in dem wir dem Programm befehlen, immer dann eine entsprechende Entscheidung zu treffen, wenn wir eine bestimmte Taste drücken.
Videotutorial
Wie immer könnt ihr euch gerne das Videotutorial anschauen, in dem ich euch Schritt für Schritt erkläre, wie ihr eure Spielfigur bewegen könnt:
Schritt 1: Befehle in der Programmiersprache LUA schreiben
Vereinfacht wollen wir dem Programm folgende Befehle geben:
- A) Wenn der Spieler die linke Pfeiltaste drückt, bewege die Figur nach links.
- B) Wenn der Spieler die rechte Pfeiltaste drückt, bewege die Figur nach rechts.
- C) Wenn der Spieler die Pfeiltaste nach oben drückt, bewege die Figur nach oben.
- D) Wenn der Spieler die Pfeiltaste nach unten drückt, bewege die Figur nach unten.
Würden wir diese Befehle, so wie sie da stehen, in das Programm schreiben, könnte uns Pico 8 aber nicht verstehen. Anders als eine KI wie ChatGPT versteht Pico-8 keine „Menschensprache“. Wir müssen diese Befehle also in eine Computersprache übersetzen, mit der das Programm etwas „anfangen“ kann. Pico 8 versteht nur die Programmiersprache LUA.
Schauen wir uns an, wie wir unsere Befehle auf LUA übersetzen müssen:
| Befehl auf Deutsch | Übersetzung in LUA |
| „Wenn der Spieler die linke Pfeiltaste drückt, bewege die Figur nach links.“ | if btn(0) then spieler.x -= spieler.speed end |
Wie du siehst, besteht eine Programmiersprache aus Zahlen, Buchstaben, Abkürzungen und Wörtern.
Der Befehl in LUA wiederum besteht vereinfacht gesagt aus drei Teilen.

- Die LILA-Wörter bilden den eigentlich BEFEHL. Übersetzt in Menschensprache hieße das: WENN („if“) [BEDINGUNG ERFÜLLT IST], DANN („then“) [FÜHRE BEFEHL AUS ] UND BEENDE DEN BEFEHL („end“)
- Die Wörter in TÜRKIS bilden die BEDINGUNG. BTN(0) lässt sich übersetzen als: Button mit der zugewiesenen Nummer 0 ist gedrückt worden. Aber warte mal – was hat es mit der „zugewiesenen Nummer 0“ auf sich? Soll sich die Figur nicht nur dann bewegen, wenn man die linke Pfeiltaste drückt, und nicht die Taste 0? In Pico 8 funktioniert das etwas anders. Jede Pfeiltaste sowie Aktionstaste hat eine Zahl zugewiesen bekommen, die wir beim Schreiben der Bedingung „übermitteln“ müssen. Du kannst die Zuordnung auf dem folgenden Bild sehen:

- Die Wörter in ROT bilden die ANWEISUNG. Wie genau die Anweisung zu verstehen ist, bzw. was die Anweisung im Einzelnen macht, werden wir im folgenden Schritt klären.
Schritt 2: Die Anweisung verstehen: „Bewege die Spielfigur nach links“
Programme sind leider nicht sehr intelligent. Würden wir Pico-8 befehlen: „Bewege die Figur nach links“, könnte es mit diesem Befehl nicht viel anfangen – die Anweisung wäre zu „ungenau“. Wir müssen dem Programm GANZ GENAU sagen, was es tun soll.
Kannst du dich noch erinnern, wie wir im letzten Tutorial ein Objekt mit dem Namen Spieler angelegt haben? Dieses Objekt IST unsere Spielfigur. Wir haben ihm im vorangegangenen Tutorial eine Eigenschaft „X“ mit dem Wert 64 gegeben. X gibt an, auf WELCHER HÖHE DER X-LINIE sich unsere Spielfigur befindet. Wenn das Spiel startet, befindet sich die Figur auf der HÖHE 64. Wollen wir sie nach links bewegen, können wir dem Programm also sagen, dass es den Wert „X“ KLEINER machen soll. Wenn der Spieler die linke Pfeiltaste drückt, soll sich unsere Figur nicht mehr auf der Höhe 64 befinden, sondern auf Höhe 63, 62, 61 oder noch kleiner… Die Figur „springt“ damit z.B. von Höhe 64 auf Höhe 63 – für den Spieler sieht das dann so aus, als würde sich die Figur nach links bewegen.

Woher weiß Pico 8 aber jetzt, UM WIE VIEL es den X-Wert unseres Spieler BEI JEDEM DRÜCKEN DER LINKEN PFEILTASTE senken soll?
Schritt 3: Neue Eigenschaft „Speed“ hinzufügen
Euch ist vielleicht schon das folgende Wort in der Anweisung aufgefallen: „spieler.speed“. „Spieler“ ist der Name unseres Spieler-Objekts, „speed“ eine weitere Eigenschaft. Wenn ihr jetzt in eurem Code vom letzten Tutorial schaut, müsste dort folgendes zu sehen sein:

Unser Objekt hat bisher nur drei Eigenschaften: „X, Y und SPRITE“. Wir wollen ihm eine weitere Eigenschaft hinzufügen, die wir „SPEED“ also Geschwindigkeit nennen. Diese Eigenschaft beschreibt, wie schnell sich die Figur über das Spielfeld bewegen kann.
Setze hinter der 2 bei „sprite = 2“ EIN KOMMA und füge die folgende Zeile hinzu:
speed = 2
Dein Code sollte nun wie folgt aussehen:

Je höher die Zahl bei „speed“ ist, desto schneller bewegt sich die Figur über das Spielfeld. Die Zahl sagt unserem Programm also, um wie viel es den WERT VON X BEI JEDEM DRÜCKEN DER LINKEN PFEILTESTE senken soll. Probiere es gerne am Ende des Tutorials einmal aus und lasse deine Figur schneller oder langsamer werden.
Schritt 4: Die _update() Funktion verstehen.
Im letzten Tutorial habe ich dir erklärt, dass Pico 8 aus drei grundlegenden Funktionen besteht: _init(), _draw() und _update(). In die _init() Funktion erstellen wir unser Spieler-Objekt, dass NUR EINMAL zu BEGINN des Spiels erzeugt werden soll. In die _draw() Funktion schreiben wir alles, was das Programm ZEICHNEN soll (also zum Beispiel unsere Spielfigur).
Was macht nun die _update() Funktion?
Stell dir vor, _update() ist wie das Herz unseres Spiels. Es schlägt 30 mal pro Sekunde und überprüft mit jedem Herzschlag, ob sich etwas geändert hat. Hier programmieren wir, was passieren soll, wenn der Spieler eine Taste drückt oder wenn sich etwas im Spiel bewegen soll.
Füge in deinem Programm einen neuen Tab hinzu (drücke auf das Kreuz oben rechts neben dem Tab 1) und kopiere den folgenden Code:
function _update()
end
Dein Code sollte nun so aussehen:

Schritt 5: Die Spielfigur nach links bewegen
Wir können nun unsere LUA-Anweisung (Wenn die linke Pfeiltaste gedrückt wird, bewege die Figur nach links) in unsere _update() Funktion einfügen. Kopiere hierfür den folgenden Code mit command und c und füge ihn in Pico 8 ein, in dem du command und v drückst.
if btn(0) then
spieler.x -= spieler.speed
end
Dein Code sollte nun so aussehen:

Drücke jetzt command und S und anschließend command und R, um dein Spiel auszuprobieren. Deine Figur bewegt sich nach links, wenn du die linke Pfeiltaste drückst.
Übung
Deine Figur kann sich bisher nur nach links bewegen. Um sie nach rechts, oben und unten bewegen zu können, musst du weitere Zeilen des if-Befehls hinzufügen. Auf dem folgenden Bild siehst du, wie ich einen weiteren Befehl hinzugefügt habe, damit meine Figur auch nach rechts laufen kann:

Füge weitere Befehle hinzu, um die Figur auch nach oben und unten laufen zu lassen. Auf dem folgenden Bild siehst du, welche Teile des Codes du hierfür verändern musst:

HILFE?
Wenn du Hilfe brauchst oder nicht weiterkommst, sprich mich gerne in der Schule an. Wir schauen uns das Problem dann gemeinsam an. Versuche es aber immer erst ALLEINE zu lösen.