Оглавление:

Floppy Bird: 3 шага
Floppy Bird: 3 шага

Видео: Floppy Bird: 3 шага

Видео: Floppy Bird: 3 шага
Видео: Я сделал игру Flappy Bird в 3D (Ж@ПА ГОРИТ И В 3D) 2024, Ноябрь
Anonim
Флоппи Птица
Флоппи Птица
Флоппи Птица
Флоппи Птица

Сегодня мы будем делать игру на TFT LCD. Это выглядело бы как игра, которая действительно популярна, и многие люди до сих пор в нее играют. Игра называется Flappy Bird, но эта игра немного отличается, потому что отличается пользовательский интерфейс, а также способ работы игры. Я назвал эту игру Floppy Bird, так как это может привести к проблемам с авторскими правами. Тем не менее, это действительно забавная игра, и ее легко сделать. Я сделал это инструктивным, что позволит вам сделать игру полностью и заставить ее работать так же, как и я. Если у вас есть какие-либо вопросы, прокомментируйте их ниже, и я постараюсь ответить на них как можно быстрее.

Запасы

- Arduino Mega 2560 и кабель

- Arduino Mega Shield

- ЖК-дисплей Arduino TFT, совместимый с Arduino Mega 2560

- SD Card

Шаг 1: Сборка ЖК-дисплея TFT

Сборка TFT LCD
Сборка TFT LCD

Теперь мы можем приступить к сборке TFT LCD. Мы подключим TFT LCD к экрану, поэтому сначала возьмите TFT LCD и выровняйте его по контактам на экране. После того, как вы выровняли контакты, нажмите на ЖК-дисплей TFT, чтобы он встал на место. Когда все головки булавок находятся в щите, и вы не видите их, тогда вы знаете, что ЖК-дисплей TFT подключен правильно. Затем мы можем подключить экран к Arduino Mega 2560. Совместите контакты экрана на Arduino Mega и подключите его. Когда все головки контактов находятся в Arduino Mega, и вы не можете видеть головки контактов, это когда вы знаете, что ЖК-экран TFT подключен правильно и готов к включению. Подключите Arduino, чтобы проверить, правильно ли вы подключили ЖК-дисплей, если ЖК-дисплей включается, а экран белый, то поздравляю, вы успешно подключили ЖК-дисплей TFT, и теперь он готов к программированию. Наконец, нам нужно подключить SD-карту к ЖК-дисплею. На задней панели TFT LCD есть слот для SD-карты, куда вы можете просто вставить SD-карту. Поэтому просто подключите его и готово.

Шаг 2: Программирование ЖК-дисплея TFT

Программирование ЖК-дисплея TFT
Программирование ЖК-дисплея TFT

Теперь мы запрограммируем ЖК-дисплей, чтобы он запускал игру, и мы могли играть в нее. Ниже приведен код, который необходимо скомпилировать и загрузить с помощью IDE Arduino.

Проблемы, которые могут возникнуть у вас:

Измените параметры ЖК-дисплея TFT в соответствии с вашей моделью.

ПОЛНЫЙ КОД:

#include #include #include

// ==== Создание объектов

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Параметры должны быть адаптированы к вашей модели дисплея / экрана 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 score = 0; int lastSpeedUpScore = 0; int highScore; логический screenPressed = false; логическое gameStarted = false;

void setup () {

// Запускаем отображение myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); highScore = EEPROM.read (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 () {delay (3000); // 1 секунда // Очищает экран и печатает текст myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print («ИГРА ЗАКОНЧЕНА», ЦЕНТР, 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> highScore) {highScore = score; EEPROM.write (0, высшая оценка); } // Сбрасывает переменные в значения начальной позиции xP = 319; yB = 50; fallRate = 0; оценка = 0; lastSpeedUpScore = 0; MovingRate = 3; gameStarted = false; // Перезапускаем игру initiateGame (); }

Шаг 3: Готово

Выполнено!
Выполнено!

Мы сделали схему и скомпилировали код. Теперь нам просто нужно подключить Arduino Mega и начать игру.

Здесь у меня есть ссылка на видео, в котором показано, как работает эта игра и что нужно сделать, чтобы ее настроить:

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

Дайте мне знать, если у вас возникнут проблемы ниже.

Рекомендуемые: