Mục lục:

Phiên bản trò chơi Cuộc đua không gian Arduino _1: 5 bước
Phiên bản trò chơi Cuộc đua không gian Arduino _1: 5 bước

Video: Phiên bản trò chơi Cuộc đua không gian Arduino _1: 5 bước

Video: Phiên bản trò chơi Cuộc đua không gian Arduino _1: 5 bước
Video: Top 3 tựa Game NẶNG NHẤT! Nhiều máy tải về xong là đứt luôn. 🥲 2024, Tháng bảy
Anonim
Image
Image

Chào các bạn. Hôm nay tôi ganna chỉ cho bạn cách bạn có thể tạo Trò chơi Đua xe trong không gian bằng màn hình LCD5110 và biểu tượng vui nhộn. Hãy xem các bước…

Bước 1: NHU CẦU

LƯỢC ĐỒ
LƯỢC ĐỒ

Đây là danh sách các phần mà tôi đã sử dụng để thực hiện dự án này:

  • Arduino UNO
  • Mô-đun cần điều khiển
  • Dây nhảy (nam sang nam và nam sang nữ)
  • Breadboard

Bước 2: SCHEMA

VCC -> Arduino 5V

BL -> Chân 3 của Arduino

GND -> Arduino GND

CLK (SCLK) -> Chân 8 của Arduino

DIN (MOSI) -> Chân 9 của Arduino

DC -> chân 10 của Arduino

CE hoặc CS -> Chân 12 của Arduino

RST (ĐẶT LẠI) -> Chân 11 của Arduino

Bước 3: MÃ

MÃ SỐ
MÃ SỐ

Mã có giải thích về các chức năng mã. Bạn sẽ dễ dàng hiểu nó. Nếu bạn có một vấn đề, bạn có thể liên hệ với tôi.

#bao gồm

LCD5110 màn hình LCD (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)

int BL = 3;

extern uint8_t SmallFont ; // mô tả các phông chữ extern uint8_t MediumNumbers ; extern uint8_t arac ; // mô tả hình dạng của chúng ta extern uint8_t dusman_araci ; // mô tả hình dạng kẻ thù const int xpin = A0; // cần điều khiển x pin char pozisyon = 2; // mô tả vị trí, vị trí bắt đầu hình dạng của chúng ta 2 boolean kontrol = true; boolean dusmanOldu = true; int skor = 0; int hiz = 0; int dusmanKonumu1; // mô tả vị trí của Địch1 x int dusmanKonumu2; // mô tả vị trí của Địch2 x int dusmaninYdeKonumu; // mô tả vị trí y của kẻ thù

void dusmanAraci (int yer, int asama) {// đặt vị trí cho hình kẻ thù

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // vẽ hình kẻ thù} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// nếu chúng tôi thất bại, trò chơi kết thúc

while (1) {delay (100); // đợi 1 mili giây lcd.clrScr (); // xóa màn hình lcd.setFont (SmallFont); // đặt phông chữ lcd.print ("GAME OVER", CENTER, 20); // in lcd.update (); // cập nhật màn hình}}

void setup () {pinMode (BL, OUTPUT); // thiết lập đèn nền Output lcd. InitLCD (); // khởi tạo màn hình lcd lcd.setContrast (55); // đặt độ tương phản (amound 0 đến 127) Serial.begin (9600); // bắt đầu kết hợp nối tiếp}

void loop () {

analogWrite (BL, 200);

// đặt màn hình trò chơi lcd.drawRect (0, 0, 47, 47); // ta vẽ hình chữ nhật lcd.setFont (SmallFont); // đặt phông chữ lcd.print ("skor", 53, 0); // điểm printf lcd.setFont (Số trung bình); // đặt phông chữ lcd.printNumI (skor, 59, 7); // lấy điểm lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // tốc độ in lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // lấy tốc độ lcd.update (); //cập nhật

// thiết lập vị trí của joyistick int x = analogRead (xpin); if (x <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3, x state> 600 và điều khiển là true pozisyon ++; // tăng vị trí có nghĩa là di chuyển hình dạng sang bên phải kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // cho trạng thái học x // đặt vị trí hình dạng của chúng ta lcd.clrScr (); // xóa màn hình if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // vẽ con tàu của chúng ta if (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

nếu (pozisyon == 3) {

lcd.drawBitmap (34, 37, arac, 12, 8);}

if (dusmanOldu) {// nếu hình dạng kẻ thù đã chết, hãy kiểm tra xem chúng đã chết chưa

dusmanKonumu1 = pozisyon; // vẽ hình kẻ thù đầu tiên dusmanKonumu2 = random (0, 4); // vẽ hình kẻ thù khác ở đâu đó dusmaninYdeKonumu = 0; // đưa kẻ thù từ trên xuống dusmanOldu = false;} // kẻ thù được tạo lại để chúng không chết dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // vẽ hình kẻ thù đầu tiên và lấy nó từ trên xuống dưới dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // vẽ hình kẻ thù thứ hai và lấy nó từ trên xuống nếu (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// nếu hình dạng của chúng ta chạm vào hình kẻ thù oyunBitti ();} // trò chơi kết thúc if (dusmaninYdeKonumu> 40) {// nếu hình dạng của chúng ta thoát khỏi kẻ thù dusmanOldu = true; // giết kẻ thù hình dạng skor ++;} // tăng từng điểm một // tăng tốc độ theo điểm if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; chậm trễ (40); }}

Bước 4: MÃ BITMAP

Hơn nữa, bạn phải bao gồm đồ họa bitmap cho hình dạng, nó phải là một tệp.c và cùng tên với tên mã, ngoài ra, nó phải nằm trong cùng một tệp.

// ------------------------------------------------ ------------------------------ // Tệp được tạo bởi LCD Assistant // https://en.radzio.dxp.pl / bitmap_converter / // --------------------------------------------- --------------------------------- #include // include for progmem function

const unsigned char arac PROGMEM = {// bitmap hình dạng của chúng tôi

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

const unsigned char dusman_araci PROGMEM = {// bitmap tàu địch

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

Bước 5: CẢM ƠN ĐÃ XEM

CẢM ƠN ĐÃ XEM
CẢM ƠN ĐÃ XEM

Trước khi ı bắt đầu chia sẻ các dự án của mình, ı đã viết mã bằng các từ tiếng Thổ Nhĩ Kỳ nên tôi không thể tìm mọi từ sang tiếng Anh. Đây là bản dịch các từ mà tôi sử dụng dự án này, Oyun = Trò chơi

Arac = Hình dạng

Dusman = Kẻ thù

kontrol = kiểm soát

Konum, Yer = Vị trí

Oyun Bitti = Trò chơi kết thúc

Skor = Điểm

Hiz = Tốc độ

Đề xuất: