Daftar Isi:

Floppy Bird: 3 Langkah
Floppy Bird: 3 Langkah

Video: Floppy Bird: 3 Langkah

Video: Floppy Bird: 3 Langkah
Video: Flappy Bird - Ending 2024, November
Anonim
burung floppy
burung floppy
burung floppy
burung floppy

Hari ini kita akan membuat game menggunakan LCD TFT. Ini akan terlihat seperti game yang sangat populer dan masih banyak orang yang memainkan game ini. Gamenya bernama Flappy Bird tapi game ini sedikit berbeda karena UI yang berbeda serta cara kerja gamenya. Saya menyebut game ini Floppy Bird karena dapat menyebabkan masalah hak cipta. Meskipun demikian, ini adalah permainan yang sangat menyenangkan dan mudah dibuat. Saya telah membuat instruksi ini yang akan memungkinkan Anda membuat game sepenuhnya dan membuatnya berfungsi seperti yang saya lakukan. Jika Anda memiliki pertanyaan, silakan komentar di bawah dan saya akan mencoba menjawab pertanyaan ini secepat mungkin.

Perlengkapan

- Arduino Mega 2560 dan kabel

-Arduino Mega Shield

- LCD TFT Arduino Kompatibel dengan Arduino Mega 2560

- Kartu SD

Langkah 1: Merakit LCD TFT

Merakit LCD TFT
Merakit LCD TFT

Sekarang, kita bisa mulai merakit LCD TFT. Kami akan menghubungkan LCD TFT ke pelindung, jadi pertama-tama ambil LCD TFT dan sejajarkan dengan pin pada pelindung. Setelah Anda menyejajarkan pin, tekan LCD TFT ke bawah sehingga pas di tempatnya. Ketika semua kepala pin berada di pelindung dan Anda tidak dapat melihat kepala pin, saat itulah Anda tahu bahwa LCD TFT terhubung dengan benar. Selanjutnya kita bisa mencolokkan shield ke Arduino Mega 2560. Sejajarkan pin shield pada Arduino Mega dan pasang. Ketika semua pin head berada di Arduino Mega dan Anda tidak dapat melihat pin head, maka ketika Anda tahu bahwa LCD TFT terhubung dengan benar dan siap untuk dinyalakan. Colokkan Arduino untuk melihat apakah LCD sudah terhubung dengan baik, jika LCD menyala dan layar berwarna putih maka selamat anda telah berhasil menyambungkan LCD TFT dan sekarang sudah siap untuk diprogram. Terakhir, ada satu hal yang harus kita lakukan, yaitu menghubungkan kartu SD di LCD. Di bagian belakang LCD TFT terdapat slot kartu SD di mana Anda cukup mencolokkan kartu SD. Oleh karena itu, cukup tancapkan dan selesai.

Langkah 2: Memprogram LCD TFT

Memprogram LCD TFT
Memprogram LCD TFT

Sekarang, kita akan memprogram LCD sehingga menjalankan game dan kita bisa memainkannya. Di bawah ini adalah kode yang harus Anda kompilasi dan unggah menggunakan Arduino IDE.

Masalah yang mungkin Anda alami:

Ubah parameter LCD TFT sesuai dengan model yang Anda miliki.

KODE LENGKAP:

#sertakan #sertakan #sertakan

//==== Membuat Objek

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

//==== Mendefinisikan Font

extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont;

extern unsigned int bird01[0x41A]; // Bitmap Burung

int x, y; // Variabel untuk koordinat di mana tampilan telah ditekan

// burung floppy

int xP = 319; int yP = 100; int yB = 50; int Kecepatan Bergerak = 3; int fallRateInt = 0; float fallRate = 0; int skor = 0; int lastSpeedUpScore = 0; int Skor tertinggi; boolean screenPressed = false; boolean gameStarted = false;

batalkan pengaturan() {

// Memulai tampilan myGLCD. InitLCD(); myGLCD.clrScr(); myTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); nilai tertinggi = EEPROM.read(0); // Baca skor tertinggi dari EEPROM initialGame(); // Memulai permainan }

lingkaran kosong() {

xP=xP-movingRate; // xP - x koordinat pilar; kisaran: 319 - (-51) drawPilars(xP, yP); // Menggambar pilar // yB - y koordinat burung yang bergantung pada nilai variabel fallRate yB+=fallRateInt; fallRate=kejatuhanRate+0.4; // Setiap inetrasi laju jatuh meningkat sehingga kita dapat efek percepatan/ gravitasi fallRateInt= int(fallRate); // Memeriksa tabrakan if(yB>=180 || yB<=0){ // atas dan bawah gameOver(); } if((xP=5) && (yB<=yP-2)){ // gameOver pilar atas(); } if((xP=5) && (yB>=yP+60)){ // menurunkan pilar gameOver(); } // Menggambar burung drawBird(yB);

// Setelah pilar melewati layar

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) { // Menggambar persegi panjang biru di kanan pilar myGLCD.setColor(114, 198, 206); myGLCD.fillRect(x+51, 0, x+60, y); // Menggambar pilar myGLCD.setColor(0, 200, 20); myGLCD.fillRect(x+49, 1, x+1, y-1); // Menggambar bingkai hitam dari pilar myGLCD.setColor(0, 0, 0); myGLCD.drawRect(x+50, 0, x, y); // Menggambar persegi panjang biru di sebelah kiri pilar myGLCD.setColor(114, 198, 206); myGLCD.fillRect(x-1, 0, x-3, y);

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

//====== drawBird() - Fungsi Kustom

void drawBird(int y) { // Menggambar burung - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Menggambar persegi panjang biru di atas dan di bawah burung untuk menghapus status sebelumnya myGLCD.setColor(114, 198, 206); myGLCD.fillRoundRect(50, y, 85, y-6); myGLCD.fillRoundRect(50, y+30, 85, y+36); } //======== gameOver() - Fungsi Kustom void gameOver() { delay(3000); // 1 detik // Membersihkan layar dan mencetak teks myGLCD.clrScr(); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.print("PERMAINAN SELESAI", TENGAH, 40); myGLCD.print("Nilai:", 100, 80); myGLCD.printNumI(skor, 200, 80); myGLCD.print("Memulai Ulang…", TENGAH, 120); myGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(2, CENTER, 150); penundaan (1000); myGLCD.printNumI(1, CENTER, 150); penundaan (1000); // Menulis skor tertinggi di EEPROM if (skor > skor tertinggi) { skor tertinggi = skor; EEPROM.write(0, nilai tertinggi); } // Mereset variabel untuk memulai nilai posisi xP=319; yB=50; fallRate=0; skor = 0; lastSpeedUpScore = 0; kecepatan bergerak = 3; gameStarted = salah; // Mulai ulang game inisiasiGame(); }

Langkah 3: Selesai

Selesai!
Selesai!

Kami telah membuat sirkuit dan mengkompilasi kode. Sekarang, kita hanya perlu mencolokkan Arduino mega dan memainkan gamenya.

Di sini, saya memiliki tautan ke video yang menunjukkan cara kerja game ini dan apa yang harus dilakukan untuk menyiapkannya:

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

Beri tahu saya jika Anda memiliki masalah di bawah.

Direkomendasikan: