Բովանդակություն:
Video: Անգործունյա թռչուն ՝ 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Այսօր մենք խաղ ենք պատրաստելու ՝ օգտագործելով TFT LCD: Սա կարծես մի խաղ լինի, որն իսկապես տարածված է, և շատերը դեռ խաղում են այս խաղը: Խաղը կոչվում է Flappy Bird, բայց այս խաղը մի փոքր այլ է, քանի որ UI- ն տարբեր է, ինչպես նաև խաղի ձևը: Այս խաղը կոչեցի Floppy Bird, քանի որ դա կարող է հանգեցնել հեղինակային իրավունքի խնդիրների: Այնուամենայնիվ, դա իսկապես զվարճալի խաղ է և հեշտ է պատրաստել: Ես դարձրել եմ սա ուսանելի, ինչը թույլ կտա ձեզ ամբողջովին դարձնել խաղը և այն դարձնել այնպես, ինչպես ես եմ արել: Եթե ունեք հարցեր, խնդրում ենք մեկնաբանել ներքևում, և ես կփորձեմ հնարավորինս արագ պատասխանել այս հարցերին:
Պարագաներ
- Arduino Mega 2560 և մալուխ
- Arduino Mega Shield
- Arduino TFT LCD Համատեղելի է Arduino Mega 2560- ի հետ
- SD քարտ
Քայլ 1: TFT LCD- ի հավաքում
Այժմ մենք կարող ենք սկսել TFT LCD- ի հավաքումը: Մենք TFT LCD- ը կմիացնենք վահանին, ուստի առաջին հերթին վերցրեք TFT LCD- ը և հիմնականում այն հավասարեցրեք վահանի կապումներին: Երբ կապումներն իրար հավասարեցրեք, TFT LCD- ն իջեցրեք ներքև, որպեսզի այն տեղավորվի տեղում: Երբ բոլոր կապող գլուխները գտնվում են վահանի մեջ, և դուք չեք կարող տեսնել դրանք, դա այն ժամանակ է, երբ դուք գիտեք, որ TFT LCD- ը պատշաճ կերպով միացված է: Հաջորդը, մենք կարող ենք վահանը միացնել Arduino Mega 2560 -ին: Հավասարեցրեք վահանի կապումներն Arduino Mega- ի վրա և միացրեք այն: երբ գիտեք, որ TFT LCD- ը պատշաճ կերպով միացված է և պատրաստ է միացման: Միացրեք Arduino- ին `տեսնելու համար, թե արդյոք 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 ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;
արտաքին անստորագիր int bird01 [0x41A]; // Թռչնի Bitmap
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 ամենաբարձր միավոր; բուլյան screenPressed = կեղծ; բուլյան gameStarted = կեղծ;
void setup () {
// Սկսել ցուցադրել myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); ամենաբարձր միավոր = EEPROM.read (0); // Կարդացեք EEPROM initateGame- ի ամենաբարձր գնահատականը (); // Սկսել խաղը}
դատարկ շրջան () {
xP = xP-moveRate; // xP - x սյուների կոորդինատ; միջակայք `319 - (-51) drawPilars (xP, yP); // Գծում է սյուները // yB - y թռչնի կոորդինատը, որը կախված է ընկնող Rate փոփոխականի արժեքից yB+= fallRateInt; fallRate = fallRate+0.4; // Յուրաքանչյուր ներխուժման անկման տեմպը մեծանում է, որպեսզի մենք կարողանանք արագացման/ ծանրության ազդեցությունը fallRateInt = int (fallRate); // Ստուգում է բախման եթե (yB> = 180 || yB <= 0) {// վերևի և ներքևի խաղը Over (); } if ((xP = 5) && (yB <= yP-2)) {// վերին սյան խաղը Over (); } if ((xP = 5) && (yB> = yP+60)) {// ստորին սյունով խաղը Over (); } // Նկարում է թռչնի 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); } 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); // Թռչունի վերևից և ներքևից գծում է կապույտ ուղղանկյուններ `մաքրելու իր նախածննդյան վիճակը 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 («Վերագործարկում …», ԿԵՆՏՐՈՆ, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, ԿԵՆՏՐՈՆ, 150); ուշացում (1000); myGLCD.printNumI (1, ԿԵՆՏՐՈՆ, 150); ուշացում (1000); // Գրում է EEPROM- ի ամենաբարձր գնահատականը, եթե (միավոր> ամենաբարձր միավոր) {ամենաբարձր գնահատականը = միավոր; EEPROM.write (0, ամենաբարձր գնահատական); } // Վերականգնում է փոփոխականները ՝ սկսելու դիրքի արժեքները xP = 319; yB = 50; fallRate = 0; հաշիվ = 0; lastSpeedUpScore = 0; moveRate = 3; gameStarted = կեղծ; // Վերագործարկեք խաղը initateGame (); }
Քայլ 3: Կատարված է:
Մենք կազմել ենք շրջանը և կազմել ծածկագիրը: Այժմ մենք պարզապես պետք է միացնենք Arduino մեգան և խաղանք խաղը:
Ահա, ես ունեմ մի տեսանյութի հղում, որը ցույց է տալիս, թե ինչպես է աշխատում այս խաղը և ինչ անել այն կարգավորելու համար.
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Տեղեկացրեք ինձ, եթե որևէ խնդիր ունեք ներքևում:
Խորհուրդ ենք տալիս:
Մագնիսական շարժառիթ ունեցող թռչուն `5 քայլ
Mրագրի մասին showsրագիրը ցույց է տալիս, թե ինչպես պատրաստել խաղալիք, որը ներկայացնում է թռչուն, որը թվիթեր է գրում, քանի որ դու դրան դրդում ես դա անել: Թռչունն ունի զգայարանների որոշակի օրգան, որը կոչվում է «եղեգի անջատիչ». երբ մագնիսը մոտենում է այս տարրի, շփումները փակվում են և
Խելացի ղեկային համակարգ ռոբոտների մեքենաների համար, որոնք օգտագործում են հին անգործունյա սկավառակակիր/սկավառակակիր Stepper Motor: 8 քայլ (նկարներով)
Խելացի ղեկային համակարգ ռոբոտների մեքենաների համար ՝ օգտագործելով հին դափնեկիր/սկավառակակիր Stepper Motor. Ահա հիանալի լուծում ՝ պարզապես օգտագործելով ձեր հին անգործունյա/ CD/ DVD կրիչներ: դիտեք այն և պատկերացում կազմեք դրա մասին Այցելեք georgeraveen.blogspot.com
Apple II անգործունյա Hackintosh I7-7700 3.6 ԳՀց ՝ 7 քայլ
Apple II Floppy Hackintosh I7-7700 3.6 ԳՀց. Այս առաջին պատկերը ձեզ հղում է անթերի շարժիչին (Apple- ի ծիածանի բնօրինակ պատկերանշանով), իմը մի փոքր ավելի վազք ունի: Երկրորդ պատկերը ներքինն է, ես մոռացել էի նկարել, նախքան այն ապամոնտաժելը, այնպես որ, Google- ի տրամադրությամբ
Amiga Arduino անգործունյա սկավառակ/պատյան ՝ 5 քայլ
Amiga Arduino անգործունյա սկավառակ/պատյան. վերևում
Անգործունյա սկավառակի գրիչի սեփականատեր ՝ 5 քայլ
Floppy Disk Գրիչ. Սա իմ առաջին հրահանգն է, այնպես որ ես կանեմ հնարավորը: Վերամշակեք ձեր հին անգործունյա սկավառակները գիժ գրիչի կրիչի մեջ: Նորաձև և շատ ֆունկցիոնալ