Სარჩევი:

ფლოპი ფრინველი: 3 ნაბიჯი
ფლოპი ფრინველი: 3 ნაბიჯი

ვიდეო: ფლოპი ფრინველი: 3 ნაბიჯი

ვიდეო: ფლოპი ფრინველი: 3 ნაბიჯი
ვიდეო: კახი კალაძე დატროლეს 😀🤣🤣 2024, დეკემბერი
Anonim
ფლოპი ფრინველი
ფლოპი ფრინველი
ფლოპი ჩიტი
ფლოპი ჩიტი

დღეს ჩვენ გავაკეთებთ თამაშს TFT LCD– ის გამოყენებით. ეს ჰგავს თამაშს, რომელიც მართლაც პოპულარულია და ბევრი ადამიანი კვლავ თამაშობს ამ თამაშს. თამაშს ჰქვია Flappy Bird, მაგრამ ეს თამაში ცოტა განსხვავებულია, რადგან UI განსხვავდება ისევე როგორც თამაშის სამუშაოები. მე დავარქვი ამ თამაშს Floppy Bird რადგან ამან შეიძლება გამოიწვიოს საავტორო უფლებების პრობლემები. მიუხედავად ამისა, ეს მართლაც სახალისო თამაშია და მისი გაკეთება ადვილია. მე გავაკეთე ეს სასწავლო, რაც საშუალებას მოგცემთ გახადოთ თამაში სრულად და გახადოთ ის ისე, როგორც მე გავაკეთე. თუ თქვენ გაქვთ რაიმე შეკითხვა, გთხოვთ დაწეროთ ქვემოთ და მე შევეცდები ვუპასუხო ამ კითხვებს რაც შეიძლება სწრაფად.

მარაგები

- Arduino Mega 2560 და კაბელი

- არდუინო მეგა ფარი

- Arduino TFT LCD თავსებადია Arduino Mega 2560 -თან

- SD ბარათი

ნაბიჯი 1: TFT LCD აწყობა

TFT LCD აწყობა
TFT LCD აწყობა

ახლა ჩვენ შეგვიძლია დავიწყოთ TFT LCD აწყობა. ჩვენ დავაკავშირებთ TFT LCD ფარს, ასე რომ, პირველ რიგში, აიღეთ TFT LCD და ძირითადად გაათანაბრეთ იგი ფარის ქინძისთავებთან. მას შემდეგ რაც ქინძისთავები გაათანაბრეთ, გადააგდეთ TFT LCD ქვემოთ, რათა ის მოთავსდეს თავის ადგილას. როდესაც ყველა საყრდენი თავი არის ფარში და ვერ ხედავთ პინის თავებს, სწორედ მაშინ იცით, რომ TFT LCD სათანადოდ არის დაკავშირებული. შემდეგი, ჩვენ შეგვიძლია შევაერთოთ ფარი Arduino Mega 2560 -ში. გასწორეთ ფარის ქინძისთავები Arduino Mega– ზე და შეაერთეთ იგი. როდესაც ყველა საყრდენი თავი არის Arduino Mega– ში და თქვენ ვერ ხედავთ ქინძისთავებს, ეს არის როდესაც იცით, რომ TFT LCD სათანადოდ არის დაკავშირებული და ის მზად არის ჩართვისთვის. შეაერთეთ Arduino, რომ ნახოთ სწორად დაუკავშირეთ LCD, თუ LCD ჩართულია და ეკრანი თეთრია მაშინ გილოცავთ, თქვენ წარმატებით დაუკავშირეთ TFT LCD და ახლა ის მზადაა დასაპროგრამებლად. დაბოლოს, ჩვენ გვაქვს ერთი რამ, რაც არის SD ბარათის დაკავშირება LCD– ში. TFT LCD– ის უკანა მხარეს არის SD ბარათის სლოტი, სადაც შეგიძლიათ უბრალოდ ჩართოთ SD ბარათი. ამიტომ, უბრალოდ შეაერთეთ და დასრულდა.

ნაბიჯი 2: TFT LCD პროგრამირება

TFT LCD პროგრამირება
TFT LCD პროგრამირება

ახლა ჩვენ დავპროგრამებთ LCD- ს, რომ ის თამაშს მართავს და ჩვენ შეგვიძლია მისი თამაში. ქვემოთ მოცემულია კოდი, რომელიც უნდა შეადგინოთ და ატვირთოთ Arduino IDE გამოყენებით.

პრობლემები, რომლებიც შეიძლება გქონდეთ:

შეცვალეთ TFT LCD პარამეტრები თქვენი მოდელის მიხედვით.

სრული კოდი:

#ჩართეთ #ჩართეთ #ჩართეთ

// ==== ობიექტების შექმნა

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // პარამეტრები უნდა იყოს მორგებული თქვენს ეკრანზე/ფარის მოდელზე URTouch myTouch (6, 5, 4, 3, 2);

// ==== შრიფტების განსაზღვრა

გარე uint8_t SmallFont ; გარე uint8_t BigFont ; გარე uint8_t SevenSegNumFont ;

გარეგანი ხელმოუწერელი int bird01 [0x41A]; // ფრინველის ბიტმაპი

int x, y; // ცვლადი კოორდინატებისათვის, სადაც ეკრანი დაპრესილია

// ფლოპი ფრინველი

int xP = 319; int yP = 100; int yB = 50; int მოძრაობის მაჩვენებელი = 3; int fallRateInt = 0; float fallRate = 0; int ქულა = 0; int lastSpeedUpScore = 0; int უმაღლესი ქულა; ლოგიკური ეკრანიპრესილი = ყალბი; ლოგიკური თამაში დაწყებული = ყალბი;

void setup () {

// myGLCD- ის ჩვენების ინიცირება. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); უმაღლესი ქულა = EEPROM.read (0); // წაიკითხეთ უმაღლესი ქულა EEPROM initateGame– დან (); // თამაშის დაწყება}

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

xP = xP-MovingRate; // xP - სვეტების x კოორდინატი; დიაპაზონი: 319 - (-51) drawPilars (xP, yP); // ხატავს სვეტებს // yB - y ფრინველის კოორდინატი, რომელიც დამოკიდებულია ვარდნის ცვლადის მნიშვნელობაზე yB+= fallRateInt; fallRate = დაცემა+0,4; // ყოველი ინექცია დაცემის მაჩვენებელი იზრდება ისე, რომ ჩვენ შევძლოთ აჩქარების/ სიმძიმის ეფექტის დაცემა FallRateInt = int (fallRate); // ამოწმებს შეჯახების შესახებ თუ (yB> = 180 || yB <= 0) {// ზედა და ქვედა თამაშიOver (); } if ((xP = 5) && (yB <= yP-2)) {// ზედა სვეტის თამაშიOver (); } if ((xP = 5) && (yB> = yP+60)) {// ქვედა სვეტი gameOver (); } // ხატავს ფრინველის drawBird (yB);

// სვეტის ეკრანის გავლის შემდეგ

თუ (xPRESET = 250) && (x = 0) && (y = 0) && (x = 30) && (y = 270) {myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, 0, x, y-1); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, 0, x-1, y);

myGLCD.setColor (0, 200, 20);

myGLCD.fillRect (318, y+81, x, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, y+80, x-1, 204); } else if (x <= 268) {// ხატავს ლურჯ ოთხკუთხედს სვეტის მარჯვნივ myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // ხატავს სვეტს myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // ხატავს სვეტის myGLCD.setColor შავ ჩარჩოს (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // დახაზავს სვეტის მარცხნივ myGLCD.setColor ლურჯ მართკუთხედს (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// ქვედა სვეტი

myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, y+80, x+60, 204); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, y+81, x+1, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, y+80, x, 204); myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, y+80, x-3, 204); } // დახაზავს ქულა myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (ქულა, 100, 220); }

// ====== drawBird () - მორგებული ფუნქცია

void drawBird (int y) {// ხატავს ფრინველს - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // ხატავს ლურჯ ოთხკუთხედებს ფრინველის ზემოთ და ქვემოთ, რათა გაასუფთაოს მისი წინა მდგომარეობა myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - პერსონალური ფუნქცია void gameOver () {დაგვიანებით (3000); // 1 წამი // ასუფთავებს ეკრანს და ბეჭდავს ტექსტს myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("ქულა:", 100, 80); myGLCD.printNumI (ქულა, 200, 80); myGLCD.print ("გადატვირთვა …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); დაგვიანება (1000); myGLCD.printNumI (1, CENTER, 150); დაგვიანება (1000); // წერს ყველაზე მაღალ ქულას EEPROM– ში, თუ (ქულა> უმაღლესი ქულა) {უმაღლესი ქულა = ქულა; EEPROM.write (0, უმაღლესი ქულა); } // აღადგენს ცვლადებს პოზიციის მნიშვნელობების დასაწყებად xP = 319; yB = 50; fallRate = 0; ანგარიში = 0; lastSpeedUpScore = 0; მოძრავი შეფასება = 3; gameStarted = ყალბი; // გადატვირთეთ თამაში initateGame (); }

ნაბიჯი 3: შესრულებულია

Შესრულებულია!
Შესრულებულია!

ჩვენ შევქმენით წრე და შევადგინეთ კოდი. ახლა ჩვენ უბრალოდ უნდა ჩავრთოთ Arduino მეგა და ვითამაშოთ თამაში.

აქ, მე მაქვს ვიდეოს ბმული, რომელიც აჩვენებს, თუ როგორ მუშაობს ეს თამაში და რა უნდა გააკეთოს მის დასაყენებლად:

drive.google.com/file/d/18hKQ8v2w2OkM_std-…

ნება მომეცით ვიცი თუ რაიმე პრობლემა გაქვთ ქვემოთ.

გირჩევთ: