תוכן עניינים:

ציפור תקליטונים: 3 שלבים
ציפור תקליטונים: 3 שלבים

וִידֵאוֹ: ציפור תקליטונים: 3 שלבים

וִידֵאוֹ: ציפור תקליטונים: 3 שלבים
וִידֵאוֹ: אל תיגע לבחורה באיפור בחייםםם !!!! don't do that !!! 2024, נוֹבֶמבֶּר
Anonim
ציפור תקליטון
ציפור תקליטון
ציפור תקליטון
ציפור תקליטון

היום נכין משחק באמצעות TFT LCD. זה ייראה כמו משחק שהוא ממש פופולרי והרבה אנשים עדיין משחקים את המשחק הזה. המשחק נקרא Flappy Bird אבל המשחק הזה קצת שונה מכיוון שממשק המשתמש שונה כמו גם האופן בו המשחק פועל. קראתי למשחק הזה Floppy Bird מכיוון שזה עלול להוביל לבעיות זכויות יוצרים. עם זאת, הוא משחק מהנה מאוד וקל להכנה. עשיתי את זה להנחיה שיאפשר לך להפוך את המשחק לחלוטין ולגרום לו לעבוד כמו שעשיתי. אם יש לך שאלות, אנא הערה למטה ואני אנסה לענות על שאלות אלה במהירות האפשרית.

אספקה

- Arduino מגה 2560 וכבל

- מגן מגה ארדואינו

- Arduino TFT LCD תואם ל- Arduino Mega 2560

- כרטיס זיכרון

שלב 1: הרכבת מסך TFT

הרכבת LCD TFT
הרכבת LCD TFT

כעת, אנו יכולים להתחיל להרכיב את LCD TFT. נחבר את ה- LCD TFT למגן, אז ראשית קח את ה- LCD TFT ובעצם יישר אותו עם הסיכות שעל המגן. לאחר יישור הסיכות, דחוף את ה- LCD TFT כלפי מטה כך שיתאים למקומו. כאשר כל ראשי הסיכות נמצאים במגן ואתה לא יכול לראות את ראשי הסיכות, אז אתה יודע ש- TFT LCD מחובר כראוי. לאחר מכן, אנו יכולים לחבר את המגן ל- Arduino Mega 2560. יישר את סיכות המגן על ה- Arduino Mega ולחבר אותו. כאשר כל ראשי הסיכות נמצאים במגה Arduino ואתה לא יכול לראות את ראשי הסיכות, זה כאשר אתה יודע ש- TFT LCD מחובר כהלכה והוא מוכן להפעלה. חבר את ה- Arduino כדי לראות אם חיברת את ה- LCD כראוי, אם ה- LCD נדלק והמסך לבן אז מזל טוב, חיברת בהצלחה את ה- TFT LCD ועכשיו הוא מוכן לתכנות. לבסוף, יש לנו דבר אחד לעשות, שהוא חיבור כרטיס ה- SD ב- LCD. בחלקו האחורי של TFT LCD יש חריץ לכרטיס SD שבו אתה יכול פשוט לחבר את כרטיס ה- SD. לכן, פשוט חבר אותו וזה נגמר.

שלב 2: תכנות LCD TFT

תכנות LCD TFT
תכנות LCD TFT

כעת, נתכנת את ה- LCD כך שיפעיל את המשחק ונוכל לשחק אותו. להלן הקוד שאתה צריך לאסוף ולהעלות באמצעות Arduino IDE.

בעיות שעשויות להיות לך:

שנה את הפרמטרים של LCD TFT בהתאם לדגם שיש לך.

קוד מלא:

#include #include #include

// ==== יצירת אובייקטים

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // יש להתאים את הפרמטרים לדגם התצוגה/מגן URTouch myTouch (6, 5, 4, 3, 2);

// ==== הגדרת גופנים

חיצוני uint8_t SmallFont ; חיצוני uint8_t BigFont ; חיצוני uint8_t SevenSegNumFont ;

חיצוני int חתום int bird01 [0x41A]; // מפת סיביות לציפורים

int x, y; // משתנים לקואורדינטות שבהן נלחצה התצוגה

// ציפורי תקליטונים

int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int score = 0; int lastSpeedUpScore = 0; int הגבוה ביותר; screen booleanPressed = false; game booleanStarted = false;

הגדרת בטל () {

// התחל להציג myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); highestScore = EEPROM.read (0); // קרא את הציון הגבוה ביותר מ- EEPROM initiateGame (); // ליזום את המשחק}

לולאת חלל () {

xP = xP-movingRate; // xP - קואורדינטת x של העמודים; טווח: 319 - (-51) drawPilars (xP, yP); // מצייר את העמודים // yB - y קואורדינטה של הציפור שתלויה בערך משתנה fallRate yB+= fallRateInt; fallRate = fallRate+0.4; // בכל כניסה קצב הנפילה עולה כך שנוכל להשפיע על האצה/ כוח הכבידה fallRateInt = int (fallRate); // בודק התנגשות אם (yB> = 180 || yB <= 0) {// gameOver () למעלה ותחתון (); } אם ((xP = 5) && (yB <= yP-2)) {// עמוד עליון gameOver (); } אם ((xP = 5) && (yB> = yP+60)) {// gameunder עמוד תחתון (); } // מצייר את הציפור drawBird (yB);

// לאחר שהעמוד עבר במסך

אם (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); } אחרת אם (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) {// מצייר את הציפור - מפת סיביות myGLCD.drawBitmap (50, y, 35, 30, bird01); // מצייר מלבנים כחולים מעל ומתחת לציפור על מנת לנקות את מצבה הקודם myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - פונקציה מותאמת אישית void gameOver () {delay (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, CENTRE, 150); עיכוב (1000); myGLCD.printNumI (1, CENTRE, 150); עיכוב (1000); // כותב את הציון הגבוה ביותר ב- EEPROM אם (ציון> הציון הגבוה ביותר) {הגבוה ביותר = הציון; EEPROM.write (0, הגבוה ביותר); } // מאפס את המשתנים להתחלת ערכי מיקום xP = 319; yB = 50; fallRate = 0; ציון = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // הפעל מחדש את המשחק initateGame (); }

שלב 3: בוצע

בוצע!
בוצע!

יצרנו את המעגל וריכזנו את הקוד. עכשיו, אנחנו רק צריכים לחבר את המגה Arduino ולשחק את המשחק.

הנה, יש לי קישור לסרטון שמראה כיצד המשחק הזה עובד ומה עלי לעשות כדי להגדיר אותו:

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

הודע לי אם יש לך בעיות למטה.

מוּמלָץ: