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, November
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: