Taula de continguts:

LCD Invaders: un joc de Space Invaders en pantalla de caràcters LCD de 16x2: 7 passos
LCD Invaders: un joc de Space Invaders en pantalla de caràcters LCD de 16x2: 7 passos

Vídeo: LCD Invaders: un joc de Space Invaders en pantalla de caràcters LCD de 16x2: 7 passos

Vídeo: LCD Invaders: un joc de Space Invaders en pantalla de caràcters LCD de 16x2: 7 passos
Vídeo: Experience PACMAN-RTX like never before: Mind-blowing graphics and gameplay! ☺🎮📱 2024, Desembre
Anonim
LCD Invaders: un joc de Space Invaders com a pantalla de caràcters LCD de 16x2
LCD Invaders: un joc de Space Invaders com a pantalla de caràcters LCD de 16x2
LCD Invaders: un joc de Space Invaders com a pantalla de caràcters LCD de 16x2
LCD Invaders: un joc de Space Invaders com a pantalla de caràcters LCD de 16x2
LCD Invaders: un joc de Space Invaders com a pantalla de caràcters LCD de 16x2
LCD Invaders: un joc de Space Invaders com a pantalla de caràcters LCD de 16x2
LCD Invaders: un joc de Space Invaders com a pantalla de caràcters LCD de 16x2
LCD Invaders: un joc de Space Invaders com a pantalla de caràcters LCD de 16x2

No cal introduir un llegendari joc “Space Invaders”. La característica més interessant d’aquest projecte és que utilitza la visualització de text per a la sortida gràfica. S’aconsegueix implementant 8 caràcters personalitzats.

Podeu descarregar l'esbós complet d'Arduino aquí:

github.com/arduinocelentano/LCD_invaders/

Subministraments

Tauler Arduino UNO

Escut del teclat LCD

Cable USB per carregar esbossos

Pas 1: disseny de jocs

Disseny de jocs
Disseny de jocs

La pantalla no permet controlar píxels separats i proporciona només dues línies de text que no són suficients per al joc. Però permet implementar fins a 8 caràcters personalitzats. El truc és processar cada caràcter de 5x8 píxels com a dues cel·les de joc de 5x4 píxels. És a dir, tindrem un camp de joc de 16x4, cosa que té sentit. 8 personatges són suficients per implementar sprites per a la nau espacial del jugador, bales i alienígenes animats. Com que els sprites són 5x4 i els caràcters 5x8, necessitarem alguns personatges amb dos sprites com el sprite "una nau espacial i una bala", "un alien i un sprite de bala", etc. Tots els personatges personalitzats es mostren a la imatge.

Pas 2: processament de botons

Botons de processament
Botons de processament

Normalment, tots els botons d’un escut LCD estan connectats al mateix pin analògic. Hi ha diferents versions de pantalla LCD, de manera que probablement haureu de canviar lleugerament els literals enters al codi de processament del meu botó.

Pas 3: jerarquia de classes

Jerarquia de classes
Jerarquia de classes

He implementat una classe base GameObject que té coordenades i camps de velocitat i processa col·lisions. Les classes Ship, Alien i Bullet s’hi hereten.

Pas 4: actualització de la pantalla

S'està actualitzant la pantalla
S'està actualitzant la pantalla

La lògica de renderització pot semblar una mica complicada perquè hem de transformar la lògica del joc 16x4 en pantalla 16x2. Llegiu els comentaris del codi per obtenir més informació. Per evitar el parpelleig, he utilitzat una matriu de caràcters de dues dimensions com a memòria intermèdia de text. Permet utilitzar un parell (una per a cada línia) d’operacions d’impressió per actualitzar la pantalla.

Pas 5: Lògica del joc

Lògica del joc
Lògica del joc

Aquí està el cor del joc. El bucle principal canvia les coordenades de tots els objectes, comprova tot tipus de col·lisions i premeu els botons. La velocitat dels extraterrestres i la seva probabilitat de disparar augmenta d’un nivell a un altre. Però la recompensa de la puntuació també augmenta.

Pas 6: un ou de Pasqua

Un ou de Pasqua
Un ou de Pasqua

No hi ha cap nivell després del nivell 42. De debò. És l’últim nivell de vida, l’univers i tot.:)

Recomanat: