Sisukord:

Arduino kosmosesõidu mängu versioon _1: 5 sammu
Arduino kosmosesõidu mängu versioon _1: 5 sammu

Video: Arduino kosmosesõidu mängu versioon _1: 5 sammu

Video: Arduino kosmosesõidu mängu versioon _1: 5 sammu
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, November
Anonim
Image
Image

Hei sõbrad. Täna näitan teile, kuidas saate LCD5110 ekraani ja joystic abil kosmosesõidu mängu teha. Vaatame samme…

1. samm: VAJAB

Skeem
Skeem

Siin on nimekiri osadest, mida ma selle projekti tegemisel kasutasin:

  • Arduino UNO
  • Joystick moodul
  • Jumper juhtmed (meestele ja isastele naistele)
  • Leivalaud

2. samm: Skeem

VCC -> Arduino 5V

BL -> Arduino tihvt 3

GND -> Arduino GND

CLK (SCLK) -> Arduino tihvt 8

DIN (MOSI) -> Arduino tihvt 9

DC -> Arduino tihvt 10

CE või CS -> Arduino tihvt 12

RST (RESET) -> Arduino pin 11

3. samm: KOODI

KOOD
KOOD

Koodil on koodifunktsioonide selgitused. Saate sellest hõlpsalt aru. Kui teil on probleeme, võite minuga ühendust võtta.

#kaasake

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

int BL = 3;

extern uint8_t SmallFont ; // kirjelda fonte extern uint8_t MediumNumbers ; väline uint8_t arac ; // kirjelda meie kuju extern uint8_t dusman_araci ; // desribe vaenlase kuju const int xpin = A0; // juhtkang x tihvt char pozisyon = 2; // kirjeldada asukohta, meie kuju alguskoht 2 boolean kontrol = true; boolean dusmanOldu = tõsi; int skor = 0; int hiz = 0; int dusmanKonumu1; // vaenlase kirjeldamine1 x asukoht int dusmanKonumu2; // vaenlase kirjeldus2 x asukoht int dusmaninYdeKonumu; // kirjeldage vaenlasi ja nende asukohta

void dusmanAraci (int yer, int asama) {// määrake vaenlase kujundite asukohad

if (yer == 1) {// kui asukoht = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // joonista vaenlase kuju} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } kui (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// kui ebaõnnestume, on mäng läbi

samas (1) {viivitus (100); // oota 1 millisekund lcd.clrScr (); // ekraani tühjendamine lcd.setFont (SmallFont); // määrake font lcd.print ("GAME OVER", CENTER, 20); // print lcd.update (); // ekraani värskendamine}}

void setup () {pinMode (BL, OUTPUT); // tagantvalgustus Väljund lcd. InitLCD (); // initsialiseeri LCD -ekraan lcd.setContrast (55); // määrake kontrastsus (palju 0 kuni 127) Serial.begin (9600); // seeriaühenduse alustamine}

void loop () {

analogWrite (BL, 200);

// seadista mänguekraan lcd.drawRect (0, 0, 47, 47); // joonistame ristküliku lcd.setFont (SmallFont); // määrake font lcd.print ("skor", 53, 0); // printf skoor lcd.setFont (MediumNumbers); // määrake font lcd.printNumI (skor, 59, 7); // saada skoor lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // printimiskiirus lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // hangi kiirus lcd.update (); // uuenda

// määrake rõõmurulli asukoht 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 ja juhtimine on tõsi pozisyon ++; // asukoha suurendamine tähendab kuju teisaldamist paremale kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Seeria.println (x); // x oleku õppimiseks // määrake meie kuju asukoht lcd.clrScr (); // tühjendage ekraan, kui (pozisyon == 1) {// kui asukoht = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // joonistage meie laev, kui (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

kui (pozisyon == 3) {

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

if (dusmanOldu) {// kui vaenlase kuju on surnud, kontrollige, kas nad on surnud

dusmanKonumu1 = pozisyon; // esimese vaenlase kuju joonistamine dusmanKonumu2 = juhuslik (0, 4); // joonista kuskile teine vaenlase kuju dusmaninYdeKonumu = 0; // too vaenlane ülevalt dusmanOldu = false;} // vaenlane luuakse uuesti, et nad poleks surnud dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // joonista esimene vaenlase kuju ja saada see ülevalt alla dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // joonista teine vaenlase kuju ja saada see ülevalt alla, kui (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// kui meie kuju puudutab vaenlase kujundeid oyunBitti ();} // mäng on läbi, kui (dusmaninYdeKonumu> 40) {// kui meie kuju põgeneb vaenlaste eest dusmanOldu = true; // tapke vaenlase kujundeid skor ++;} // suurendage ükshaaval skoori // suurendage kiirust vastavalt skoorile, kui (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; viivitus (40); }}

4. samm: KOODI BITMAP

Lisaks peate vormide jaoks lisama bitikaardi graafika. See peab olema.c -fail ja sama nimi koos koodnimega. Samuti peab see olema samas failis.

// ------------------------------------------------ ------------------------------ // LCD-assistendi loodud fail // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // kaasata programmifunktsiooni jaoks

const unsigned char arac PROGMEM = {// meie kuju bitikaart

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

const unsigned char dusman_araci PROGMEM = {// vaenlase laeva bitikaart

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

Samm 5: TÄNUD VAATAMISE eest

AITÄH VAATAMISE eest
AITÄH VAATAMISE eest

Enne kui hakkasin oma projekte jagama, kodeerisin neid türgi sõnadega, nii et ma ei saanud kõiki sõnu inglise keelde juhtida. Siin on sõnad tõlge, mis seda projekti kasutavad, Oyun = Mäng

Arac = kuju

Dusman = vaenlane

kontrol = kontroll

Konum, Yer = Asukoht

Oyun Bitti = Mäng läbi

Skor = skoor

Hiz = kiirus

Soovitan: