Съдържание:

Floppy Bird: 3 стъпки
Floppy Bird: 3 стъпки

Видео: Floppy Bird: 3 стъпки

Видео: Floppy Bird: 3 стъпки
Видео: Scratch 3.0 Tutorial: How to Make a Flappy Bird Game in Scratch (Part 3) 2024, Юли
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Днес ще правим игра с помощта на 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 и основно го подравнете с щифтовете на щита. След като подравните щифтовете, натиснете 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); // Параметрите трябва да се адаптират към вашия модел 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-…

Кажете ми, ако имате някакви проблеми по -долу.

Препоръчано: