Inhoudsopgave:

Arduino Space Race Game Versie _1: 5 stappen
Arduino Space Race Game Versie _1: 5 stappen

Video: Arduino Space Race Game Versie _1: 5 stappen

Video: Arduino Space Race Game Versie _1: 5 stappen
Video: Arduino Space Invaders PT5 real game action 2024, Juli-
Anonim
Image
Image

Hallo vrienden. Vandaag ga ik je laten zien hoe je een Space Race Game kunt maken met het LCD5110-scherm en de joystic. Laten we eens kijken naar de stappen …

Stap 1: BEHOEFTEN

SCHEMA
SCHEMA

Hier is een lijst met onderdelen die ik heb gebruikt om dit project te maken:

  • Arduino UNO
  • Joystick-module
  • Jumperdraden (man naar man en man naar vrouw)
  • Breadboard

Stap 2: SCHEMA

VCC -> Arduino 5V

BL -> Arduino-pin 3

GND -> Arduino GND

CLK (SCLK) -> Arduino-pin 8

DIN (MOSI) -> Arduino pin 9

DC -> Arduino-pin 10

CE of CS -> Arduino pin 12

RST (RESET) -> Arduino-pin 11

Stap 3: CODE

CODE
CODE

De code heeft uitleg over codefuncties. Je zult het snel begrijpen. Als u een probleem heeft, kunt u contact met mij opnemen.

#erbij betrekken

LCD5110 lcd (8, 9, 10, 11, 12); //(clk, din, dc, eerste, ce)

int BL=3;

extern uint8_t SmallFont; //beschrijf de lettertypen extern uint8_t MediumNumbers; extern uint8_t arac; // beschrijf onze vorm extern uint8_t dusman_araci ; // beschrijf vijandelijke vorm const int xpin = A0; //joystick x pin char pozisyon=2; // beschrijf de locatie, onze vorm start locatie 2 boolean kontrol = true; boolean dusmanOldu = waar; int skor=0; int hiz=0; int dusmanKonumu1; // beschrijf vijand1 x locatie int dusmanKonumu2; // beschrijf vijand 2 x locatie int dusmaninYdeKonumu; // beschrijf vijanden en locatie

void dusmanAraci (int yer, int asama) { // stel locaties in voor vijandige vormen

if (yer==1){ //if locatie=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); // teken vijandelijke vorm } if (yer==2){ lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer==3){ lcd.drawBitmap(34, asama, dusman_araci, 12, 8); }}

void oyunBitti() { // als we falen, is het spel voorbij

while(1) { vertraging(100); // wacht 1 milliseconde lcd.clrScr (); // wis het scherm lcd.setFont (SmallFont); //set lettertype lcd.print ("GAME OVER", CENTER, 20); // print lcd.update(); // werk het scherm bij }}

void setup () { pinMode (BL, OUTPUT); // stel achtergrondverlichting in Uitgang lcd. InitLCD (); //initialiseer het lcd-scherm lcd.setContrast(55); // stel contrast in (ongeveer 0 tot 127) Serial.begin (9600); //start seriële communicatie}

lege lus() {

analoogWrite(BL, 200);

//set spelscherm lcd.drawRect (0, 0, 47, 47); // we tekenen rechthoek lcd.setFont (SmallFont); //set lettertype lcd.print ("skor", 53, 0); //printf score lcd.setFont(MediumNumbers); //set lettertype lcd.printNumI (skor, 59, 7); //score lcd.setFont (SmallFont); lcd.print("hiz", 56, 25); // afdruksnelheid lcd.setFont (gemiddelde nummers); lcd.printNumI(hiz, 59, 32); // haal snelheid lcd.update(); //update

// stel de joyistick-locatie in 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 en controle is waar pozisyon++; // verhoog de locatie die het betekent verplaats de vorm naar rechts kontrol=false; } else if(x>300 && x<600){ kontrol=true; } Serieel.println(x); // voor het leren van x staat // stel de onze vormlocatie lcd.clrScr (); // wis het scherm if (pozisyon==1){ //if location=1; lcd.drawBitmap (2, 37, arac, 12, 8);} // teken ons schip if (pozisyon==2) { lcd.drawBitmap (18, 37, arac, 12, 8);}

if (pozisyon==3){

lcd.drawBitmap(34, 37, arac, 12, 8);}

if (dusmanOldu) { // als de vorm van de vijand dood is, controleer of ze dood zijn

dusmanKonumu1 = pozisyon; // teken eerste vijandelijke vorm dusmanKonumu2 = willekeurig (0, 4); // teken ergens een andere vijandelijke vorm dusmaninYdeKonumu = 0; // breng vijand van boven dusmanOldu = false;} // vijand wordt opnieuw gemaakt zodat ze niet dood zijn dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu++; // teken de eerste vijandelijke vorm en haal deze van boven naar beneden dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu++; // teken de tweede vijandelijke vorm en haal deze van boven naar beneden if (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) { //als onze vorm vijandige vormen raakt oyunBitti();} //het spel is afgelopen als (dusmaninYdeKonumu>40){ //als onze vorm ontsnapt aan vijanden dusmanOldu = true; //dood vijandelijke vormen skor++;} //verhoog de score één voor één //verhoog de snelheid volgens de score if (skor>=0 && skor10 && skor20 && skor30 && skor<=40){ hiz = 3; vertraging (40); } }

Stap 4: CODE BITMAP

Verder moet u een bitmapafbeelding voor vormen opnemen. Het moet een.c-bestand zijn en dezelfde naam met codenaam. Het moet ook in hetzelfde bestand staan.

//------------------------------------------------ -----------------------------// Bestand gegenereerd door LCD-assistent // https://en.radzio.dxp.pl /bitmap_converter/ //--------------------------------------------- --------------------------------- #include //include voor programmafunctie

const unsigned char arac PROGMEM = { //our shape bitmap

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };

const unsigned char dusman_araci PROGMEM = { // vijandelijke schip bitmap

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };

Stap 5: BEDANKT VOOR HET BEKIJKEN

BEDANKT VOOR HET BEKIJKEN
BEDANKT VOOR HET BEKIJKEN

Voordat ı mijn projecten begon te delen, gecodeerd in Turkse woorden, zodat ik niet alle woorden naar het Engels kon veranderen. Hier de woordenvertaling die ı dit project gebruikt, Oyun = Spel

Arac = Vorm

Dusman = vijand

controle = controle

Konum, Yer = Locatie

Oyun Bitti = Game Over

Skor = Score

Hiz = Snelheid

Aanbevolen: