Innholdsfortegnelse:

LCD Invaders: a Space Invaders Like Game on 16x2 LCD Character Display: 7 Steps
LCD Invaders: a Space Invaders Like Game on 16x2 LCD Character Display: 7 Steps

Video: LCD Invaders: a Space Invaders Like Game on 16x2 LCD Character Display: 7 Steps

Video: LCD Invaders: a Space Invaders Like Game on 16x2 LCD Character Display: 7 Steps
Video: 16x2 LCD Space Invader Game || LCD Space Game || Arduino LCD Games || 16x2 LCD Games | Arduino games 2024, November
Anonim
LCD Invaders: a Space Invaders Like Game på 16x2 LCD -tegnvisning
LCD Invaders: a Space Invaders Like Game på 16x2 LCD -tegnvisning
LCD Invaders: a Space Invaders Like Game på 16x2 LCD -tegnvisning
LCD Invaders: a Space Invaders Like Game på 16x2 LCD -tegnvisning
LCD Invaders: a Space Invaders Like Game på 16x2 LCD -tegnvisning
LCD Invaders: a Space Invaders Like Game på 16x2 LCD -tegnvisning
LCD Invaders: a Space Invaders Like Game på 16x2 LCD -tegnvisning
LCD Invaders: a Space Invaders Like Game på 16x2 LCD -tegnvisning

Det er ikke nødvendig å introdusere et legendarisk "Space Invaders" -spill. Den mest interessante egenskapen til dette prosjektet er at den bruker tekstvisning for grafisk utgang. Det oppnås ved å implementere 8 egendefinerte tegn.

Du kan laste ned hele Arduino -skissen her:

github.com/arduinocelentano/LCD_invaders/

Rekvisita

Arduino UNO -styre

LCD -tastaturskjerm

USB -kabel for skisseopplasting

Trinn 1: Spilldesign

Spilldesign
Spilldesign

Skjermen tillater ikke å kontrollere separate piksler og inneholder bare to tekstlinjer som ikke er nok for spill. Men det lar deg implementere opptil 8 egendefinerte tegn. Trikset er å behandle hvert 5x8 piksler tegn som to 5x4 piksler spillceller. Det vil si at vi vil ha 16x4 spillfelt, noe som er fornuftig. 8 tegn er akkurat nok til å implementere sprites for spillerens romskip, kuler og animerte romvesener. Siden sprites er 5x4 og tegnene er 5x8, trenger vi noen tegn med to sprites som "et romskip og en kule" sprite, "en alien og en bullet sprite" etc. Alle de egendefinerte tegnene vises på bildet.

Trinn 2: Behandle knapper

Behandlingsknapper
Behandlingsknapper

Vanligvis er alle knappene på et LCD -skjerm koblet til den samme analoge pinnen. Det er forskjellige versjoner av LCD -skjold, så du må sannsynligvis endre heltall i min knapp for behandling av knapper.

Trinn 3: Klasser hierarki

Klasser hierarki
Klasser hierarki

Jeg har implementert en basisklasse GameObject som har koordinater og hastighetsfelt og behandler kollisjoner. Klasser Ship, Alien og Bullet arves fra den.

Trinn 4: Oppdatering av skjermen

Oppdaterer skjermen
Oppdaterer skjermen

Gjengivelseslogikk kan se litt komplisert ut fordi vi må forvandle 16x4 spilllogikk til 16x2 -skjerm. Vennligst les kommentarene i koden for ytterligere referanse. For å unngå flimring brukte jeg en todimensjonal char -matrise som tekstbuffer. Den lar deg bruke et par (en for hver linje) utskriftsoperasjoner for å oppdatere skjermen.

Trinn 5: Spilllogikk

Spilllogikk
Spilllogikk

Her er hjertet i spillet. Hovedløkken endrer koordinater for alle objektene, kontrollerer alle slags kollisjoner og knappetrykkhendelser. Utlendingers hastighet og skyte sannsynlighet øker fra nivå til nivå. Men poengsummen belønningen øker også.

Trinn 6: Et påskeegg

Et påskeegg
Et påskeegg

Det er ikke noe nivå etter nivå 42. Seriøst. Det er det ultimate livsnivået, universet og alt.:)

Anbefalt: