Innehållsförteckning:

LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display: 7 steg
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display: 7 steg

Video: LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display: 7 steg

Video: LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display: 7 steg
Video: LCD 1602 game console 2024, Juli
Anonim
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display
LCD Invaders: a Space Invaders Like Game på 16x2 LCD Character Display

Det finns ingen anledning att introducera ett legendariskt "Space Invaders" -spel. Det mest intressanta med detta projekt är att det använder textvisning för grafisk utmatning. Det uppnås genom att implementera 8 anpassade tecken.

Du kan ladda ner hela Arduino -skissen här:

github.com/arduinocelentano/LCD_invaders/

Tillbehör

Arduino UNO styrelse

LCD -knappsatsskärm

USB -kabel för skissöverföring

Steg 1: Speldesign

Spel design
Spel design

Skärmen tillåter inte att styra separata pixlar och innehåller bara två textrader som inte räcker för spelet. Men det gör det möjligt att implementera upp till 8 anpassade tecken. Tricket är att bearbeta varje 5x8 pixeltecken som två 5x4 pixlar spelceller. Det vill säga, vi kommer att ha 16x4 spelfält, vilket är vettigt. 8 tecken räcker för att implementera sprites för spelarens rymdskepp, kulor och animerade utomjordingar. Eftersom sprites är 5x4 och karaktärerna är 5x8 behöver vi några tecken med två sprites som "ett rymdskepp och en kula" sprite, "en utomjording och en kula sprite" etc. Alla anpassade tecken visas på bilden.

Steg 2: Bearbetningsknappar

Bearbetningsknappar
Bearbetningsknappar

Normalt är alla knappar på en LCD -skärm anslutna till samma analoga stift. Det finns olika versioner av LCD -skärm, så du kommer förmodligen att behöva ändra heltalstecken i min knappbehandlingskod.

Steg 3: Klasser hierarki

Klasser hierarki
Klasser hierarki

Jag har implementerat en basklass GameObject som har koordinater och hastighetsfält och bearbetar kollisioner. Klasserna Ship, Alien och Bullet ärvs från den.

Steg 4: Uppdatera skärmen

Uppdaterar skärmen
Uppdaterar skärmen

Återgivningslogik kan se något komplicerad ut eftersom vi måste omvandla 16x4 -spellogik till 16x2 -skärm. Läs kommentarerna i koden för ytterligare referens. För att undvika att flimra använde jag en tvådimensionell char -array som textbuffert. Det gör det möjligt att använda ett par (en för varje rad) utskriftsfunktioner för att uppdatera skärmen.

Steg 5: Spellogik

Spellogik
Spellogik

Här är spelets hjärta. Huvudslingan ändrar koordinater för alla objekt, kontrollerar alla slags kollisioner och knapptryckningar. Utlänningars hastighet och deras skott sannolikhet ökar från nivå till nivå. Men poängbelöningen ökar också.

Steg 6: Ett påskägg

Ett påskägg
Ett påskägg

Det finns ingen nivå efter nivå 42. Allvarligt. Det är livets ultimata nivå, universum och allt.:)

Rekommenderad: