
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57


Днес ще правим игра с помощта на TFT LCD. Това би изглеждало като игра, която е наистина популярна и много хора все още играят тази игра. Играта се нарича Flappy Bird, но тази игра е малко по -различна, защото потребителският интерфейс е различен, както и начинът, по който играта работи. Нарекох тази игра Floppy Bird, тъй като това може да доведе до проблеми с авторските права. Независимо от това, това е наистина забавна игра и е лесна за правене. Направих тази инструкция, която ще ви позволи да направите играта напълно и да я накарате да работи както аз. Ако имате въпроси, моля, коментирайте по -долу и аз ще се опитам да отговоря на тези въпроси възможно най -бързо.
Консумативи
- Arduino Mega 2560 и кабел
- Arduino Mega Shield
- Arduino TFT LCD съвместим с Arduino Mega 2560
- SD карта
Стъпка 1: Сглобяване на 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

Сега ще програмираме LCD, така че да стартира играта и да можем да я играем. По -долу е кодът, който трябва да компилирате и качите с помощта на Arduino IDE.
Възможно е да имате проблеми:
Променете параметрите на TFT LCD в зависимост от модела, който имате.
ПЪЛЕН КОД:
#включи #включи #включи
// ==== Създаване на обекти
UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Параметрите трябва да се адаптират към вашия модел Display/Shield URTouch myTouch (6, 5, 4, 3, 2);
// ==== Дефиниране на шрифтове
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;
външен без знак int bird01 [0x41A]; // Растрова картина на птици
int x, y; // Променливи за координатите, където е натиснат дисплеят
// Floppy Bird
int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int резултат = 0; int lastSpeedUpScore = 0; int mostScore; boolean screenPressed = false; булева игра gameStarted = false;
void setup () {
// Иницииране на показване myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); mostScore = EEPROM.прочетено (0); // Прочетете най -високия резултат от EEPROM InitiateGame (); // Инициирайте играта}
void loop () {
xP = xP-movingRate; // xP - x координата на стълбовете; диапазон: 319 - (-51) drawPilars (xP, yP); // Изчертава стълбовете // yB - y координата на птицата, която зависи от стойността на променливата fallRate yB+= fallRateInt; fallRate = fallRate+0.4; // Всяка итерация увеличава скоростта на падане, така че да можем да постигнем ефекта от ускорението/ гравитацията fallRateInt = int (fallRate); // Проверява за сблъсък if (yB> = 180 || yB <= 0) {// отгоре и отдолу gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// gameOver () на горния стълб } 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) {// Рисува птицата - растерно изображение 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", ЦЕНТЪР, 40); myGLCD.print ("Резултат:", 100, 80); myGLCD.printNumI (оценка, 200, 80); myGLCD.print ("Рестартиране …", ЦЕНТЪР, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, ЦЕНТЪР, 150); забавяне (1000); myGLCD.printNumI (1, ЦЕНТЪР, 150); забавяне (1000); // Пише най -високия резултат в EEPROM if (score> mostScore) {mostScore = score; EEPROM.write (0, най -висок резултат); } // Нулира променливите до стойности на начална позиция xP = 319; yB = 50; fallRate = 0; резултат = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Рестартиране на играта initiateGame (); }
Стъпка 3: Готово

Направихме веригата и съставихме кода. Сега просто трябва да включим мега Arduino и да играем играта.
Тук имам връзка към видеоклип, който показва как работи тази игра и какво да правя, за да я настроя:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Кажете ми, ако имате някакви проблеми по -долу.
Препоръчано:
Flappy Bird с мускулна енергия: 9 стъпки (със снимки)

Flappy Bird с мускулна енергия: Може би си спомняте, когато Flappy Bird завладя света с щурм, като в крайна сметка стана толкова популярен, че създателят го премахна от магазините за приложения, за да избегне нежелана публичност. Това е Flappy Bird, каквато никога досега не сте виждали; чрез комбиниране на няколко готови композиции
Говорители на Bird House: 5 стъпки

Говорещи в Bird House: Моето семейство прекарва много време в двора, гледайки филми, правейки партита и се наслаждавайки на деня. Оказа се, че много влача радиостанции и високоговорители навън. Разбира се, има по -добро решение. Целта ми беше да имам постоянна външна система с
Animatronic Bird: 3 стъпки

Animatronic Bird: Този аниматоник първоначално е бил TSA (Technology Student Association) проект. Трябваше да направим аниматроник и да обясним как работи, показвайки контролната електроника
Apple II Floppy Hackintosh I7-7700 3.6Ghz: 7 стъпки

Apple II Floppy Hackintosh I7-7700 3.6Ghz: Това първо изображение е за да ви даде препратка към девствен диск (с оригиналното лого на дъгата на Apple), моят има малко повече пробег. Второто изображение е вътрешността, забравих да направя снимка, преди да я демонтирам, с любезното съдействие на Goog
Спасяване на Floppy Drive: 3 стъпки

Floppy Drive Salvage: Пиша това, защото исках да започна да се занимавам със стъпкови двигатели и знаех, че имам такъв в неизползваното си флопи устройство. Наскоро прочетох статия за спасяването на части от мишката