Inhaltsverzeichnis:

LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display - Gunook
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display - Gunook

Video: LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display - Gunook

Video: LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display - Gunook
Video: Arduino Game By LCD 2024, Juli
Anonim
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display
LCD Invaders: ein Space Invaders Like Game auf 16x2 LCD Character Display

Es ist nicht nötig, ein legendäres „Space Invaders“-Spiel vorzustellen. Das interessanteste Merkmal dieses Projekts ist, dass es eine Textanzeige für die grafische Ausgabe verwendet. Dies wird durch die Implementierung von 8 benutzerdefinierten Zeichen erreicht.

Die komplette Arduino-Skizze können Sie hier herunterladen:

github.com/arduinocelentano/LCD_invaders/

Lieferungen

Arduino UNO-Board

LCD-Tastaturschild

USB-Kabel zum Hochladen von Skizzen

Schritt 1: Spieldesign

Spieldesign
Spieldesign

Der Bildschirm erlaubt keine separaten Pixel zu steuern und bietet nur zwei Textzeilen, was für Spiele nicht ausreicht. Es ermöglicht jedoch die Implementierung von bis zu 8 benutzerdefinierten Zeichen. Der Trick besteht darin, jedes 5x8-Pixel-Zeichen als zwei 5x4-Pixel-Spielzellen zu verarbeiten. Das heißt, wir werden ein 16x4-Spielfeld haben, was Sinn macht. 8 Charaktere reichen gerade aus, um Sprites für das Raumschiff des Spielers, Kugeln und animierte Aliens zu implementieren. Da die Sprites 5x4 und die Charaktere 5x8 groß sind, brauchen wir einige Charaktere mit zwei Sprites wie "ein Raumschiff und eine Kugel", "ein Alien und ein Kugelsprite" usw. Alle benutzerdefinierten Charaktere sind auf dem Bild zu sehen.

Schritt 2: Schaltflächen bearbeiten

Verarbeitungsschaltflächen
Verarbeitungsschaltflächen

Normalerweise sind alle Tasten auf einem LCD-Schild mit demselben analogen Pin verbunden. Es gibt verschiedene Versionen von LCD-Schild, daher müssen Sie wahrscheinlich ganzzahlige Literale in meinem Tastenverarbeitungscode leicht ändern.

Schritt 3: Klassenhierarchie

Klassenhierarchie
Klassenhierarchie

Ich habe eine Basisklasse GameObject implementiert, die Koordinaten- und Geschwindigkeitsfelder hat und Kollisionen verarbeitet. Von ihm werden die Klassen Ship, Alien und Bullet geerbt.

Schritt 4: Aktualisieren des Bildschirms

Aktualisieren des Bildschirms
Aktualisieren des Bildschirms

Die Rendering-Logik kann etwas kompliziert aussehen, da wir die 16x4-Spiellogik in eine 16x2-Anzeige umwandeln müssen. Bitte lesen Sie die Kommentare im Code für weitere Informationen. Um ein Flackern zu vermeiden, habe ich ein zweidimensionales char-Array als Textpuffer verwendet. Es ermöglicht die Verwendung mehrerer Druckvorgänge (eine für jede Zeile) zum Aktualisieren des Bildschirms.

Schritt 5: Spiellogik

Spiellogik
Spiellogik

Hier ist das Herzstück des Spiels. Die Hauptschleife ändert die Koordinaten aller Objekte, überprüft alle Arten von Kollisionen und Tastendruckereignisse. Die Geschwindigkeit der Aliens und ihre Schusswahrscheinlichkeit steigt von Level zu Level. Aber auch die Punkteprämie erhöht sich.

Schritt 6: Ein Osterei

Ein Osterei
Ein Osterei

Es gibt kein Level nach Level 42. Ernsthaft. Es ist die ultimative Ebene des Lebens, des Universums und von allem.:)

Empfohlen: