2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Nè mọi người. Trước phiên bản trò chơi này, ı đã xuất bản phiên bản đầu tiên của trò chơi. Hôm nay, ı sẽ giới thiệu cho các bạn Game Cuộc Đua Không Gian phiên bản 2. Hãy cùng xem các bước…
Bước 1: BỘ PHẬN
Đâ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ã 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, cin, dc,, rst, ce)
boolean kontrol = true;
boolean dusmanoldu = true;
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 dusmanAraci ; // mô tả hình dạng kẻ thù const int xpin = A0; // cần điều khiển x pin char pozisyon = 3; // mô tả vị trí, vị trí bắt đầu hình dạng của chúng ta 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // mô tả vị trí của Địch1 x int dusmankonum2; // mô tả vị trí của Địch2 x int dusmankonum3; // mô tả vị trí của Địch3 x int dusmankonum4; // mô tả vị trí của Địch4 x int dusmankonum5; // mô tả vị trí của Địch5 x int dusmaninYdekonumu;
void oyunEkrani () {// thiết lập màn hình trò chơi
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // ta vẽ hình chữ nhật lcd.setFont (SmallFont); // đặt phông chữ lcd.print ("skor", 57, 1); // in điểm lcd.print ("hiz", 60, 24); // tốc độ in lcd.setFont (MediumNumbers); // đặt phông chữ lcd.printNumI (skor, 55, 8); // lấy điểm lcd.printNumI (hiz, 63, 32); // lấy tốc độ lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// đặt vị trí cho hình kẻ thù
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 vẽ hình kẻ thù ở vị trí này if (yer == 2) {lcd.drawBitmap (10, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 3) {lcd.drawBitmap (18, asama, dusmanAraci, 7, 7); lcd.update (); } if (yer == 4) {lcd.drawBitmap (26, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 5) {lcd.drawBitmap (34, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 6) {lcd.drawBitmap (42, asama, dusmanAraci, 7, 7); lcd.update ();}}
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 (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTER, 8); // in game qua lcd.print ("skorunuz =", 3, 30); // in điểm của bạn lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // lấy điểm cuối cùng lcd.update (); }}
void setup () {
pinMode (BL, OUTPUT); // thiết lập lại đèn Output pinMode (xpin, INPUT); // đặt chân x làm đầu vào 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, 350); oyunEkrani ();
// joyistic durumu… // đặt vị trí của joyistick…
int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 6 && 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 (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // trạng thái vị trí… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // vẽ con tàu của chúng ta if (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 6) {lcd.drawBitmap (42, 41, arac, 7, 7); lcd.update ();}
if (dusmanoldu) {// nếu hình dạng kẻ thù đã chết, hãy kiểm tra xem chúng đã chết chưa
dusmankonum1 = pozisyon; // vẽ hình kẻ thù đầu tiên dusmankonum2 = random (0, 6); // vẽ hình kẻ thù khác ở đâu đó dusmankonum3 = random (0, 6); dusmankonum4 = ngẫu nhiên (0, 6); dusmankonum5 = ngẫu nhiên (0, 6); dusmaninYdekonumu = 0; // đưa kẻ thù từ trên xuống dusmanoldu = false;} // kẻ thù được tái tạo để chúng không chết
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // vẽ hình kẻ thù đầu tiên và lấy nó từ trên xuống dưới
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // vẽ hình kẻ thù thứ hai và lấy nó từ trên xuống dưới dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == 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 rồi }
if (dusmaninYdekonumu> 42) {// 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}
// skora gore hizi Artiriyoruz // tăng tốc độ theo điểm số
if (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; chậm trễ (5); }
}
Bước 4: MÃ BITMAP
Hơn nữa, bạn phải bao gồm đồ họa bitmap cho các hình dạng. Nó phải là tệp.c.
#include // include cho hàm progmem
const unsigned char arac PROGMEM = {// bitmap hình dạng của chúng tôi
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// bitmap tàu địch
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Bước 5: Cảm ơn bạn đã xem
Ý nghĩa của một số từ:
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 độ