Sadržaj:

Verzija igre Arduino Space Race _1: 5 koraka
Verzija igre Arduino Space Race _1: 5 koraka

Video: Verzija igre Arduino Space Race _1: 5 koraka

Video: Verzija igre Arduino Space Race _1: 5 koraka
Video: Дедушка не выдержал и дал ответ за Украинский флаг 2024, Srpanj
Anonim
Image
Image

Hej prijatelji. Danas ću vam pokazati kako možete napraviti igru Space Race na LCD5110 ekranu i joysticku. Pogledajmo korake …

Korak 1: POTREBE

SHEMA
SHEMA

Evo popisa dijelova koje sam koristio za izradu ovog projekta:

  • Arduino UNO
  • Modul joystick
  • Kratkospojne žice (muški na muški i muški na ženski)
  • Oglasna ploča

Korak 2: SHEMA

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

RST (RESET) -> Arduino pin 11

Korak 3: KOD

KODIRATI
KODIRATI

Kod ima objašnjenja funkcija koda. Lako ćete to razumjeti. Ako imate problem, možete me kontaktirati.

#uključi

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

int BL = 3;

extern uint8_t SmallFont ; // opisuje fontove extern uint8_t MediumNumbers ; vanjski uint8_t arac ; // opišimo naš oblik extern uint8_t dusman_araci ; // opisati oblik neprijatelja const int xpin = A0; // joystick x pin char pozisyon = 2; // opisati lokaciju, naš oblik početna lokacija 2 boolean kontrol = true; boolean dusmanOldu = istina; int skor = 0; int hiz = 0; int dusmanKonumu1; // opišite neprijatelja1 x lokaciju int dusmanKonumu2; // opišite neprijatelja2 x lokaciju int dusmaninYdeKonumu; // opišite neprijatelje y lokaciji

void dusmanAraci (int yer, int asama) {// postavljanje lokacija za neprijateljske oblike

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // nacrtati neprijateljski oblik} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// ako ne uspijemo, igra je gotova

while (1) {odgoda (100); // čekati 1 milisekundu lcd.clrScr (); // brisanje zaslona lcd.setFont (SmallFont); // postavljanje fonta lcd.print ("GAME OVER", CENTAR, 20); // ispis lcd.update (); // ažuriranje zaslona}}

void setup () {pinMode (BL, OUTPUT); // postavljeno pozadinsko svjetlo Output lcd. InitLCD (); // iniciranje lcd zaslona lcd.setContrast (55); // postavljanje kontrasta (amound 0 do 127) Serial.begin (9600); // pokretanje serijske komunikacije}

void loop () {{100} {101}

analogWrite (BL, 200);

// postavljanje zaslona igre lcd.drawRect (0, 0, 47, 47); // crtamo pravokutnik lcd.setFont (SmallFont); // postavljanje fonta lcd.print ("skor", 53, 0); // printf score lcd.setFont (srednji brojevi); // postavi font lcd.printNumI (skor, 59, 7); // dobiti rezultat lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // brzina ispisa lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // get speed lcd.update (); //ažuriranje

// postavljanje mjesta kontrolne tipke int x = analogRead (xpin); if (x <300 && pozisyon! = 1 && kontrola == true) {// if location! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3, x state> 600 i kontrola je istinita pozisyon ++; // povećati lokaciju znači premjestiti oblik udesno kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // za učenje x stanje // postavite mjesto našeg oblika lcd.clrScr (); // brisanje zaslona if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // nacrtajmo naš brod if (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

if (pozisyon == 3) {

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

if (dusmanOldu) {// ako je neprijateljski oblik mrtav, provjerite jesu li mrtvi

dusmanKonumu1 = pozisyon; // nacrtati prvi neprijateljski oblik dusmanKonumu2 = random (0, 4); // nacrtati negdje drugi neprijateljski oblik dusmaninYdeKonumu = 0; // dovesti neprijatelja s vrha dusmanOldu = false;} // neprijatelj je ponovno stvoren tako da nije mrtav dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // nacrtati prvi neprijateljski oblik i dobiti ga odozgo prema dolje dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // nacrtamo drugi neprijateljski oblik i dobijemo ga odozgo prema dolje if (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// ako naš oblik dodirne neprijateljske oblike oyunBitti ();} // igra je gotova if (dusmaninYdeKonumu> 40) {// ako naš oblik pobjegne od neprijatelja dusmanOldu = true; // ubiti neprijateljske oblike skor ++;} // povećati jedan po jedan rezultat // povećati brzinu prema rezultatu if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; kašnjenje (40); }}

Korak 4: KOD BITMAP

Nadalje, morate uključiti bitmap grafiku za oblike. To mora biti.c datoteka i isto ime s kodnim imenom. Također, mora biti u istoj datoteci.

// ------------------------------------------------ ------------------------------ // Datoteka koju generira LCD pomoćnik // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include za funkciju progmem

const unsigned char arac PROGMEM = {// bitmapa našeg oblika

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

const unsigned char dusman_araci PROGMEM = {// bitmapa neprijateljskog broda

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

Korak 5: HVALA NA POGLEDANJU

HVALA NA POGLEDANJU
HVALA NA POGLEDANJU

Prije nego što sam počeo dijeliti svoje projekte, kodirao sam ih na turskim riječima tako da nisam mogao svaku riječ na engleski. Ovdje su prijevodi riječi koji koristim ovaj projekt, Oyun = Igra

Arac = Oblik

Dusman = Neprijatelj

kontrol = kontrola

Konum, Yer = Lokacija

Oyun Bitti = Igra je gotova

Skor = rezultat

Hiz = Brzina

Preporučeni: