Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10
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
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
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
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
Å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
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
Det finns ingen nivå efter nivå 42. Allvarligt. Det är livets ultimata nivå, universum och allt.:)
Rekommenderad:
Lego bärbar spelkonsol med Space Invaders: 4 steg
Lego bärbar spelkonsol med Space Invaders: Har du någonsin tänkt på att vara en spelutvecklare och bygga din egen spelkonsol som du kan spela på språng? Allt du behöver är lite tid, hårdvara Lego bricksa Mini-Calliope (kan beställas på denna webbplats https://calliope.cc/sv) och lite skicklighet
Space Invaders i Micropython på Micro: bit: 5 steg
Space Invaders i Micropython på Micro: bit: I våra tidigare artiklar har vi undersökt speltillverkning på GameGo, en bärbar retro spelkonsol utvecklad av TinkerGen education. Spelen som vi gjorde påminde om gamla Nintendo -spel. I dagens artikel kommer vi att ta ett steg tillbaka, för att
Hur man gör Space Invaders på mikrobit: 4 steg
Hur man gör Space Invaders på mikrobit: Så det första steget är att skapa vårt skepp. Du går till " Grundläggande " och lägg till en " Vid start " blockera. Sedan går du till " Variabler " och du skapar en variabel som heter " SHIP " och välj ett block från " Variabler " flik t
Space Invaders Clock (på en budget!): 6 steg (med bilder)
Space Invaders Clock (på en budget!): Nyligen såg jag en cool byggnad av GeckoDiode och jag ville genast bygga den själv. The Instructable is Space Invaders Desktop Clock och jag rekommenderar att du tar en titt på den efter att ha läst detta. Projektet var nästan enbart byggt av delar från
Space Invaders ljuskrona med glöd i mörkret Action: 16 steg (med bilder)
Space Invaders ljuskrona med glöd i mörkret Action: Använd 3D -modellering/utskrift, laserskuren akryl, hartsgjutning, UV -reaktivt pigment, lysdioder och några enkla kablar för att skapa en högkvalitativ och retro cool rymdinvaderande ljuskrona eller lampa. Jag har inkluderat ett trevligt knep för att göra krökta hörn av laserku