Sommario:

LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2: 7 passaggi
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2: 7 passaggi

Video: LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2: 7 passaggi

Video: LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2: 7 passaggi
Video: Space Invaders su Arduino (semplificato) - parte 1 - Video 463 2024, Dicembre
Anonim
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2
LCD Invaders: un gioco simile a Space Invaders su display LCD a caratteri 16x2

Non è necessario introdurre un leggendario gioco "Space Invaders". La caratteristica più interessante di questo progetto è che utilizza la visualizzazione del testo per l'output grafico. Si ottiene implementando 8 caratteri personalizzati.

Puoi scaricare lo sketch completo di Arduino qui:

github.com/arduinocelentano/LCD_invaders/

Forniture

Scheda Arduino UNO

Schermo tastiera LCD

Cavo USB per il caricamento di schizzi

Passaggio 1: progettazione del gioco

Progettazione del gioco
Progettazione del gioco

Lo schermo non consente di controllare pixel separati e fornisce solo due righe di testo che non sono sufficienti per il gioco. Ma permette di implementare fino a 8 caratteri personalizzati. Il trucco è elaborare ogni carattere di 5x8 pixel come due celle di gioco di 5x4 pixel. Vale a dire, avremo un campo di gioco 16x4, il che ha senso. 8 personaggi sono sufficienti per implementare sprite per l'astronave del giocatore, proiettili e alieni animati. Poiché gli sprite sono 5x4 e i personaggi sono 5x8, avremo bisogno di alcuni personaggi con due sprite come "un'astronave e un proiettile", "un alieno e uno sprite" ecc. Tutti i personaggi personalizzati sono mostrati nell'immagine.

Passaggio 2: pulsanti di elaborazione

Pulsanti di elaborazione
Pulsanti di elaborazione

In genere, tutti i pulsanti su uno schermo LCD sono collegati allo stesso pin analogico. Esistono diverse versioni di schermo LCD, quindi probabilmente dovrai modificare leggermente i letterali interi nel mio codice di elaborazione dei pulsanti.

Passaggio 3: Gerarchia delle classi

Gerarchia delle classi
Gerarchia delle classi

Ho implementato una classe base GameObject che ha coordinate e campi di velocità ed elabora le collisioni. Le classi Nave, Alieno e Proiettile sono ereditate da esso.

Passaggio 4: aggiornamento dello schermo

Aggiornamento dello schermo
Aggiornamento dello schermo

La logica di rendering può sembrare un po' complicata perché dobbiamo trasformare la logica di gioco 16x4 in un display 16x2. Si prega di leggere i commenti nel codice per ulteriori riferimenti. Per evitare lo sfarfallio, ho usato un array di caratteri bidimensionale come buffer di testo. Consente di utilizzare una coppia (una per riga) di operazioni di stampa per aggiornare lo schermo.

Passaggio 5: logica di gioco

Logica del gioco
Logica del gioco

Ecco il cuore del gioco. Il ciclo principale cambia le coordinate di tutti gli oggetti, controlla tutti i tipi di collisioni e gli eventi di pressione dei pulsanti. La velocità degli alieni e la loro probabilità di tiro aumenta di livello in livello. Ma anche la ricompensa in punteggio aumenta.

Passaggio 6: un uovo di Pasqua

Un uovo di Pasqua
Un uovo di Pasqua

Non c'è livello dopo il livello 42. Seriamente. È il livello definitivo della vita, dell'universo e di tutto.:)

Consigliato: