Mục lục:

Floppy Bird: 3 bước
Floppy Bird: 3 bước

Video: Floppy Bird: 3 bước

Video: Floppy Bird: 3 bước
Video: 5 bước tạo trò chơi với Scratch - Trò chơi Flappy Bird 2024, Tháng mười một
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Hôm nay chúng ta sẽ làm một trò chơi bằng màn hình TFT LCD. Đây trông giống như một trò chơi thực sự phổ biến và rất nhiều người vẫn chơi trò chơi này. Trò chơi có tên là Flappy Bird nhưng trò chơi này có một chút khác biệt vì giao diện người dùng cũng như cách thức hoạt động của trò chơi cũng khác. Tôi gọi trò chơi này là Floppy Bird vì điều này có thể dẫn đến vấn đề bản quyền. Tuy nhiên, đó là một trò chơi thực sự thú vị và rất dễ thực hiện. Tôi đã đưa ra hướng dẫn này sẽ cho phép bạn tạo ra trò chơi hoàn chỉnh và làm cho nó hoạt động như tôi đã làm. Nếu bạn có bất kỳ câu hỏi nào thì hãy bình luận xuống bên dưới và mình sẽ cố gắng trả lời những câu hỏi này nhanh nhất có thể.

Quân nhu

- Arduino Mega 2560 và cáp

- Lá chắn Arduino Mega

- Arduino TFT LCD Tương thích với Arduino Mega 2560

- Thẻ SD

Bước 1: Lắp ráp màn hình TFT LCD

Lắp ráp màn hình TFT LCD
Lắp ráp màn hình TFT LCD

Bây giờ, chúng ta có thể bắt đầu lắp ráp màn hình TFT LCD. Chúng tôi sẽ kết nối TFT LCD với tấm chắn, vì vậy trước tiên hãy lấy TFT LCD và căn chỉnh nó về cơ bản với các chân trên tấm chắn. Khi bạn đã căn chỉnh các chân, hãy đẩy TFT LCD xuống để nó khớp vào vị trí. Khi tất cả các đầu ghim nằm trong tấm chắn và bạn không thể nhìn thấy các đầu ghim, đó là khi bạn biết rằng màn hình TFT LCD đã được kết nối đúng cách. Tiếp theo, chúng ta có thể cắm tấm chắn vào Arduino Mega 2560. Căn chỉnh các chân của tấm chắn trên Arduino Mega và cắm nó vào. Khi tất cả các đầu ghim ở trong Arduino Mega và bạn không thể nhìn thấy các đầu ghim, đó là khi bạn biết rằng màn hình TFT LCD được kết nối đúng cách và sẵn sàng bật nguồn. Cắm Arduino vào xem bạn đã kết nối LCD đúng cách chưa, nếu LCD bật và màn hình trắng thì xin chúc mừng, bạn đã kết nối thành công với TFT LCD và bây giờ nó đã sẵn sàng được lập trình. Cuối cùng, chúng ta phải làm một việc, đó là kết nối thẻ SD trên màn hình LCD. Ở mặt sau của màn hình TFT LCD có một khe cắm thẻ SD, nơi bạn có thể chỉ cần cắm thẻ SD vào. Do đó, chỉ cần cắm vào là xong.

Bước 2: Lập trình màn hình TFT LCD

Lập trình màn hình TFT LCD
Lập trình màn hình TFT LCD

Bây giờ, chúng ta sẽ lập trình màn hình LCD để nó chạy trò chơi và chúng ta có thể chơi nó. Dưới đây là mã mà bạn phải biên dịch và tải lên bằng Arduino IDE.

Các vấn đề bạn có thể gặp phải:

Thay đổi các thông số của màn hình TFT LCD theo kiểu bạn có.

HOÀN THÀNH MÃ:

#include #include #include

// ==== Tạo đối tượng

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Các thông số phải được điều chỉnh theo mô hình Màn hình / Lá chắn URTouch myTouch (6, 5, 4, 3, 2);

// ==== Xác định Phông chữ

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;

extern không dấu int bird01 [0x41A]; // Bản đồ hình con chim

int x, y; // Các biến cho tọa độ nơi màn hình đã được nhấn

// Chim mềm

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int điểm = 0; int lastSpeedUpScore = 0; int highScore; boolean screenPressed = false; boolean gameStarted = false;

void setup () {

// Khởi tạo hiển thị myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPre precision (PREC_MEDIUM); điểm cao nhất = EEPROM.read (0); // Đọc điểm cao nhất từ EEPROM startateGame (); // Bắt đầu trò chơi}

void loop () {

xP = xP-movingRate; // tọa độ xP - x của pilars; phạm vi: 319 - (-51) drawPilars (xP, yP); // Vẽ các trụ // tọa độ yB - y của con chim phụ thuộc vào giá trị của biến fallRate yB + = fallRateInt; FallRate = fallRate + 0,4; // Mỗi lần điều chỉnh tốc độ rơi tăng lên để chúng ta có thể ảnh hưởng của gia tốc / trọng lực fallRateInt = int (fallRate); // Kiểm tra va chạm if (yB> = 180 || yB <= 0) {// top và bottom gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// trụ trên gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// trụ dưới gameOver (); } // Vẽ con chim drawBird (yB);

// Sau khi cột đi qua màn hình

if (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) {// Vẽ hình chữ nhật màu xanh lam bên phải của trụ myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x + 51, 0, x + 60, y); // Vẽ trụ myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x + 49, 1, x + 1, y-1); // Vẽ khung màu đen của trụ myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x + 50, 0, x, y); // Vẽ hình chữ nhật màu xanh bên trái của trụ myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Cột dưới cùng

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); } // Rút ra tỷ số myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (điểm, 100, 220); }

// ====== drawBird () - Hàm tùy chỉnh

void drawBird (int y) {// Vẽ con chim - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Vẽ các hình chữ nhật màu xanh bên trên và bên dưới con chim để xóa trạng thái previus myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y + 30, 85, y + 36); } // ======== gameOver () - Hàm tùy chỉnh void gameOver () {delay (3000); // 1 giây // Xóa màn hình và in văn bản myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Điểm:", 100, 80); myGLCD.printNumI (điểm, 200, 80); myGLCD.print ("Đang khởi động lại…", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); chậm trễ (1000); myGLCD.printNumI (1, CENTER, 150); chậm trễ (1000); // Ghi điểm cao nhất trong EEPROM if (score> ScoreScore) {mostScore = score; EEPROM.write (0, Điểm cao nhất); } // Đặt lại các biến thành giá trị vị trí bắt đầu xP = 319; yB = 50; FallRate = 0; điểm = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Khởi động lại trò chơi InitiateGame (); }

Bước 3: Đã xong

Xong!
Xong!

Chúng tôi đã tạo mạch và biên dịch mã. Bây giờ, chúng ta chỉ cần cắm mega Arduino và chơi trò chơi.

Ở đây, tôi có một liên kết đến một video cho biết cách hoạt động của trò chơi này và những việc cần làm để thiết lập nó:

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

Hãy cho tôi biết nếu bạn có bất kỳ vấn đề nào ở bên dưới.

Đề xuất: