Mục lục:
Video: Floppy Bird: 3 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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
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
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
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:
Flappy Bird hỗ trợ cơ bắp: 9 bước (có hình ảnh)
Muscle Powered Flappy Bird: Bạn có thể nhớ khi Flappy Bird làm mưa làm gió trên toàn thế giới, cuối cùng trở nên phổ biến đến mức người sáng tạo đã xóa nó khỏi các cửa hàng ứng dụng để tránh bị công khai không mong muốn. Đây là Flappy Bird mà bạn chưa từng thấy trước đây; bằng cách kết hợp một vài sản phẩm ngoài giá sách
Robotic Bird: 8 bước
Robotic Bird: Dự án này hướng dẫn bạn cách tạo ra một con chim robot uống nước
Bird Feeder Monitor V2.0: 12 bước (có hình ảnh)
Bird Feeder Monitor V2.0: Đây là một dự án theo dõi, chụp ảnh và ghi lại số lượng và thời gian của những con chim đến thăm máy cho chim của chúng tôi. Nhiều Raspberry Pi (RPi) đã được sử dụng cho dự án này. Một chiếc được sử dụng làm cảm biến cảm ứng điện dung, Adafruit CAP1188, để phát hiện, cảm biến lại
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
Apple Floppy Amp: 8 bước (có hình ảnh)
Apple Floppy Amp: Đã tìm thấy phiên bản cũ 5,25 " ổ đĩa mềm tại một cửa hàng tiết kiệm với giá $ 5,99. Nó gợi nhớ cho tôi về thời thơ ấu của Apple IIe, vì vậy tôi đã mua nó mà không biết mình sẽ làm gì với nó. Tôi là một fan hâm mộ của chủ nghĩa lạc hậu (Shameless plug: xem hướng dẫn về hi-fi retro) và