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, Novembar
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
  • Joystick Module
  • Kratkospojne žice (muški na muški i muški na ženski)
  • Breadboard

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

CODE
CODE

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

#include

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 ; extern uint8_t arac ; // opisuje naš oblik extern uint8_t dusman_araci ; // opis neprijateljskog oblika const int xpin = A0; // joystick x pin char pozisyon = 2; // opisuje lokaciju, naš oblik početne lokacije 2 boolean kontrol = true; boolean dusmanOldu = true; 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); // čekamo 1 milisekundu lcd.clrScr (); // briše ekran lcd.setFont (SmallFont); // postavlja font lcd.print ("GAME OVER", CENTAR, 20); // ispis lcd.update (); // ažuriranje ekrana}}

void setup () {pinMode (BL, OUTPUT); // namještanje pozadinskog svjetla Izlaz lcd. InitLCD (); // iniciranje lcd ekrana lcd.setContrast (55); // postavljanje kontrasta (amound 0 do 127) Serial.begin (9600); // pokretanje serijske komunikacije}

void loop () {{100} {101}

analogWrite (BL, 200);

// postavljanje ekrana igre lcd.drawRect (0, 0, 47, 47); // crtamo pravokutnik lcd.setFont (SmallFont); // postavlja font lcd.print ("skor", 53, 0); // printf score lcd.setFont (MediumNumbers); // postavljanje fonta lcd.printNumI (skor, 59, 7); // dobije 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 lokacije joystick -a 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 lokaciju našeg oblika lcd.clrScr (); // briše ekran 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); // negdje nacrtati drugi oblik neprijatelja dusmaninYdeKonumu = 0; // dovesti neprijatelja s vrha dusmanOldu = false;} // neprijatelj je ponovo 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 = {// naša bitmapa 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 dati svaku riječ engleskom. Evo prijevoda riječi koje koristim ovim projektom, Oyun = Igra

Arac = Oblik

Dusman = Neprijatelj

kontrol = kontrola

Konum, Yer = Lokacija

Oyun Bitti = Igra je gotova

Skor = rezultat

Hiz = Brzina

Preporučuje se: