Table des matières:

Arduino Space Race Game Version _1 : 5 étapes
Arduino Space Race Game Version _1 : 5 étapes

Vidéo: Arduino Space Race Game Version _1 : 5 étapes

Vidéo: Arduino Space Race Game Version _1 : 5 étapes
Vidéo: Amazing arduino project 2024, Juillet
Anonim
Image
Image

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

SCHÉMA
SCHÉMA

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

CODE
CODE

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É

MERCI DE VOIR
MERCI DE VOIR

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é: