Mundarija:
Video: Floppy Bird: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Bugun biz TFT LCD yordamida o'yin qilamiz. Bu haqiqatan ham mashhur bo'lgan o'yin kabi ko'rinadi va ko'p odamlar hali ham bu o'yinni o'ynashadi. O'yin Flappy Bird deb nomlanadi, lekin bu o'yin biroz boshqacha, chunki foydalanuvchi interfeysi va o'yin uslubi boshqacha. Men bu o'yinni Floppy Bird deb nomladim, chunki bu mualliflik huquqi bilan bog'liq muammolarga olib kelishi mumkin. Shunga qaramay, bu juda qiziqarli o'yin va uni bajarish oson. Men buni sizga ko'rsatma berdim, bu sizga o'yinni to'liq bajarishga va men kabi ishlashiga imkon beradi. Agar sizda biron bir savol bo'lsa, iltimos, quyida izoh qoldiring va men bu savollarga iloji boricha tezroq javob berishga harakat qilaman.
Ta'minotlar
- Arduino Mega 2560 va kabel
- Arduino Mega qalqoni
- Arduino TFT LCD Arduino Mega 2560 bilan mos keladi
- SD -karta
1 -qadam: TFT LCD -ni yig'ish
Endi biz TFT LCD -ni yig'ishni boshlashimiz mumkin. Biz TFT LCD -ni qalqonga ulaymiz, shuning uchun birinchi navbatda TFT LCD -ni oling va uni qalqon ustidagi pinlar bilan tekislang. Pimlarni tekislaganingizdan so'ng, TFT LCD -ni pastga suring, shunda u joyiga to'g'ri keladi. Agar barcha pin boshlari qalqonda bo'lsa va siz pin boshlarini ko'rmasangiz, TFT LCD to'g'ri ulanganligini bilasiz. Keyin biz qalqonni Arduino Mega 2560 -ga ulashimiz mumkin. Arduino Mega -dagi qalqon pimlarini tekislang va ulang. Barcha pin boshlari Arduino Mega -da bo'lsa va siz pin boshlarini ko'rmasangiz, bu shunday bo'ladi. TFT LCD to'g'ri ulanganligini va uni yoqishga tayyorligini bilganingizda. LCD displeyni to'g'ri uladingizmi yoki yo'qmi, Arduino -ni ulang, agar LCD yoqilsa va ekran oq bo'lsa, tabriklayman, siz TFT LCD -ni muvaffaqiyatli uladingiz va endi u dasturga tayyor. Va nihoyat, bizda bitta narsa bor - bu SD -kartani LCD -ga ulash. TFT LCD -ning orqa tomonida SD -karta uyasi bor, u erda siz SD -kartani ulashingiz mumkin. Shuning uchun, uni tarmoqqa ulang va u tugadi.
2 -qadam: TFT LCD -ni dasturlash
Endi biz LCD -ni dasturlashtiramiz, shunda u o'yinni boshqaradi va biz uni o'ynay olamiz. Quyida siz Arduino IDE yordamida kompilyatsiya qilishingiz va yuklashingiz kerak bo'lgan kod keltirilgan.
Sizda bo'lishi mumkin bo'lgan muammolar:
TFT LCD displeyining parametrlarini sizda mavjud modelga muvofiq o'zgartiring.
To'liq kod:
#qo'shish #qo'shish #qo'shish
// ==== Ob'ektlarni yaratish
UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametrlar URTouch myTouch (6, 5, 4, 3, 2) Display/Shield modeliga moslashtirilishi kerak;
// ==== Shriftlarni aniqlash
extern uint8_t SmallFont ; extern uint8_t BigFont ; tashqi uint8_t SevenSegNumFont ;
extern unsigned int bird01 [0x41A]; // Qushlarning bitmapi
int x, y; // Displey bosilgan koordinatalarning o'zgaruvchilari
// Floppy Bird
int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int bal = 0; int lastSpeedUpScore = 0; int yuqori reyting; boolean ekran Pressed = false; boolean gameStarted = false;
bo'sh o'rnatish () {
// myGLCD. InitLCD () displeyini ishga tushiring; myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); eng yuqori reyting = EEPROM.read (0); // EEPROM inititeGame () dan eng yuqori ballni o'qing; // O'yinni boshlang}
void loop () {
xP = xP-harakatlanish darajasi; // xP - x pilarlarning koordinatasi; diapazon: 319 - (-51) drawPilars (xP, yP); // Qushlarning ustunlarini tortadi // yB - y koordinatasi tushayotgan Rate o'zgaruvchisining qiymatiga bog'liq yB+= fallRateInt; fallRate = fallRate+0,4; // Har bir inetratsiyada kuz tezligi oshadi, shunda biz tezlik/ tortish kuchi ta'sirini tushirishimiz mumkin fallRateInt = int (fallRate); // To'qnashuvni tekshiradi, agar (yB> = 180 || yB <= 0) {// yuqori va pastki gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// yuqori ustunli gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// pastki ustunli o'yinOver (); } // qushni DrawBird (yB) chizadi;
// Ustun ekran orqali o'tgandan keyin
agar (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); } if if (x <= 268) {// myGLCD.setColor ustunining o'ng tomonida ko'k to'rtburchak chizadi (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // myGLCD.setColor ustunini chizadi (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Ustunning qora ramkasini chizadi myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // myGLCD.setColor ustunining chap tomonidagi ko'k to'rtburchakni chizadi (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);
// Pastki ustun
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); } // myGLCD.setColor (0, 0, 0) balini tortadi; myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (ball, 100, 220); }
// ====== drawBird () - Maxsus funktsiya
void drawBird (int y) {// Qushni chizadi - bitMap myGLCD.drawBitmap (50, y, 35, 30, bird01); // myGLCD.setColor (114, 198, 206) holatini tozalash uchun qush ustidan va ostidan ko'k to'rtburchaklar chizadi; myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Custom Function void gameOver () {delay (3000); // 1 soniya // Ekranni tozalaydi va matnni chop etadi myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("O'YIN OVER", MARKAZI, 40); myGLCD.print ("Hisob:", 100, 80); myGLCD.printNumI (ball, 200, 80); myGLCD.print ("Qayta ishga tushirilmoqda …", MARKAZI, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, MARKAZI, 150); kechikish (1000); myGLCD.printNumI (1, MARKAZI, 150); kechikish (1000); // EEPROMda eng yuqori ballni yozadi, agar (ball> eng yuqori reyting) {eng yuqori skor = ball; EEPROM.write (0, eng yuqori reyting); } // o'zgaruvchilarni xP = 319 pozitsiya qiymatlari boshlanishiga qaytaradi; yB = 50; fallRate = 0; ball = 0; lastSpeedUpScore = 0; harakatlanish darajasi = 3; gameStarted = noto'g'ri; // inititeGame () o'yinini qayta ishga tushiring; }
3 -qadam: Bajarildi
Biz sxemani tuzdik va kodni tuzdik. Endi biz Arduino mega -ni ulashimiz va o'yinni o'ynashimiz kerak.
Menda bu o'yin qanday ishlashini va uni sozlash uchun nima qilish kerakligini ko'rsatadigan videoga havola bor:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Menga pastda muammolaringiz bo'lsa, menga xabar bering.
Tavsiya:
Floppy Disk IR kamerasini buzish: 8 qadam (rasmlar bilan)
Floppy Disk IR Kamera Hack: So'nggi etti yil mobaynida menda raqamli kamera singan edi. U hali ham suratga olish imkoniyatiga ega, lekin ekranning buzilishi tufayli uni ishlatish deyarli mumkin emas. Asosiy muammo shundaki, ba'zida menyu tasodifan paydo bo'ladi
Apple II Floppy Hackintosh I7-7700 3.6Ghz: 7 qadam
Apple II Floppy Hackintosh I7-7700 3.6Ghz: Bu birinchi rasm sizga toza haydovchiga havola qilish uchun (original kamalakli Apple logotipi bilan), meniki biroz ko'proq masofani bosib o'tgan. Ikkinchi rasm - bu ichki qism, men uni demontaj qilishdan oldin suratga olishni unutganman, shuning uchun Goog -ning izni bilan
Amiga Arduino Floppy Drive qutisi/muhofazasi: 5 qadam
Amiga Arduino Floppy Disk qutisi/muhofazasi: Bu ko'rsatma Windows loyihasi uchun Arduino Amiga Floppy Disk Reader/Writer uchun floppi haydovchi korpusini qanday yig'ish kerakligini tushuntiradi. Ushbu loyihani bajarish uchun sizga kerak bo'ladi: 3D printer Arduino pro mini va FTDI panellari yuqorida
SD/MMC Floppy Edge ulagichiga mos keladi: 8 qadam (rasmlar bilan)
SD/MMC Floppy Edge-ulagichiga mos keladi: Siz hozirda mavjud bo'lgan oddiy ulagichlardan foydalanib, bir nechta kirish-chiqish pinli har qanday homebrew DIY loyihasiga SD-kamera xotira kartasini ulashingiz mumkin. qurilma drayverlari va turli xil Linux manbali ochiq manbalarni o'rnatish
Apple Floppy Amp: 8 qadam (rasmlar bilan)
Apple Floppy Amp: eski 5.25 & quot topildi; 5,99 dollarga tejamkor do'konda floppi haydovchi. Bu menga Apple IIe bolaligimni eslatdi, shuning uchun men nima qilmoqchi ekanimni bilmay uni sotib oldim. Men anaxronizm muxlisiman (Uyatsiz vilka: retro hi-fi ko'rsatmasiga qarang) va