Isi kandungan:

Burung Floppy: 3 Langkah
Burung Floppy: 3 Langkah

Video: Burung Floppy: 3 Langkah

Video: Burung Floppy: 3 Langkah
Video: Pembuatan Game Android FLAPPY BIRD Construct 3 #GAMEANDROID 2024, November
Anonim
Burung Floppy
Burung Floppy
Burung Floppy
Burung Floppy

Hari ini kita akan membuat permainan menggunakan TFT LCD. Ini akan kelihatan seperti permainan yang sangat popular dan banyak orang masih memainkan permainan ini. Permainan ini dinamakan Flappy Bird tetapi permainan ini sedikit berbeza kerana UInya berbeza juga cara permainannya berfungsi. Saya memanggil permainan ini Floppy Bird kerana ini boleh menyebabkan masalah hak cipta. Walaupun begitu, ia adalah permainan yang sangat menyeronokkan dan senang dibuat. Saya telah membuat arahan ini yang membolehkan anda membuat permainan sepenuhnya dan membuatnya berfungsi seperti yang saya lakukan. Sekiranya anda mempunyai sebarang pertanyaan, sila komen di bawah dan saya akan cuba menjawab soalan ini secepat mungkin.

Bekalan

- Arduino Mega 2560 dan kabel

- Arduino Mega Shield

- Arduino TFT LCD Sesuai dengan Arduino Mega 2560

- Kad SD

Langkah 1: Memasang TFT LCD

Memasang LCD TFT
Memasang LCD TFT

Sekarang, kita boleh mula memasang TFT LCD. Kami akan menyambungkan TFT LCD ke perisai, jadi pertama-tama ambil TFT LCD dan pada dasarnya sejajar dengan pin pada perisai. Setelah meluruskan pin, tekan LCD TFT ke bawah sehingga pas di tempatnya. Apabila semua kepala pin berada di pelindung dan anda tidak dapat melihat kepala pin, ketika itulah anda mengetahui bahawa TFT LCD disambungkan dengan betul. Seterusnya, kita boleh memasang perisai ke Arduino Mega 2560. Sejajarkan pin perisai pada Arduino Mega dan pasangkannya. Apabila semua kepala pin berada di Arduino Mega dan anda tidak dapat melihat kepala pin, itu apabila anda mengetahui bahawa TFT LCD disambungkan dengan betul dan siap untuk dihidupkan. Pasang Arduino untuk melihat apakah anda telah menyambungkan LCD dengan betul, jika LCD menyala dan skrin berwarna putih kemudian selamat, anda telah berjaya menyambungkan LCD TFT dan sekarang ia sudah siap untuk diprogramkan. Terakhir, kami mempunyai satu perkara yang perlu dilakukan, iaitu menyambungkan kad SD di LCD. Di bahagian belakang TFT LCD terdapat slot kad SD di mana anda hanya boleh memasukkan kad SD. Oleh itu, pasangkan sahaja dan selesai.

Langkah 2: Memprogram LCD TFT

Memprogram LCD TFT
Memprogram LCD TFT

Sekarang, kami akan memprogram LCD sehingga menjalankan permainan dan kami dapat memainkannya. Di bawah ini adalah kod yang perlu anda kumpulkan dan muat naik menggunakan Arduino IDE.

Masalah yang mungkin anda hadapi:

Tukar parameter TFT LCD mengikut model yang anda miliki.

KOD LENGKAP:

#sertakan #sertakan #sertakan

// ==== Membuat Objek

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parameter harus disesuaikan dengan model Display / Shield URTouch myTouch anda (6, 5, 4, 3, 2);

// ==== Mendefinisikan Fon

luaran uint8_t SmallFont ; luaran uint8_t BigFont ; luaran uint8_t SevenSegNumFont ;

externigned int bird01 [0x41A]; // Bitmap Burung

int x, y; // Pemboleh ubah untuk koordinat di mana paparan telah ditekan

// Burung Floppy

int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; skor int = 0; int lastSpeedUpScore = 0; skor tertinggi int; skrin booleanTekanan = salah; permainan booleanStarted = false;

batal persediaan () {

// Memulakan paparan myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); markah tertinggi = EEPROM.read (0); // Baca skor tertinggi dari EEPROM beginateGame (); // Mulakan permainan}

gelung kosong () {

xP = xP-movingRate; // xP - x koordinat tiang; julat: 319 - (-51) drawPilars (xP, yP); // Lukiskan tiang // koordinat yB - y burung yang bergantung pada nilai pemboleh ubah jatuhRate yB + = fallRateInt; fallRate = fallRate + 0.4; // Setiap inetrasi kadar jatuh meningkat sehingga kita dapat kesan pecutan / gravitasi jatuhRateInt = int (fallRate); // Memeriksa perlanggaran jika (yB> = 180 || yB <= 0) {// permainan atas dan bawah Over (); } jika ((xP = 5) && (yB <= yP-2)) {// permainan tiang atas Over (); } jika ((xP = 5) && (yB> = yP + 60)) {// permainan tiang bawah Over (); } // Melukis birdBird (yB);

// Setelah tiang melewati layar

jika (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); } lain jika (x <= 268) {// Lukiskan segi empat tepat biru tiang myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x + 51, 0, x + 60, y); // Lukiskan tiang myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x + 49, 1, x + 1, y-1); // Melukis bingkai hitam tiang myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x + 50, 0, x, y); // Lukiskan segi empat tepat biru kiri tiang myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Tiang bawah

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); } // Melukis skor myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (skor, 100, 220); }

// ====== drawBird () - Fungsi Tersuai

batal drawBird (int y) {// Melukis burung - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Melukis segi empat tepat biru di atas dan di bawah burung untuk membersihkan keadaan sebelumnya myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y + 30, 85, y + 36); } // ======== gameOver () - Fungsi Custom membatalkan permainanOver () {delay (3000); // 1 saat // Kosongkan skrin dan mencetak teks myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", PUSAT, 40); myGLCD.print ("Skor:", 100, 80); myGLCD.printNumI (skor, 200, 80); myGLCD.print ("Memulakan Semula …", PUSAT, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, PUSAT, 150); kelewatan (1000); myGLCD.printNumI (1, PUSAT, 150); kelewatan (1000); // Menulis skor tertinggi di EEPROM jika (skor> skor tertinggi) {tertinggi skor = skor; EEPROM.write (0, skor tertinggi); } // Menetapkan semula pemboleh ubah untuk memulakan nilai kedudukan xP = 319; yB = 50; fallRate = 0; skor = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Mulakan semula permainan beginateGame (); }

Langkah 3: Selesai

Selesai!
Selesai!

Kami telah membuat litar dan menyusun kodnya. Sekarang, kita hanya perlu memasukkan Arduino mega dan bermain permainan.

Di sini, saya mempunyai pautan ke video yang menunjukkan bagaimana permainan ini berfungsi dan apa yang harus dilakukan untuk menyiapkannya:

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

Beritahu saya jika anda mempunyai masalah di bawah.

Disyorkan: