Isi kandungan:

Arduino Space Race Game Versi _1: 5 Langkah
Arduino Space Race Game Versi _1: 5 Langkah

Video: Arduino Space Race Game Versi _1: 5 Langkah

Video: Arduino Space Race Game Versi _1: 5 Langkah
Video: Amazing arduino project 2024, November
Anonim
Image
Image

Hai kawan-kawan. Hari ini saya ingin menunjukkan kepada anda bagaimana anda dapat membuat Space Race Game dengan layar LCD5110 dan kegembiraan. Mari lihat langkah-langkahnya…

Langkah 1: KEPERLUAN

SKIM
SKIM

Berikut adalah senarai bahagian yang saya gunakan untuk membuat projek ini:

  • Arduino UNO
  • Modul Joystick
  • Jumper Wires (lelaki hingga lelaki dan lelaki hingga perempuan)
  • Papan roti

Langkah 2: SKIM

VCC -> Arduino 5V

BL -> Pin Arduino 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Pin Arduino 9

DC -> Pin Arduino 10

CE atau CS -> Pin Arduino 12

RST (RESET) -> Arduino pin 11

Langkah 3: KOD

KOD
KOD

Kod tersebut mempunyai penjelasan mengenai fungsi kod. Anda akan mudah memahaminya. Sekiranya anda mempunyai masalah, anda boleh menghubungi saya.

#sertakan

LCD5110 lcd (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)

int BL = 3;

luaran uint8_t SmallFont ; // terangkan fon luaran uint8_t MediumNumbers ; luaran uint8_t arac ; // terangkan bentuk kami luaran uint8_t dusman_araci ; // menghuraikan bentuk musuh const int xpin = A0; // kayu bedik x pin char pozisyon = 2; // terangkan lokasi, bentuk kami mulai lokasi 2 boolean kontrol = true; boolean dusmanOldu = benar; int skor = 0; int hiz = 0; int dusmanKonumu1; // terangkan musuh1 x lokasi int dusmanKonumu2; // terangkan musuh2 x lokasi int dusmaninYdeKonumu; // menerangkan musuh dan lokasi

batal dusmanAraci (int yer, int asama) {// tetapkan lokasi untuk bentuk musuh

jika (yer == 1) {// jika lokasi = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // lukis bentuk musuh} jika (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } jika (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

batal oyunBitti () {// jika kita gagal, permainan akan berakhir

sementara (1) {kelewatan (100); // tunggu 1 milisaat lcd.clrScr (); // kosongkan skrin lcd.setFont (SmallFont); // tetapkan font lcd.print ("GAME OVER", PUSAT, 20); // cetak lcd.update (); // kemas kini skrin}}

batal persediaan () {pinMode (BL, OUTPUT); // tetapkan lampu belakang Output lcd. InitLCD (); // masukkan skrin lcd lcd.setContrast (55); // tetapkan kontras (antara 0 hingga 127) Serial.begin (9600); // mulakan komunikasi bersiri}

gelung kosong () {

analogWrite (BL, 200);

// tetapkan skrin permainan lcd.drawRect (0, 0, 47, 47); // kami melukis segi empat tepat lcd.setFont (SmallFont); // tetapkan font lcd.print ("skor", 53, 0); // printf skor lcd.setFont (Nombor Sederhana); // tetapkan font lcd.printNumI (skor, 59, 7); // dapatkan skor lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // laju cetak lcd.setFont (Nombor Sederhana); lcd.printNumI (hiz, 59, 32); // dapatkan kelajuan lcd.update (); // kemas kini

// tetapkan lokasi Joyistick int x = analogRead (xpin); jika (x <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3, x state> 600 dan kawalan adalah benar pozisyon ++; // tingkatkan lokasi itu artinya pindah bentuk ke kontrol kanan = false; } lain jika (x> 300 && x <600) {kontrol = true; } Bersiri.println (x); // untuk pembelajaran x keadaan // tetapkan bentuk bentuk kita lcd.clrScr (); // kosongkan skrin jika (pozisyon == 1) {// jika lokasi = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // tarik kapal kami jika (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

jika (pozisyon == 3) {

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

jika (dusmanOldu) {// jika bentuk musuh sudah mati, periksa apakah mereka sudah mati

dusmanKonumu1 = pozisyon; // lukis bentuk musuh pertama dusmanKonumu2 = rawak (0, 4); // lukiskan bentuk musuh yang lain di suatu tempat dusmaninYdeKonumu = 0; // bawa musuh dari atas dusmanOldu = false;} // musuh diciptakan semula supaya mereka tidak mati dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // lukis bentuk musuh pertama dan dapatkan dari atas ke bawah dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // lukis bentuk musuh kedua dan dapatkan dari atas ke bawah jika (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// jika bentuk kita menyentuh musuh membentuk oyunBitti ();} // permainan tamat jika (dusmaninYdeKonumu> 40) {// jika bentuk kita melarikan diri dari musuh dusmanOldu = true; // bunuh musuh bentuk skor ++;} // tingkatkan satu persatu skor // tingkatkan kelajuan mengikut skor jika (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; kelewatan (40); }}

Langkah 4: KOD BITMAP

Selain itu, anda mesti memasukkan grafik bitmap untuk bentuk. Ia mestilah fail.c dan nama yang sama dengan nama kod. Juga, ia mesti berada dalam fail yang sama.

// ------------------------------------------------ ------------------------------ // Fail dihasilkan oleh Pembantu LCD // https://en.radzio.dxp.pl / bitmap_converter / // --------------------------------------------- --------------------------------- #masuk // sertakan untuk fungsi progmem

const unsigned char arac PROGMEM = {// bentuk bitmap kami

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

const unsigned char dusman_araci PROGMEM = {// bitmap kapal musuh

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

Langkah 5: TERIMA KASIH MELIHAT

TERIMA KASIH MELIHAT
TERIMA KASIH MELIHAT

Sebelum saya mula berkongsi projek saya, saya mengodkan kata-kata dalam bahasa Turki sehingga saya tidak berpeluang menggunakan kata-kata dalam bahasa Inggeris. Berikut adalah terjemahan perkataan yang menggunakan projek ini, Oyun = Permainan

Arac = Bentuk

Dusman = Musuh

kawalan = kawalan

Konum, Yer = Lokasi

Oyun Bitti = Permainan Tamat

Skor = Skor

Hiz = Kelajuan

Disyorkan: