Სარჩევი:

Arduino Space Race თამაშის ვერსია _1: 5 ნაბიჯი
Arduino Space Race თამაშის ვერსია _1: 5 ნაბიჯი

ვიდეო: Arduino Space Race თამაშის ვერსია _1: 5 ნაბიჯი

ვიდეო: Arduino Space Race თამაშის ვერსია _1: 5 ნაბიჯი
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ნოემბერი
Anonim
Image
Image

გამარჯობა მეგობრებო. დღეს მე განანა გაჩვენებთ, თუ როგორ შეგიძლიათ გააკეთოთ Space Race Game LCD5110 ეკრანით და ჯოისტიკით. მოდით შევხედოთ ნაბიჯებს…

ნაბიჯი 1: საჭიროებები

სქემა
სქემა

აქ მოცემულია იმ ნაწილების სია, რომლებიც მე გამოვიყენე ამ პროექტის შესაქმნელად:

  • Arduino UNO
  • ჯოისტიკის მოდული
  • Jumper Wires (მამაკაცი მამაკაცი და მამაკაცი ქალი)
  • პურის დაფა

ნაბიჯი 2: სქემა

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

RST (გადატვირთვა) -> Arduino pin 11

ნაბიჯი 3: კოდი

კოდი
კოდი

კოდს აქვს განმარტებები კოდის ფუნქციების შესახებ. თქვენ ადვილად მიხვდებით მას. თუ თქვენ გაქვთ პრობლემა, შეგიძლიათ დამიკავშირდეთ.

#ჩართეთ

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

int BL = 3;

გარე uint8_t SmallFont ; // აღწერეთ გარე შრიფტები uint8_t MediumNumbers ; გარეგანი uint8_t arac ; // აღწერეთ ჩვენი ფორმა გარეგანი uint8_t dusman_araci ; // desribe მტრის ფორმის const int xpin = A0; // ჯოისტიკი x pin char pozisyon = 2; // აღწერეთ მდებარეობა, ჩვენი ფორმის საწყისი მდებარეობა 2 ლოგიკური კონტროლი = ჭეშმარიტი; boolean dusmanOldu = ჭეშმარიტი; int skor = 0; int hiz = 0; int dusmanKonumu1; // აღწერე მტერი 1 x ადგილმდებარეობა int dusmanKonumu2; // აღწერე მტერი 2 x ადგილმდებარეობა int dusmaninYdeKonumu; // აღწერეთ მტრები და ადგილმდებარეობა

void dusmanAraci (int yer, int asama) {// მითითებული ადგილები მტრის ფორმებისთვის

თუ (იერ == 1) {// თუ ადგილმდებარეობა = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // მტრის ფორმის დახატვა} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// თუ ჩვენ წარუმატებელი ვართ, თამაში დასრულდება

ხოლო (1) {დაგვიანება (100); // დაელოდეთ 1 მილიწამს lcd.clrScr (); // ეკრანის გასუფთავება lcd.setFont (SmallFont); // შრიფტის დაყენება lcd.print ("GAME OVER", CENTER, 20); // დაბეჭდე lcd.update (); // ეკრანის განახლება}}

void setup () {pinMode (BL, OUTPUT); // განათების უკან დაყენება გამომავალი lcd. InitLCD (); // LCD ეკრანის დაყენება lcd.setContrast (55); // კონტრასტის დაყენება (ამუნდი 0 -დან 127 -მდე) Serial.begin (9600); // სერიული კომუნიკაციის დაწყება}

ბათილი მარყუჟი () {

analogWrite (BL, 200);

// თამაშის ეკრანის დაყენება lcd.drawRect (0, 0, 47, 47); // ჩვენ ვხატავთ ოთხკუთხედს lcd.setFont (SmallFont); // შრიფტის დაყენება lcd.print ("skor", 53, 0); // printf ანგარიში lcd.setFont (საშუალო ნომრები); // შრიფტის დაყენება lcd.printNumI (skor, 59, 7); // მიიღეთ ქულა lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // ბეჭდვის სიჩქარე lcd.setFont (საშუალო ნომრები); lcd.printNumI (hiz, 59, 32); // მიიღეთ სიჩქარე lcd.update (); // განახლება

// დააყენეთ ჯოისტიკის ადგილმდებარეობა 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 და კონტროლი არის ჭეშმარიტი პოზიციონი ++; // მდებარეობის გაზრდა ეს ნიშნავს ფორმის გადატანას მარჯვნივ kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // x მდგომარეობის შესასწავლად // დააყენეთ ჩვენი ფორმის ადგილმდებარეობა lcd.clrScr (); // ეკრანის გასუფთავება if (პოზიციონი == 1) {// თუ ადგილმდებარეობა = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // დახაზეთ ჩვენი გემი თუ (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

თუ (პოზიციონი == 3) {

lcd.drawBitmap (34, 37, არაკი, 12, 8);}

თუ (dusmanOldu) {// თუ მტრის ფორმა მკვდარია, შეამოწმეთ ისინი მკვდარია

dusmanKonumu1 = პოზიციონი; // პირველი მტრის ფორმის დახატვა dusmanKonumu2 = შემთხვევითი (0, 4); // დახაზეთ მტრის სხვა ფორმა სადმე dusmaninYdeKonumu = 0; // მოიყვანე მტერი ზემოდან dusmanOldu = false;} // მტერი ხელახლა იქმნება ისე, რომ ისინი არ არიან მკვდარი dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // დახაზეთ მტრის პირველი ფორმა და მიიღეთ იგი ზემოდან ქვემოდან dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // დახაზეთ მეორე მტრის ფორმა და მიიღეთ იგი ზემოდან ქვემოდან თუ (dusmaninYdeKonumu> 22 && (((dusmanKonumu1 == პოზიციონი) || (dusmanKonumu2 == პოზიციონი))) {// თუ ჩვენი ფორმა შეეხო მტრის ფორმებს oyunBitti ();} // თამაში დასრულებულია, თუ (dusmaninYdeKonumu> 40) {// თუ ჩვენი ფორმა გაქცევა მტრებისგან dusmanOldu = true; // მოკლეთ მტრის ფორმები skor ++;} // გაზარდეთ ქულა სათითაოდ // გაზარდეთ სიჩქარე ქულის მიხედვით if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; დაგვიანება (40); }}

ნაბიჯი 4: კოდი BITMAP

გარდა ამისა, თქვენ უნდა შეიტანოთ bitmap გრაფიკა ფორმებისთვის. ეს უნდა იყოს.c ფაილი და იგივე სახელი კოდის სახელით. ასევე, ის უნდა იყოს ერთსა და იმავე ფაილში.

// ---------------------------------------------------- ------------------------------ // ფაილი გენერირებული LCD ასისტენტის მიერ // https://en.radzio.dxp.pl /bitmap_converter/// ------------------------------------------------- ------------------------------------- #მოიცავს // მოიცავს პროგრამის ფუნქციისთვის

const unsigned char arac PROGMEM = {// ჩვენი ფორმის ბიტმაპი

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

const unsigned char dusman_araci PROGMEM = {// მტრის გემის ბიტმაპი

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

ნაბიჯი 5: მადლობა ნახვისთვის

მადლობა ნახვისთვის
მადლობა ნახვისთვის

სანამ დავიწყებდი ჩემი პროექტების გაზიარებას, დაშიფრული მქონდა თურქული სიტყვები, ასე რომ მე არ შემეძლო ყველა სიტყვის ინგლისურად თარგმნა. აქ არის სიტყვების თარგმანი, რომლებიც მე ვიყენებ ამ პროექტს, Oyun = თამაში

არაკი = ფორმა

დუსმანი = მტერი

კონტროლი = კონტროლი

კონუმი, იერ = მდებარეობა

თამაშის Bitti = თამაში დასრულდა

სკორი = ანგარიში

Hiz = სიჩქარე

გირჩევთ: