Table des matières:

LCD Invaders : un jeu de type Space Invaders sur écran LCD 16x2 : 7 étapes
LCD Invaders : un jeu de type Space Invaders sur écran LCD 16x2 : 7 étapes

Vidéo: LCD Invaders : un jeu de type Space Invaders sur écran LCD 16x2 : 7 étapes

Vidéo: LCD Invaders : un jeu de type Space Invaders sur écran LCD 16x2 : 7 étapes
Vidéo: RetroGaming on Raspberry Pi Pico 🕹️ Code classic games in MicroPython! 2024, Juillet
Anonim
LCD Invaders: un jeu de type Space Invaders sur écran LCD 16x2
LCD Invaders: un jeu de type Space Invaders sur écran LCD 16x2
LCD Invaders: un jeu de type Space Invaders sur écran LCD 16x2
LCD Invaders: un jeu de type Space Invaders sur écran LCD 16x2
LCD Invaders: un jeu de type Space Invaders sur écran LCD 16x2
LCD Invaders: un jeu de type Space Invaders sur écran LCD 16x2
LCD Invaders: un jeu de type Space Invaders sur écran LCD 16x2
LCD Invaders: un jeu de type Space Invaders sur écran LCD 16x2

Il n'est pas nécessaire d'introduire un jeu légendaire « Space Invaders ». La caractéristique la plus intéressante de ce projet est qu'il utilise l'affichage de texte pour la sortie graphique. Il est réalisé en implémentant 8 caractères personnalisés.

Vous pouvez télécharger le croquis Arduino complet ici:

github.com/arduinocelentano/LCD_invaders/

Fournitures

Carte Arduino UNO

Écran de clavier LCD

Câble USB pour le téléchargement de croquis

Étape 1: conception de jeux

Le design du jeu
Le design du jeu

L'écran ne permet pas de contrôler des pixels séparés et ne fournit que deux lignes de texte, ce qui n'est pas suffisant pour le jeu. Mais il permet d'implémenter jusqu'à 8 caractères personnalisés. L'astuce consiste à traiter chaque caractère de 5x8 pixels comme deux cellules de jeu de 5x4 pixels. C'est-à-dire que nous aurons un terrain de jeu 16x4, ce qui est logique. 8 personnages suffisent juste pour implémenter des sprites pour le vaisseau spatial du joueur, des balles et des extraterrestres animés. Étant donné que les sprites sont de 5x4 et que les personnages sont de 5x8, nous aurons besoin de personnages avec deux sprites comme le sprite "un vaisseau spatial et une balle", "un extraterrestre et une balle", etc. Tous les personnages personnalisés sont affichés sur l'image.

Étape 2: Traitement des boutons

Boutons de traitement
Boutons de traitement

En règle générale, tous les boutons d'un écran LCD sont connectés à la même broche analogique. Il existe différentes versions de LCD shield, vous devrez donc probablement modifier légèrement les littéraux entiers dans mon code de traitement des boutons.

Étape 3: Hiérarchie des classes

Hiérarchie des classes
Hiérarchie des classes

J'ai implémenté une classe de base GameObject qui a des champs de coordonnées et de vitesse et traite les collisions. Les classes Navire, Alien et Bullet en sont héritées.

Étape 4: Mise à jour de l'écran

Mise à jour de l'écran
Mise à jour de l'écran

La logique de rendu peut sembler un peu compliquée car nous devons transformer la logique de jeu 16x4 en affichage 16x2. Veuillez lire les commentaires dans le code pour plus de références. Pour éviter le scintillement, j'ai utilisé un tableau de caractères à deux dimensions comme tampon de texte. Il permet d'utiliser quelques opérations d'impression (une pour chaque ligne) pour mettre à jour l'écran.

Étape 5: Logique du jeu

Logique de jeu
Logique de jeu

Voici le coeur du jeu. La boucle principale change les coordonnées de tous les objets, vérifie toutes sortes de collisions et d'événements de pression de bouton. La vitesse des extraterrestres et leur probabilité de tir augmentent de niveau en niveau. Mais la récompense de score augmente également.

Étape 6: Un œuf de Pâques

Un œuf de Pâques
Un œuf de Pâques

Il n'y a pas de niveau après le niveau 42. Sérieusement. C'est le niveau ultime de la vie, de l'univers et de tout.:)

Conseillé: