INHOUDSOPGAWE:

Floppy Bird: 3 stappe
Floppy Bird: 3 stappe

Video: Floppy Bird: 3 stappe

Video: Floppy Bird: 3 stappe
Video: Я сделал игру Flappy Bird в 3D (Ж@ПА ГОРИТ И В 3D) 2024, November
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Vandag maak ons 'n speletjie met 'n TFT LCD. Dit sal lyk soos 'n baie gewilde spel, en baie mense speel nog steeds hierdie speletjie. Die spel heet Flappy Bird, maar hierdie speletjie is 'n bietjie anders, want die UI is anders as die manier waarop die spel werk. Ek het hierdie speletjie Floppy Bird genoem, aangesien dit tot kopieregkwessies kan lei. Tog is dit 'n baie prettige speletjie en maklik om te maak. Ek het hierdie instruksies gemaak waarmee u die spel heeltemal kan maak en laat werk soos ek. As u enige vrae het, kommentaar lewer hieronder, en ek sal probeer om hierdie vrae so vinnig as moontlik te beantwoord.

Voorrade

- Arduino Mega 2560 en kabel

- Arduino Mega Shield

- Arduino TFT LCD Versoenbaar met die Arduino Mega 2560

- SD kaart

Stap 1: Monteer die TFT LCD

Die samestelling van die TFT LCD
Die samestelling van die TFT LCD

Nou kan ons die TFT LCD begin saamstel. Ons koppel die TFT LCD aan die skerm, dus neem eers die TFT LCD en pas dit basies met die penne op die skild. Sodra u die penne in lyn gebring het, druk die TFT LCD af sodat dit op sy plek pas. As al die penkoppe in die skild is en u nie die penkoppe kan sien nie, weet u dat die TFT LCD korrek gekoppel is. Vervolgens kan ons die skild aan die Arduino Mega 2560 koppel. Rig die penne van die skild op die Arduino Mega in en steek dit in. As al die penkoppe in die Arduino Mega is en u nie die penkoppe kan sien nie, is dit as u weet dat die TFT LCD behoorlik gekoppel is en gereed is om aan te skakel. Sluit die Arduino aan om te sien of u die LCD behoorlik gekoppel het, as die LCD aanskakel en die skerm wit is, baie geluk, u het die TFT LCD suksesvol gekoppel en nou is dit gereed om geprogrammeer te word. Laastens het ons een ding om te doen: om die SD -kaart in die LCD aan te sluit. Aan die agterkant van die TFT LCD is daar 'n SD -kaartgleuf waar u die SD -kaart eenvoudig kan aansluit. Koppel dit dus net aan en dit is klaar.

Stap 2: Programmering van die TFT LCD

Die programmering van die TFT LCD
Die programmering van die TFT LCD

Nou sal ons die LCD programmeer sodat dit die spel laat loop en dit kan speel. Hieronder is die kode wat u moet opstel en oplaai met die Arduino IDE.

Probleme wat u moontlik het:

Verander die parameters van die TFT LCD volgens die model wat u het.

VOLLEDIGE KODE:

#include #include #include

// ==== Voorwerpe skep

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parameters moet aangepas word by u Display/Shield -model URTouch myTouch (6, 5, 4, 3, 2);

// ==== Lettertipes definieer

eksterne uint8_t SmallFont ; eksterne uint8_t BigFont ; ekstern uint8_t SevenSegNumFont ;

eksterne ongetekende int bird01 [0x41A]; // Voël -bitmap

int x, y; // Veranderlikes vir die koördinate waar die skerm gedruk is

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int telling = 0; int lastSpeedUpScore = 0; int hoogste telling; boolean screenPressed = false; boolean gameStarted = false;

ongeldige opstelling () {

// Begin vertoon myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); hoogste telling = EEPROM.read (0); // Lees die hoogste telling van die EEPROM initiateGame (); // Begin die spel}

leemte -lus () {

xP = xP-movingRate; // xP - x koördinaat van die pilare; reeks: 319 - (-51) drawPilars (xP, yP); // Teken die pilare // yB - y koördinaat van die voël wat afhang van die waarde van die veranderende fallRate yB+= fallRateInt; fallRate = fallRate+0.4; // Elke invoer styg die daling, sodat ons die effek van versnelling/ swaartekrag kan inslaan fallRateInt = int (fallRate); // Kontroleer op botsing as (yB> = 180 || yB <= 0) {// bo en onder gameOver (); } as ((xP = 5) && (yB <= yP-2)) {// boonste pilaar gameOver (); } as ((xP = 5) && (yB> = yP+60)) {// onderste pilaar gameOver (); } // Teken die voël drawBird (yB);

// Nadat die pilaar deur die skerm gegaan het

as (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); } anders as (x <= 268) {// Teken 'n blou reghoek regs van die pilaar myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Teken die pilaar myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Teken die swart raam van die pilaar myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Teken die blou reghoek links van die pilaar myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Die onderste pilaar

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

// ====== drawBird () - pasgemaakte funksie

void drawBird (int y) {// Teken die voël - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Teken blou reghoeke bo en onder die voël om sy vorige toestand myGLCD.setColor (114, 198, 206) skoon te maak; myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - pasgemaakte funksie void gameOver () {delay (3000); // 1 sekonde // Maak die skerm skoon en druk die teks myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTRE, 40); myGLCD.print ("Telling:", 100, 80); myGLCD.printNumI (telling, 200, 80); myGLCD.print ("Herbegin …", CENTRE, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTRE, 150); vertraging (1000); myGLCD.printNumI (1, CENTRE, 150); vertraging (1000); // Skryf die hoogste telling in die EEPROM as (telling> hoogste telling) {hoogste telling = telling; EEPROM.write (0, hoogste telling); } // Stel die veranderlikes terug om posisiewaardes te begin xP = 319; yB = 50; valkoers = 0; telling = 0; lastSpeedUpScore = 0; bewegende koers = 3; gameStarted = vals; // Herbegin spel initiateGame (); }

Stap 3: Klaar

Klaar!
Klaar!

Ons het die kring gemaak en die kode saamgestel. Nou moet ons net die Arduino mega aansluit en die speletjie speel.

Hier het ek 'n skakel na 'n video wat wys hoe hierdie speletjie werk en wat ek moet doen om dit op te stel:

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

Laat weet my as u probleme onder vind.

Aanbeveel: