Table des matières:
- Étape 1: BESOINS
- Étape 2: SCHÉMA
- Étape 3: CODEZ
- Étape 4: CODE BITMAP
- Étape 5: MERCI D'AVOIR VISIONNÉ
Vidéo: Arduino Space Race Game Version _1 : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Salut les amis. Aujourd'hui, je vais vous montrer comment créer un écran et un joystic Space Race Game par LCD5110. Regardons les étapes…
Étape 1: BESOINS
Voici une liste des pièces que j'ai utilisées pour réaliser ce projet:
- Arduino UNO
- Module de manette de jeu
- Cavaliers (mâle à mâle et mâle à femelle)
- Planche à pain
Étape 2: SCHÉMA
VCC -> Arduino 5V
BL -> Arduino broche 3
GND -> Arduino GND
CLK (SCLK) -> Arduino broche 8
DIN (MOSI) -> Arduino broche 9
CC -> Arduino broche 10
CE ou CS -> Arduino broche 12
RST (RESET) -> broche Arduino 11
Étape 3: CODEZ
Le code a des explications sur les fonctions du code. Vous le comprendrez facilement. Si vous avez un problème, vous pouvez me contacter.
#comprendre
LCD5110 LCD (8, 9, 10, 11, 12); //(clk, din, dc, rst, ce)
int BL=3;
extern uint8_t SmallFont; //décrire les polices extern uint8_t MediumNumbers; extern uint8_t arac; //décrivez notre forme extern uint8_t dusman_araci; //desribe la forme de l'ennemi const int xpin=A0; //joystick x pin char pozisyon=2; // décrivez l'emplacement, notre emplacement de départ de forme 2 boolean kontrol = true; booléen dusmanOldu = vrai; int skor=0; int hiz=0; int dusmanKonumu1; //décrire ennemi1 x emplacement int dusmanKonumu2; //description de l'ennemi2 x emplacement int dusmaninYdeKonumu; // décrivez les ennemis et leur emplacement
void dusmanAraci(int yer, int asama){ //définir les emplacements pour les formes ennemies
if (yer==1){ //si emplacement=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); //dessiner la forme de l'ennemi } if (yer==2){ lcd.drawBitmap(18, asama, dusman_araci, 12, 8); } if (yer==3){ lcd.drawBitmap(34, asama, dusman_araci, 12, 8); }}
void oyunBitti() { //si nous échouons, le jeu est terminé
while(1) { retard (100); // attendre 1 milliseconde lcd.clrScr(); //effacer l'écran lcd.setFont(SmallFont); //définir la police lcd.print("GAME OVER", CENTER, 20); // affiche lcd.update(); //mettre à jour l'écran }}
void setup() { pinMode(BL, OUTPUT); //réinitialiser la lumière Sortie lcd. InitLCD(); // initialise l'écran lcd lcd.setContrast(55); //définir le contraste (de 0 à 127) Serial.begin (9600); //commencer la communication en série }
boucle vide() {
analogWrite(BL, 200);
//définir l'écran de jeu lcd.drawRect(0, 0, 47, 47); // nous dessinons le rectangle lcd.setFont(SmallFont); //définir la police lcd.print("skor", 53, 0); //score printf lcd.setFont(MediumNumbers); //définir la police lcd.printNumI(skor, 59, 7); // obtenir le score lcd.setFont(SmallFont); lcd.print("hiz", 56, 25); // vitesse d'impression lcd.setFont(MediumNumbers); lcd.printNumI(hiz, 59, 32); // obtenir la vitesse lcd.update(); //mettre à jour
//définir l'emplacement du joyistick int x=analogRead(xpin); if(x<300 && pozisyon!=1 && kontrol==true){ //if location!=1, x state600 && pozisyon!=3 && kontrol==true){ //if location!=3, x state> 600 et le contrôle est vrai pozisyon++; // augmenter l'emplacement, cela signifie déplacer la forme vers la droite kontrol=false; } else if(x>300 && x<600){ kontrol=true; } Serial.println(x); //pour apprendre l'état x //définir l'emplacement de notre forme lcd.clrScr(); //effacer l'écran if (pozisyon==1){ //if location=1; lcd.drawBitmap(2, 37, arac, 12, 8);} //dessiner notre vaisseau si (pozisyon==2){ lcd.drawBitmap(18, 37, arac, 12, 8);}
si (possibilité==3){
lcd.drawBitmap (34, 37, arac, 12, 8);}
if (dusmanOldu){ //si la forme ennemie est morte, vérifiez qu'elle est morte
dusmanKonumu1 = pozisyon; // dessine la première forme ennemie dusmanKonumu2 = random(0, 4); //dessine une autre forme ennemie quelque part dusmaninYdeKonumu = 0; //amener l'ennemi du haut dusmanOldu = false;} //l'ennemi est recréé afin qu'il ne soit pas mort dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu++; //dessiner la première forme ennemie et la récupérer de haut en bas dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu++; // dessinez la deuxième forme ennemie et obtenez-la de haut en bas si (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))){ //si notre forme touche les formes ennemies oyunBitti();} //le jeu est terminé if (dusmaninYdeKonumu>40){ //si notre forme s'échappe des ennemis dusmanOldu = true; //tuer les formes ennemies skor++;} //augmenter un par un le score //augmenter la vitesse en fonction du score si (skor>=0 && skor10 && skor20 && skor30 && skor<=40){ hiz = 3; retard (40); } }
Étape 4: CODE BITMAP
De plus, vous devez inclure un graphique bitmap pour les formes. Il doit s'agir d'un fichier.c et du même nom avec le nom de code. En outre, il doit être dans le même fichier.
//------------------------------------------------ -------------------------------// Fichier généré par LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/ //----------------------------------------------- --------------------------------- #include //include pour la fonction progmem
const unsigned char arac PROGMEM = { //notre forme bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
const non signé char dusman_araci PROGMEM = { //navire ennemi bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
Étape 5: MERCI D'AVOIR VISIONNÉ
Avant que ı ne commence à partager mes projets, codé en mots turcs afin que je ne puisse pas risquer tous les mots en anglais. Voici la traduction des mots que ı utilise ce projet, Oyun = Jeu
Arac = Forme
Dusman = Ennemi
contrôle = contrôle
Konum, Yer = Emplacement
Oyun Bitti = Game Over
Skor = Score
Hiz = Vitesse
Conseillé:
Voltmètre Arduino (0-100V DC) - Version 2 (meilleur): 3 étapes
Voltmètre Arduino (0-100V DC) - Version 2 (meilleur): Dans cette instructable, j'ai construit un voltmètre pour mesurer les hautes tensions DC (0-100v) avec une précision et une précision relatives à l'aide d'un Arduino Nano et d'un ADS 1115 ADC .Il s'agit d'une deuxième version du voltmètre utilisé mon précédent instructable ici : https://ww
8x16 LED Matrix Pong Game (2 pagaies par version de joueur): 3 étapes
Jeu de Pong à matrice LED 8x16 (2 pagaies par version de joueur): J'ai été inspiré par de nombreuses variantes du jeu Pong classique implémenté sur Arduino en utilisant une matrice LED 8x8. Dans ce instructable, je vais vous montrer comment construire ma version préférée de Pong qui a deux pagaies - attaquant et gardien de but - par joueur
PCB pour Delta5 Race Timer : 4 étapes
PCB pour Delta5 Race Timer : Delta5 est un excellent chronomètre open source pour les miniquads. Il utilise des composants facilement disponibles et coûte une fraction du prix par rapport aux chronomètres produits dans le commerce.https://github.com/scottgchin/delta5_race_timerComme le Delta5 n'a qu'un seul p
Space Race : Jeu Arduino Clicker simple à faire avec les enfants : 7 étapes
Space Race: Simple Clicker Arduino Game à faire avec les enfants: ¡Je mets en ligne une vidéo montrant comment cela fonctionne aujourd'hui ! Restez à l'écouteAmusons-nous avec un instructable sur le thème de l'espace qui peut être fait avec les enfants, et plus tard être apprécié par eux seuls comme un jouet.Vous pouvez l'utiliser comme un moyen de leur apprendre l'histoire de co
KerbalController : un panneau de contrôle personnalisé pour Rocket Game Kerbal Space Program : 11 étapes (avec photos)
KerbalController : un panneau de contrôle personnalisé pour Rocket Game Kerbal Space Program : Pourquoi créer un KerbalController ? Eh bien, parce qu'appuyer sur des boutons et lancer des commutateurs physiques est bien plus important que de cliquer sur votre souris. Surtout quand c'est un gros interrupteur de sécurité rouge, où il faut d'abord ouvrir le couvercle, actionner l'interrupteur