Daftar Isi:

Dasar-dasar Antarmuka Arduino TFT: 10 Langkah (dengan Gambar)
Dasar-dasar Antarmuka Arduino TFT: 10 Langkah (dengan Gambar)

Video: Dasar-dasar Antarmuka Arduino TFT: 10 Langkah (dengan Gambar)

Video: Dasar-dasar Antarmuka Arduino TFT: 10 Langkah (dengan Gambar)
Video: Membuat Kalkulator Layar Sentuh Menggunakan 2.4 inch TFT LCD - Arduino Project Indonesia 2024, November
Anonim
Dasar-dasar Antarmuka Arduino TFT
Dasar-dasar Antarmuka Arduino TFT

Layar sentuh TFT adalah antarmuka grafis luar biasa yang dapat digunakan dengan mikrokontroler seperti Atmel, PIC, STM, karena memiliki rentang warna yang luas, dan kemampuan grafis yang baik serta pemetaan piksel yang baik.

Hari ini, kita akan menghubungkan Perisai LCD TFT 2,4 inci dengan Arduino.

Perisai ini untuk Arduino UNO, tetapi saya akan mengajarkan cara menggunakannya dengan Arduino Mega untuk alasan yang sangat logis, "Memori Program".

Dengan menggunakan pelindung LCD TFT warna ini kita dapat menampilkan karakter, string, antarmuka tombol, gambar bitmap, dll pada LCD TFT berwarna.

Langkah 1: Persyaratan Perangkat Keras dan Perangkat Lunak

Persyaratan Perangkat Keras dan Perangkat Lunak
Persyaratan Perangkat Keras dan Perangkat Lunak
Persyaratan Perangkat Keras dan Perangkat Lunak
Persyaratan Perangkat Keras dan Perangkat Lunak

Untuk membuat antarmuka perisai dengan mega Arduino, kita membutuhkan yang berikut ini.

PERANGKAT KERAS:

• Arduino mega

• TFT 2.4/2.8/3.2 inci LCD

• Kabel USB

PERANGKAT LUNAK

• Arduino IDE

• Perpustakaan UTFT / Perpustakaan spfd5408

Shield awalnya dibuat untuk papan Arduino UNO, yang dapat digunakan dengan Arduino mega.

Ada dua masalah utama saat menggunakannya dengan Arduino UNO: "Memori penyimpanan" dan penggunaan pin.

Sulit untuk menggunakan pin yang tidak terpakai yang tersedia di UNO, sedangkan lebih baik dengan Arduino MEGA karena kita memiliki lebih banyak pin I/O yang tersisa.

Pada langkah selanjutnya, saya akan menunjukkan cara mengedit perpustakaan UTFT untuk menggunakan perisai TFT

Langkah 2: Tweak UTFT Lib

Menyesuaikan UTFT Lib
Menyesuaikan UTFT Lib

Pustaka ini merupakan kelanjutan dari pustaka ITDB02_Graph, ITDB02_Graph16 dan RGB_GLCD saya untuk Arduino dan chipKit. Karena jumlah modul tampilan dan pengontrol yang didukung mulai meningkat, saya merasa sudah waktunya untuk membuat satu perpustakaan universal karena akan lebih mudah untuk dipelihara di masa depan.

Arduino MEGA memiliki memori program 256kb. Selain itu, ada 54 pin.

Kebanyakan dari mereka gratis untuk digunakan, dan analognya hanya 5 yang diambil dari 16.

Pustaka ini mendukung sejumlah tampilan grafis 8bit, 16bit, dan serial, dan akan bekerja dengan Arduino, papan chipKit, dan TI LaunchPads tertentu.

CATATAN: Karena ukuran perpustakaan, saya tidak menyarankan menggunakannya pada ATmega328 (Arduino Uno) dan ATmega32U4 (Arduino Leonardo) karena mereka hanya memiliki memori flash 32KB. Ini akan berhasil, tetapi Anda akan sangat terbatas pada memori flash yang tersedia untuk aplikasi Anda

Langkah

  • Unduh Perpustakaan UTFT
  • Buka ritsleting Perpustakaan
  • Buka UTFT\hardware\avr dalam kasus Arduino atau tergantung pada mikrokontroler yang digunakan
  • Buka HW_AVR_defines menggunakan Notepad
  • Batalkan Komentar Baris 7 untuk mengaktifkan perisai UNO untuk MEGA
  • Simpan file dan Tambahkan Perpustakaan ini ke Arduino IDE

Sekarang kita selesai dengan langkah ini! Pada langkah selanjutnya, saya akan menunjukkan untuk menggunakan perpustakaan dan menentukan pin untuk Arduino Mega.

Langkah 3: Inisialisasi TFT Shield

Menginisialisasi Perisai TFT
Menginisialisasi Perisai TFT

Setelah mengedit perpustakaan, Tambahkan ke direktori Arduino.

Selanjutnya, saya akan menunjukkan cara menentukan modul TFT yang tepat yang Anda miliki

kita harus menemukan nama modulnya di perpustakaan.

  • buka file perpustakaan
  • pergi ke dokumentasi

Anda dapat melihat file-file ini di Dokumentasi

• UTFT:

File ini menunjukkan semua fungsi dan perintah yang disertakan dalam perpustakaan ini.

• UTFT_Persyaratan

File ini memiliki informasi tentang modul dan bagaimana itu terkait dengan perpustakaan, seperti konfigurasi pin

•UTFT_Supported_display_modules_&_controller

Ini adalah target kami, file ini memiliki nama modul dan perisai yang didukung oleh perpustakaan ini, Anda dapat melihat di dalamnya daftar nama modul dan nama modul untuk UTFT yang harus Anda gunakan untuk mendefinisikan modul Anda.

Langkah-langkah untuk Mendefinisikan TFT:

Buka file UTFT_Supported_display_modules_&_controller dari perpustakaan

  • Buka file UTFT_Supported_display_modules_&_controller dari perpustakaan
  • Temukan Model UTFT untuk Modul (perisai) yang Anda miliki.
  • Sekarang untuk mendefinisikan fungsi UTFT pada Arduino IDE, kita menggunakan perintah:

nama UTFT(modul, Rs, Wr, Cs, Rst);

Buka file UTFT_Requirement dari perpustakaan

Dari dokumen tersebut, kita mengetahui bahwa pin terletak pada pin A5, A4, A3, dan A2.

kita menggunakan perintah:

UTFT myGLCD(ITDB28, 19, 18, 17, 16); # perhatikan bahwa pin 19, 18, 17, 16 di Arduino Mega

UTFT myGLCD(ITDB28, A5, A4, A3, A2); # perhatikan bahwa pin A5, A4, A3, A2 di Arduino UNO

Dan selesai! Sekarang Anda dapat menggunakan contoh perpustakaan pada Arduino IDE dengan perubahan berikut.

Langkah 4: Dasar Halo Dunia

Dasar Halo Dunia
Dasar Halo Dunia

#include // Menyatakan font mana yang akan kita gunakan

extern uint8_t BigFont; extern uint8_t SevenSegNumFont; // Ingatlah untuk mengubah parameter model agar sesuai dengan modul tampilan Anda! UTFT myGLCD(ITDB28, A5, A4, A3, A2); void setup() { myGLCD. InitLCD(); myGLCD.clrScr(); myGLCD.setFont(BigFont); } void loop() { myGLCD.setColor(0, 255, 0); //hijau myGLCD.print("HALO DUNIA", 45, 100); while (benar) {}; }

Langkah 5: Font UTFT

Font UTFT
Font UTFT

#include // Menyatakan font mana yang akan kita gunakan

extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont; // Setel pin ke pin yang benar untuk perisai pengembangan Anda // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standar Arduino Uno/2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standar Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield untuk Arduino Mega:, 38, 39, 40, 41 // // Ingatlah untuk mengubah parameter model agar sesuai dengan modul tampilan Anda! UTFT myGLCD(ITDB32S, 38, 39, 40, 41); void setup() { myGLCD. InitLCD() myGLCD.clrScr(); } void loop() { myGLCD.setColor(0, 255, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.print(" !\"#$%&'()*+, -./", CENTER, 0); myGLCD.print("0123456789:;?", CENTER, 16); myGLCD.print("@ ABCDEFGHIJKLMNO", CENTER, 32); myGLCD.print("PQRSTUVWXYZ^_", CENTER, 48); myGLCD.print("`abcdefghijklmno", CENTER, 64); myGLCD.print("pqrstuvwxyz{|} ~ ", CENTER, 80); myGLCD.setFont(SmallFont); myGLCD.print(" !\"#$%&'()*+, -./0123456789:;?", CENTER, 120); myGLCD.print("@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_", CENTER, 132); myGLCD.print("`abcdefghijklmnopqrstuvwxyz{|}~ ", TENGAH, 144); myGLCD.setFont(SevenSegNumFont); myGLCD.print("0123456789", TENGAH, 190); while(1) {}; }

Langkah 6: Bentuk, Garis, dan Pola UTFT

Bentuk, Garis, dan Pola UTFT
Bentuk, Garis, dan Pola UTFT

#include "UTFT.h"// Deklarasikan font mana yang akan kita gunakan extern uint8_t SmallFont;// Setel pin ke pin yang benar untuk perisai pengembangan Anda // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standar Arduino Uno/2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standar Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield untuk Arduino Mega:, 38, 39, 40, 41 // // Ingatlah untuk mengubah parameter model agar sesuai dengan modul tampilan Anda! UTFT myGLCD(ITDB32S, 38, 39, 40, 41);void setup() { randomSeed(analogRead(0)); // Atur LCD myGLCD. InitLCD(); myGLCD.setFont(SmallFont); }

lingkaran kosong()

{ int buf[318]; intx,x2; int y, y2; int r;// Kosongkan layar dan gambar bingkai myGLCD.clrScr(); myGLCD.setColor(255, 0, 0); myGLCD.fillRect(0, 0, 319, 13); myGLCD.setColor(64, 64, 64); myGLCD.fillRect(0, 226, 319, 239); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); myGLCD.print("* Perpustakaan Tampilan TFT Warna Universal *", CENTER, 1); myGLCD.setBackColor(64, 64, 64); myGLCD.setColor(255, 255, 0); myGLCD.print("", TENGAH, 227); myGLCD.setColor(0, 0, 255); myGLCD.drawRect(0, 14, 319, 225);// Menggambar garis bidik myGLCD.setColor(0, 0, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.drawLine(159, 15, 159, 224); myGLCD.drawLine(1, 119, 318, 119); untuk (int i=9; i<310; i+=10) myGLCD.drawLine(i, 117, i, 121); for (int i=19; i<220; i+=10) myGLCD.drawLine(157, i, 161, i);// Menggambar sin-, cos- dan tan-lines myGLCD.setColor(0, 255, 255); myGLCD.print("Dosa", 5, 15); for (int i=1; i<318; i++) { myGLCD.drawPixel(i, 119+(sin(((i*1.13)*3.14)/180)*95)); } myGLCD.setColor(255, 0, 0); myGLCD.print("Cos", 5, 27); for (int i=1; i<318; i++) { myGLCD.drawPixel(i, 119+(cos(((i*1.13)*3.14)/180)*95)); } myGLCD.setColor(255, 255, 0); myGLCD.print("Kuning", 5, 39); for (int i=1; i<318; i++) { myGLCD.drawPixel(i, 119+(tan(((i*1.13)*3.14)/180))); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224); myGLCD.setColor(0, 0, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.drawLine(159, 15, 159, 224); myGLCD.drawLine(1, 119, 318, 119);// Menggambar gelombang sinus bergerak x=1; for (int i=1; i319) { if ((x==159)||(buf[x-1]==119)) myGLCD.setColor(0, 0, 255); else myGLCD.setColor(0, 0, 0); myGLCD.drawPixel(x, buf[x-1]); } myGLCD.setColor(0, 255, 255); y=119+(sin(((i*1.1)*3.14)/180)*(90-(i / 100))); myGLCD.drawPixel(x,y); buf[x-1]=y; } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Gambarlah beberapa persegi panjang yang diisi untuk (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); merusak; kasus 2: myGLCD.setColor(255, 0, 0); merusak; kasus 3: myGLCD.setColor(0, 255, 0); merusak; kasus 4: myGLCD.setColor(0, 0, 255); merusak; kasus 5: myGLCD.setColor(255, 255, 0); merusak; } myGLCD.fillRect(70+(i*20), 30+(i*20), 130+(i*20), 90+(i*20)); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Gambarlah beberapa persegi panjang bulat yang diisi untuk (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); merusak; kasus 2: myGLCD.setColor(255, 0, 0); merusak; kasus 3: myGLCD.setColor(0, 255, 0); merusak; kasus 4: myGLCD.setColor(0, 0, 255); merusak; kasus 5: myGLCD.setColor(255, 255, 0); merusak; } myGLCD.fillRoundRect(190-(i*20), 30+(i*20), 250-(i*20), 90+(i*20)); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Gambarlah beberapa lingkaran yang diisi untuk (int i=1; i<6; i++) { switch (i) { case 1: myGLCD.setColor(255, 0, 255); merusak; kasus 2: myGLCD.setColor(255, 0, 0); merusak; kasus 3: myGLCD.setColor(0, 255, 0); merusak; kasus 4: myGLCD.setColor(0, 0, 255); merusak; kasus 5: myGLCD.setColor(255, 255, 0); merusak; } myGLCD.fillCircle(100+(i*20), 60+(i*20), 30); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Gambar beberapa garis dalam pola myGLCD.setColor (255, 0, 0); for (int i=15; i<224; i+=5) { myGLCD.drawLine(1, i, (i*1.44)-10, 224); } myGLCD.setColor (255, 0, 0); for (int i=224; i>15; i-=5) { myGLCD.drawLine(318, i, (i*1.44)-11, 15); } myGLCD.setColor (0, 255, 255); for (int i=224; i>15; i-=5) { myGLCD.drawLine(1, i, 331-(i*1.44), 15); } myGLCD.setColor (0, 255, 255); for (int i=15; i<224; i+=5) { myGLCD.drawLine(318, i, 330-(i*1.44), 224); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Gambar beberapa lingkaran acak untuk (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255))); x=32+acak(256); y=45+acak(146); r=acak(30); myGLCD.drawCircle(x, y, r); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Gambarlah beberapa persegi panjang acak untuk (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255))); x=2+acak(316); y=16+acak(207); x2=2+acak(316); y2=16+acak (207); myGLCD.drawRect(x, y, x2, y2); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224);// Gambarlah beberapa persegi panjang bulat acak untuk (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=2+acak(316); y=16+acak(207); x2=2+acak(316); y2=16+acak (207); myGLCD.drawRoundRect(x, y, x2, y2); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224); for (int i=0; i<100; i++) { myGLCD.setColor(random(255), random(255), random(255)); x=2+acak(316); y=16+acak(209); x2=2+acak(316); y2=16+acak (209); myGLCD.drawLine(x, y, x2, y2); } penundaan(2000); myGLCD.setColor(0, 0, 0); myGLCD.fillRect(1, 15, 318, 224); for (int i=0; i<10000; i++) { myGLCD.setColor(random(255), random(255), random(255)); myGLCD.drawPixel(2+random(316), 16+random(209)); } penundaan(2000); myGLCD.fillScr(0, 0, 255); myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect(80, 70, 239, 169); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); myGLCD.print("Itu dia!", CENTER, 93); myGLCD.print("Memulai ulang dalam", CENTER, 119); myGLCD.print("beberapa detik…", CENTER, 132); myGLCD.setColor(0, 255, 0); myGLCD.setBackColor(0, 0, 255); myGLCD.print("Waktu Proses: (mdtk)", PUSAT, 210); myGLCD.printNumI(milis(), CENTER, 225); penundaan (10000); }

Langkah 7: Bitmap UTFT

UTFT Bitmap
UTFT Bitmap

#termasuk

#include // Deklarasikan font mana yang akan kita gunakan extern uint8_t SmallFont;// Setel pin ke pin yang benar untuk perisai pengembangan Anda // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standar Arduino Uno/2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standar Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield untuk Arduino Mega:, 38, 39, 40, 41 // // Ingatlah untuk mengubah parameter model agar sesuai dengan modul tampilan Anda! UTFT myGLCD(ITDB32S, A5, A4, A3, A2);extern unsigned int info[0x400]; ikon int unsigned extern[0x400]; extern unsigned int tux[0x400];void setup() { myGLCD. InitLCD(); myGLCD.setFont(SmallFont); }void loop() { myGLCD.fillScr(255, 255, 255); myGLCD.setColor(255, 255, 255); myGLCD.print(" *** Kotak 10 kali 7 dari ikon 32x32 *** ", CENTER, 228); for (int x=0; x<10; x++) for (int y=0; y<7; y++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); penundaan(5000); myGLCD.fillScr(255, 255, 255); myGLCD.setColor(255, 255, 255); myGLCD.print("Dua ikon berbeda dalam skala 1 sampai 4", CENTER, 228); int x=0; for (int s=0; s0; s--) { myGLCD.drawBitmap (x, 224-(s*32), 32, 32, icon, s); x+=(s*32); } penundaan(5000); }

Langkah 8: Antarmuka Tombol

Antarmuka Tombol
Antarmuka Tombol

#include #include // Inisialisasi tampilan// ------------------ // Setel pin ke pin yang benar untuk papan pengembangan Anda // ------- -------------------------------------------------- -- // Standard Arduino Uno/2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield untuk Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD Shield untuk Arduino Karena:, 22, 23, 31, 33 // // Ingatlah untuk ubah parameter model agar sesuai dengan modul tampilan Anda! UTFT myGLCD(ITDB32S, 38, 39, 40, 41);// Inisialisasi layar sentuh // ---------------------- // Setel pin ke yang benar yang untuk papan pengembangan Anda // ------------------------------------------- ---------------- // Standard Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Standard Arduino Mega/Due shield: 6, 5, 4, 3, 2 // CTE TFT LCD/SD Shield untuk Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield untuk Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch(6, 5, 4, 3, 2);// Deklarasikan font mana yang akan kita gunakan extern uint8_t BigFont;int x, y; char stCurrent[20]=""; int stCurrentLen=0; char stLast[20]="";/************************* ** Fungsi khusus ** ********* ****************/void drawButtons() { // Menggambar baris atas tombol untuk (x=0; x<5; x++) { myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (10+(x*60), 10, 60+(x*60), 60); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (10+(x*60), 10, 60+(x*60), 60); myGLCD.printNumI(x+1, 27+(x*60), 27); } // Gambarkan baris tengah tombol untuk (x=0; x<5; x++) { myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (10+(x*60), 70, 60+(x*60), 120); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (10+(x*60), 70, 60+(x*60), 120); if (x<4) myGLCD.printNumI(x+6, 27+(x*60), 87); } myGLCD.print("0", 267, 87); // Gambar baris bawah tombol myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print("Hapus", 40, 147); myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (160, 130, 300, 180); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (160, 130, 300, 180); myGLCD.print("Masukkan", 190, 147); myGLCD.setBackColor (0, 0, 0); }void updateStr(int val) { if (stCurrentLen=10) && (y=10) && (x=70) && (x=130) && (x=190) && (x=250) && (x=70) && (y=10) && (x=70) && (x=130) && (x=190) && (x=250) && (x=130) && (y=10) && (x=160) && (x0) { untuk (x=0; x

Langkah 9: Flappy Bird

Burung Flappy
Burung Flappy

#include #include #include //==== Membuat Objek UTFT myGLCD(SSD1289, 38, 39, 40, 41); //Parameter harus disesuaikan dengan model Tampilan/Schield Anda UTouch myTouch(6, 5, 4, 3, 2);//==== Mendefinisikan Font extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont;ekstern unsigned int bird01[0x41A]; // Burung Bitmapint x, y; // Variabel untuk koordinat dimana tampilan telah ditekan// Floppy Bird 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;void setup() { // 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 }void loop() { 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 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); } else if(x nilai tertinggi) { nilai tertinggi = nilai; 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 10: Pengerjaan Proyek

Anda dapat menemukan kode sumber di repositori Github saya.

Tautan:

Berikan jempol jika itu benar-benar membantu Anda dan ikuti saluran saya untuk proyek-proyek menarik:)

Bagikan video ini jika Anda suka.

Senang Anda berlangganan:

Terima kasih sudah membaca!

Direkomendasikan: