Sisukord:

Floppy Bird: 3 sammu
Floppy Bird: 3 sammu

Video: Floppy Bird: 3 sammu

Video: Floppy Bird: 3 sammu
Video: Как сделать игру Flappy Bird в Scratch? Урок для новичков 2024, Juuli
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Täna teeme mängu TFT LCD abil. See näeks välja nagu mäng, mis on tõesti populaarne ja paljud inimesed mängivad seda mängu endiselt. Mängu nimi on Flappy Bird, kuid see mäng on natuke teistsugune, kuna kasutajaliides ja mänguviis on erinevad. Ma nimetasin seda mängu Floppy Birdiks, kuna see võib põhjustada autoriõigusega seotud probleeme. Sellegipoolest on see väga lõbus mäng ja seda on lihtne teha. Olen teinud selle juhendatavaks, mis võimaldab teil mängu täielikult muuta ja panna see toimima nagu mina. Kui teil on küsimusi, palun kommenteerige allpool ja ma püüan neile küsimustele vastata nii kiiresti kui võimalik.

Tarvikud

- Arduino Mega 2560 ja kaabel

- Arduino megakilp

- Arduino TFT LCD ühildub Arduino Mega 2560 -ga

- SD -kaart

1. samm: TFT -LCD kokkupanek

TFT LCD kokkupanek
TFT LCD kokkupanek

Nüüd saame hakata TFT -LCD -d kokku panema. Ühendame TFT LCD -ekraani kilbiga, nii et kõigepealt võtke TFT -LCD ja joondage see põhimõtteliselt kilbi tihvtidega. Kui olete tihvtid joondanud, lükake TFT LCD alla, nii et see sobiks oma kohale. Kui kõik tihvtipead on kilbis ja te ei näe tihvtpeasid, siis teate, et TFT LCD on korralikult ühendatud. Järgmisena saame kilbi ühendada Arduino Mega 2560 -ga. Joondage kilbi tihvtid Arduino Mega külge ja ühendage see sisse. Kui kõik tihvtipead on Arduino Megas ja te ei näe tihvtpeasid, on see kui teate, et TFT LCD on korralikult ühendatud ja see on sisselülitamiseks valmis. Ühendage Arduino, et näha, kas olete LCD -ekraani õigesti ühendanud, kui LCD lülitub sisse ja ekraan on valge, siis õnnitleme, olete TFT LCD -ekraani edukalt ühendanud ja nüüd on see programmeerimiseks valmis. Lõpuks on meil üks asi, milleks on SD -kaardi ühendamine LCD -ekraaniga. TFT -LCD tagaküljel on SD -kaardi pesa, kuhu saate SD -kaardi lihtsalt ühendada. Seetõttu ühendage see lihtsalt vooluvõrku ja see on tehtud.

2. samm: TFT LCD -ekraani programmeerimine

TFT LCD programmeerimine
TFT LCD programmeerimine

Nüüd programmeerime vedelkristallekraani nii, et see käivitaks mängu ja saaksime seda mängida. Allpool on kood, mille peate Arduino IDE abil kompileerima ja üles laadima.

Võimalikud probleemid:

Muutke TFT LCD parameetreid vastavalt teie mudelile.

TÄIELIK KOOD:

#kaasama #kaasama #kaasama

// ==== Objektide loomine

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parameetrid tuleks kohandada vastavalt teie Display/Shield mudelile URTouch myTouch (6, 5, 4, 3, 2);

// ==== Fontide määratlemine

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;

extern allkirjastamata int bird01 [0x41A]; // Lindude bittkaart

int x, y; // Koordinaatide muutujad, kus ekraani on vajutatud

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int skoor = 0; int lastSpeedUpScore = 0; int kõrgeim tulemus; boolean screenPressed = vale; boolean gameStarted = false;

tühine seadistus () {

// Kuva kuva käivitamine myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); kõrgeim tulemus = EEPROM.read (0); // Kõrgeima punktisumma lugemine EEPROM -ist initiateGame (); // Alusta mängu}

void loop () {

xP = xP-liigutav kiirus; // xP - pilaaride x koordinaat; vahemik: 319 - (-51) drawPilars (xP, yP); // Joonistab sambad // linnu yB - y koordinaat, mis sõltub langeva kiiruse muutuja väärtusest yB+= fallRateInt; fallRate = languskiirus+0,4; // Iga sissetungimise korral langeb kukkumiskiirus nii, et saaksime kiirenduse/ gravitatsiooni languse mõjuRateInt = int (fallRate); // Kontrollib kokkupõrget, kui (yB> = 180 || yB <= 0) {// ülemine ja alumine mängOver (); } if ((xP = 5) && (yB <= yP-2)) {// ülemise samba mängOver (); } if ((xP = 5) && (yB> = yP+60)) {// alumise samba mängOver (); } // Joonistab linnu drawBird (yB);

// Kui sammas on sõela läbinud

kui (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) {// Joonistab samba paremale sinise ristküliku myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Joonistab samba myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Joonistab samba musta raami myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Joonistab sinise ristküliku sambast vasakul myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Alumine sammas

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); } // Joonistab tulemuse myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (skoor, 100, 220); }

// ====== drawBird () - kohandatud funktsioon

void drawBird (int y) {// Joonistab linnu - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Joonistab linnu kohale ja alla sinised ristkülikud, et kustutada eelnev olek myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - kohandatud funktsioon void gameOver () {delay (3000); // 1 sekund // Puhastab ekraani ja prindib teksti myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Skoor:", 100, 80); myGLCD.printNumI (skoor, 200, 80); myGLCD.print ("Taaskäivitamine …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); viivitus (1000); myGLCD.printNumI (1, CENTER, 150); viivitus (1000); // Kirjutab EEPROMi kõrgeima punktisumma, kui (skoor> kõrgeim tulemus) {kõrgeim tulemus = skoor; EEPROM.write (0, kõrgeim tulemus); } // Lähtestab muutujad lähtepositsiooni väärtusteks xP = 319; yB = 50; fallRate = 0; skoor = 0; lastSpeedUpScore = 0; liikuv kiirus = 3; gameStarted = vale; // Taaskäivitage mäng initiateGame (); }

3. samm: valmis

Valmis!
Valmis!

Oleme skeemi teinud ja koodi koostanud. Nüüd peame lihtsalt ühendama Arduino mega ja mängima mängu.

Siin on mul link videole, mis näitab, kuidas see mäng töötab ja mida selle seadistamiseks teha:

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

Andke mulle teada, kui teil on allpool probleeme.

Soovitan: