فهرست مطالب:
تصویری: فلاپی پرنده: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
امروز ما یک بازی با استفاده از TFT LCD خواهیم ساخت. این بازی شبیه یک بازی بسیار محبوب است و هنوز بسیاری از مردم این بازی را انجام می دهند. این بازی Flappy Bird نام دارد اما این بازی کمی متفاوت است زیرا UI و نحوه عملکرد بازی متفاوت است. من این بازی را Floppy Bird نامیدم زیرا می تواند به مشکلات کپی رایت منجر شود. با این وجود این یک بازی سرگرم کننده است و ساخت آن آسان است. من این را آموزش داده ام که به شما امکان می دهد بازی را کاملاً بسازید و مانند من کار کند. اگر س questionsالی دارید ، لطفاً در زیر نظر دهید و من سعی می کنم در اسرع وقت به این سوالات پاسخ دهم.
تدارکات
- آردوینو مگا 2560 و کابل
- Arduino Mega Shield
- Arduino TFT LCD سازگار با Arduino Mega 2560
- کارت SD
مرحله 1: مونتاژ LCD TFT
اکنون می توانیم مونتاژ LCD TFT را شروع کنیم. ما TFT LCD را به سپر متصل می کنیم ، بنابراین ابتدا LCD TFT را بردارید و اساساً آن را با پین های سپر تراز کنید. هنگامی که پین ها را تراز کردید ، LCD TFT را به سمت پایین فشار دهید تا در جای خود قرار گیرد. وقتی همه سر پین ها در سپر هستند و نمی توانید هد پین ها را ببینید ، آن وقت است که می دانید TFT LCD به درستی وصل شده است. در مرحله بعد ، می توانیم سپر را به Arduino Mega 2560 وصل کنیم. پین های سپر را روی Arduino Mega تراز کنید و آن را وصل کنید. هنگامی که همه هد های پین در Arduino Mega قرار دارند و سر پین ها را نمی بینید ، این وقتی می دانید که LCD TFT به درستی متصل شده است و آماده روشن شدن است. آردوینو را وصل کنید تا ببینید آیا LCD را به درستی وصل کرده اید ، آیا LCD روشن می شود و صفحه سفید است ، تبریک می گویم ، شما TFT LCD را با موفقیت متصل کرده اید و اکنون آماده برنامه نویسی است. در نهایت ، ما باید یک کار انجام دهیم ، آن اتصال کارت SD در LCD است. در پشت TFT LCD یک اسلات کارت SD وجود دارد که می توانید به سادگی کارت SD را وصل کنید. بنابراین ، فقط آن را به برق وصل کنید و کار تمام است.
مرحله 2: برنامه نویسی TFT LCD
اکنون ، ما LCD را برنامه ریزی می کنیم تا بازی اجرا شود و ما بتوانیم آن را بازی کنیم. در زیر کدی است که باید با استفاده از Arduino IDE کامپایل و بارگذاری کنید.
مشکلاتی که ممکن است داشته باشید:
پارامترهای TFT LCD را با توجه به مدلی که دارید تغییر دهید.
کد کامل:
#شامل #شامل #شامل شود
// ==== ایجاد اشیاء
UTFT myGLCD (ILI9341_16 ، 38 ، 39 ، 40 ، 41) ؛ // پارامترها باید بر اساس مدل Display/Shield شما URTouch myTouch (6 ، 5 ، 4 ، 3 ، 2) تنظیم شوند.
// ==== تعریف قلم ها
extern uint8_t SmallFont ؛ exint uint8_t BigFont ؛ extern uint8_t SevenSegNumFont ؛
خارجی بدون علامت int bird01 [0x41A]؛ // نقشه نقشه پرنده
int x ، y ؛ // متغیرهای مختصات جایی که صفحه نمایش فشار داده شده است
// فلاپی پرنده
int xP = 319 ؛ int yP = 100 ؛ int yB = 50 ؛ int moveRate = 3 ؛ int fallRateInt = 0؛ float fallRate = 0؛ نمره int = 0 ؛ int lastSpeedUpScore = 0 ؛ int بالاترین امتیاز ؛ boolean screenPressed = false؛ boolean gameStarted = false؛
void setup () {
// شروع نمایش myGLCD. InitLCD ()؛ myGLCD.clrScr ()؛ myTouch. InitTouch ()؛ myTouch.setPrecision (PREC_MEDIUM) ؛ highScore = EEPROM.read (0)؛ // بالاترین امتیاز را از EEPROM initateGame () بخوانید ؛ // شروع بازی}
حلقه خالی () {
xP = xP-moveRate؛ // مختصات xP - x ستون ها ؛ محدوده: 319 - (-51) drawPilars (xP ، yP) ؛ // ستون ها را ترسیم می کند // yB - y مختصات پرنده که بستگی به مقدار متغیر fallRate دارد yB+= fallRateInt؛ fallRate = fallRate+0.4 ؛ // هر بار تکرار میزان سقوط افزایش می یابد تا بتوانیم اثر شتاب/ گرانش را fallRateInt = int (fallRate)؛ // بررسی برخورد اگر (yB> = 180 || yB <= 0) {// بالا و پایین gameOver ()؛ } if ((xP = 5) && (yB <= yP-2)) {// ستون فوقانی gameOver ()؛ } if ((xP = 5) && (yB> = yP+60)) {// ستون پایین gameOver ()؛ } // پرنده drawBird (yB) را ترسیم می کند؛
// بعد از اینکه ستون از صفحه عبور کرد
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) {// مستطیل آبی را راست ستون myGLCD.setColor ترسیم می کند (114 ، 198 ، 206) ؛ myGLCD.fillRect (x+51 ، 0 ، x+60 ، y) ؛ // ستون myGLCD.setColor (0 ، 200 ، 20) را ترسیم می کند ؛ myGLCD.fillRect (x+49 ، 1 ، x+1 ، y-1) ؛ // قاب سیاه ستون myGLCD.setColor (0 ، 0 ، 0) را ترسیم می کند ؛ myGLCD.drawRect (x+50 ، 0 ، x ، y) ؛ // مستطیل آبی سمت چپ ستون را myGLCD.setColor ترسیم می کند (114 ، 198 ، 206) ؛ myGLCD.fillRect (x-1 ، 0 ، x-3 ، y) ؛
// ستون پایینی
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) را ترسیم می کند ؛ myGLCD.setBackColor (221 ، 216 ، 148) ؛ myGLCD.setFont (BigFont) ؛ myGLCD.printNumI (امتیاز ، 100 ، 220) ؛ }
// ====== drawBird () - عملکرد سفارشی
void drawBird (int y) {// Draws the bird - bitmap myGLCD.drawBitmap (50 ، y ، 35 ، 30 ، bird01) ؛ // مستطیل های آبی را در بالا و پایین پرنده ترسیم می کند تا حالت previus آن را پاک کند myGLCD.setColor (114 ، 198 ، 206) ؛ myGLCD.fillRoundRect (50 ، y ، 85 ، y-6) ؛ myGLCD.fillRoundRect (50 ، y+30 ، 85 ، y+36) ؛ } // ======= gameOver () - تابع سفارشی void gameOver () {تاخیر (3000)؛ // 1 ثانیه // صفحه را پاک می کند و متن myGLCD.clrScr () را چاپ می کند. myGLCD.setColor (255 ، 255 ، 255) ؛ myGLCD.setBackColor (0 ، 0 ، 0) ؛ myGLCD.setFont (BigFont) ؛ myGLCD.print ("GAME OVER" ، CENTER ، 40) ؛ myGLCD.print ("امتیاز:" ، 100 ، 80) ؛ myGLCD.printNumI (امتیاز ، 200 ، 80) ؛ myGLCD.print ("راه اندازی مجدد …" ، CENTER ، 120) ؛ myGLCD.setFont (SevenSegNumFont) ؛ myGLCD.printNumI (2 ، CENTER ، 150) ؛ تاخیر (1000) ؛ myGLCD.printNumI (1 ، CENTER ، 150) ؛ تاخیر (1000) ؛ // بالاترین نمره را در EEPROM می نویسد اگر (امتیاز> بیشترین نمره) {highScore = نمره ؛ EEPROM.write (0 ، بالاترین امتیاز) ؛ } // متغیرها را برای شروع مقادیر موقعیت xP = 319 بازنشانی می کند؛ yB = 50 ؛ fallRate = 0؛ نمره = 0 ؛ lastSpeedUpScore = 0 ؛ moveRate = 3 ؛ gameStarted = false؛ // راه اندازی مجدد بازی initateGame ()؛ }
مرحله 3: انجام شد
ما مدار را ایجاد کرده و کد را کامپایل کرده ایم. در حال حاضر ، ما فقط باید مگا آردوینو را وصل کرده و بازی را انجام دهیم.
در اینجا ، من پیوندی به یک ویدیو دارم که نحوه عملکرد این بازی و نحوه تنظیم آن را نشان می دهد:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
اگر مشکلی در زیر دارید به من اطلاع دهید.
توصیه شده:
پرنده Flappy Bird با ماهیچه: 9 مرحله (همراه با تصاویر)
پرنده فلپی با عضله: ممکن است به یاد داشته باشید که Flappy Bird جهان را تحت تاثیر قرار داد و در نهایت محبوبیت زیادی پیدا کرد ، سازنده آن را از فروشگاه های برنامه حذف کرد تا از تبلیغات ناخواسته جلوگیری کند. این Flappy Bird است که تا به حال ندیده اید ؛ با ترکیب چند قطعه از قفسه
پرنده روباتیک: 8 مرحله
Robotic Bird: این پروژه به شما نشان می دهد که چگونه یک پرنده روباتیک که آب می نوشد بسازید. شما می توانید پرنده ای را که در ویدئو کار می کند تماشا کنید. نوسان ساز از یک مدار ساده فلیپ فلاپ ساخته شده است که هنگام لمس پرنده به یکی از دو مخاطب ایجاد می شود
موجود پرنده Animatronic: 3 مرحله
موجود پرنده Animatronic: خوش آمدید! امروز من قصد دارم به شما نشان دهم که چگونه یک پرنده اسکلت ساده را که در فروشگاه دلار پیدا کرده ام زنده کنید. با این دانش شما می توانید آن را سفارشی کرده و به یک موجود پرنده بیگانه تبدیل شوید. ابتدا به اسکلت بی نیاز خواهید داشت
پرنده Animatronic: 3 مرحله
پرنده Animatronic: این Animatonic در ابتدا یک پروژه TSA (انجمن دانشجویی فناوری) بود. ما مجبور شدیم یک انیماترونیک بسازیم و نحوه عملکرد آن را با نمایش لوازم الکترونیکی کنترل توضیح دهیم
پرنده خراب: 8 مرحله
Crashy Bird: شما نیاز دارید: کامپیوتر یک کابل micro-bit A miro USB این تنها چیزی است که شما به آن احتیاج دارید ، اما ترجیحاً شما باید کل کیت Micro-bit را برای این کار داشته باشید. برای انجام کد نویسی نیز باید به