Indholdsfortegnelse:

Arduino Space Race Game Version _1: 5 trin
Arduino Space Race Game Version _1: 5 trin

Video: Arduino Space Race Game Version _1: 5 trin

Video: Arduino Space Race Game Version _1: 5 trin
Video: DIY ГОНОЧНАЯ ИГРА на Arduino 2024, Juli
Anonim
Image
Image

Hej venner. I dag viser jeg dig hvordan du kan lave et Space Race Game med LCD5110 skærm og joystic. Lad os se trin …

Trin 1: BEHOV

SKEMA
SKEMA

Her er en liste over dele, jeg brugte til at lave dette projekt:

  • Arduino UNO
  • Joystick -modul
  • Jumper Wires (mand til mand og mand til kvinde)
  • Brødbræt

Trin 2: SKEMA

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 eller CS -> Arduino pin 12

RST (RESET) -> Arduino pin 11

Trin 3: KODE

KODE
KODE

Koden har forklaringer på kodefunktioner. Du vil let forstå det. Hvis du har et problem, kan du kontakte mig.

#omfatte

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

int BL = 3;

ekstern uint8_t SmallFont ; // beskriv skrifttyperne extern uint8_t MediumNumbers ; ekstern uint8_t arac ; // beskrive vores form eksternt uint8_t dusman_araci ; // beskriv fjendens form const int xpin = A0; // joystick x pin char pozisyon = 2; // beskriv placeringen, vores form start placering 2 boolsk kontrol = true; boolsk dusmanOldu = true; int skor = 0; int hiz = 0; int dusmanKonumu1; // beskriv fjende1 x placering int dusmanKonumu2; // beskrive fjende2 x placering int dusmaninYdeKonumu; // beskriv fjender y placering

void dusmanAraci (int yer, int asama) {// angive placeringer for fjendtlige former

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // tegne fjendtlig form} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } hvis (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// hvis vi fejler, er spillet slut

mens (1) {forsinkelse (100); // vent 1 milisekund lcd.clrScr (); // ryd skærmen lcd.setFont (SmallFont); // sæt skrifttype lcd.print ("SPIL OVER", CENTER, 20); // udskriv lcd.update (); // opdater skærmen}}

ugyldig opsætning () {pinMode (BL, OUTPUT); // sæt lys tilbage Output lcd. InitLCD (); // start lcd -skærmen lcd.setContrast (55); // indstil kontrast (mellem 0 og 127) Serial.begin (9600); // start seriel kommunikation}

void loop () {

analogWrite (BL, 200);

// sæt spilskærm lcd.drawRect (0, 0, 47, 47); // vi tegner rektangel lcd.setFont (SmallFont); // sæt skrifttype lcd.print ("skor", 53, 0); // printf score lcd.setFont (MediumNumbers); // sæt skrifttype lcd.printNumI (skor, 59, 7); // få score lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // udskrivningshastighed lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // få hastighed lcd.update (); // opdatering

// indstil joyistick -placeringen 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 og kontrol er sand pozisyon ++; // øge placeringen, det betyder flytte form til højre kontrol = false; } ellers hvis (x> 300 && x <600) {kontrol = true; } Serial.println (x); // for at lære x -tilstand // indstil vores form -placering lcd.clrScr (); // ryd skærmen hvis (pozisyon == 1) {// hvis placering = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // tegne vores skib, hvis (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

hvis (pozisyon == 3) {

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

hvis (dusmanOldu) {// hvis fjendens form er død, skal du kontrollere, om de er døde

dusmanKonumu1 = pozisyon; // tegne første fjendtlige form dusmanKonumu2 = tilfældig (0, 4); // tegne en anden fjendtlig form et sted dusmaninYdeKonumu = 0; // bringe fjende fra toppen dusmanOldu = false;} // fjenden genskabes, så de ikke er døde dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // tegne første fjendtlige form og få den fra top til bund dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // tegne anden fjendens form og få den fra top til bund, hvis (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// hvis vores form rører fjendtlige former oyunBitti ();} // spillet er slut, hvis (dusmaninYdeKonumu> 40) {// hvis vores form undslipper fjender dusmanOldu = true; // dræb fjendens former skor ++;} // øg scoren en efter en // øg hastigheden i henhold til score hvis (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; forsinkelse (40); }}

Trin 4: KODE BITMAP

Desuden skal du inkludere bitmapgrafik for figurer. Det skal være en.c -fil og det samme navn med kodenavn. Den skal også være i den samme fil.

// ------------------------------------------------ ------------------------------ // Fil genereret af LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include for progmem function

const usigneret char arac PROGMEM = {// vores form bitmap

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

const unsigned char dusman_araci PROGMEM = {// fjendens skib bitmap

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

Trin 5: TAK FOR VISNINGEN

TAK FOR VISNINGEN
TAK FOR VISNINGEN

Inden jeg begyndte at dele mine projekter, kodede jeg i tyrkiske ord, så jeg kunne ikke tilføje alle ord til engelsk. Her er ordoversættelsen, som jeg bruger dette projekt, Oyun = Spil

Arac = form

Dusman = fjende

kontrol = kontrol

Konum, Yer = Placering

Oyun Bitti = Game Over

Skor = Score

Hiz = Hastighed

Anbefalede: