Inhoudsopgave:

Floppy Bird: 3 stappen
Floppy Bird: 3 stappen

Video: Floppy Bird: 3 stappen

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

Vandaag gaan we een spel maken met een TFT LCD. Dit zou eruitzien als een spel dat erg populair is en veel mensen spelen dit spel nog steeds. De game heet Flappy Bird, maar deze game is een beetje anders omdat de gebruikersinterface anders is en de manier waarop de game werkt. Ik noemde dit spel Floppy Bird omdat dit tot copyrightproblemen zou kunnen leiden. Desalniettemin is het een erg leuk spel en het is makkelijk te maken. Ik heb dit instructable gemaakt waarmee je het spel volledig kunt maken en het kunt laten werken zoals ik deed. Als je vragen hebt, reageer dan hieronder en ik zal proberen deze vragen zo snel mogelijk te beantwoorden.

Benodigdheden

- Arduino Mega 2560 en kabel

- Arduino Mega Shield

- Arduino TFT LCD Compatibel met de Arduino Mega 2560

- SD-kaart

Stap 1: Het TFT LCD-scherm monteren

Het TFT LCD-scherm in elkaar zetten
Het TFT LCD-scherm in elkaar zetten

Nu kunnen we beginnen met het monteren van de TFT LCD. We zullen het TFT LCD-scherm op het schild aansluiten, dus neem eerst het TFT LCD-scherm en lijn het in feite uit met de pinnen op het schild. Nadat u de pinnen hebt uitgelijnd, duwt u het TFT LCD-scherm naar beneden zodat het op zijn plaats past. Als alle pinkoppen in het schild zitten en je kunt de pinkoppen niet zien, dan weet je dat het TFT LCD-scherm goed is aangesloten. Vervolgens kunnen we het schild op de Arduino Mega 2560 aansluiten. Lijn de pinnen van het schild op de Arduino Mega uit en sluit het aan. Als alle pinnen in de Arduino Mega zitten en je de pinnen niet kunt zien, is dat wanneer u weet dat het TFT LCD-scherm correct is aangesloten en klaar is om te worden ingeschakeld. Sluit de Arduino aan om te zien of je het LCD-scherm correct hebt aangesloten, als het LCD-scherm wordt ingeschakeld en het scherm wit is, gefeliciteerd, je hebt het TFT LCD-scherm met succes aangesloten en nu is het klaar om te worden geprogrammeerd. Ten slotte moeten we nog één ding doen, namelijk de SD-kaart in het LCD-scherm aansluiten. Aan de achterkant van het TFT LCD-scherm bevindt zich een SD-kaartsleuf waar u eenvoudig de SD-kaart in kunt steken. Dus gewoon inpluggen en klaar.

Stap 2: Programmeren van de TFT LCD

Het TFT LCD-scherm programmeren
Het TFT LCD-scherm programmeren

Nu zullen we het LCD-scherm programmeren zodat het het spel uitvoert en we het kunnen spelen. Hieronder staat de code die je moet compileren en uploaden met behulp van de Arduino IDE.

Mogelijke problemen:

Wijzig de parameters van het TFT LCD-scherm volgens het model dat u heeft.

VOLLEDIGE CODE:

#include #include #include

//==== Objecten maken

UTFT myGLCD(ILI9341_16, 38, 39, 40, 41); //Parameters moeten worden aangepast aan uw Display/Shield-model URTouch myTouch (6, 5, 4, 3, 2);

//==== Lettertypen definiëren

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

extern niet-ondertekend int bird01[0x41A]; // Bitmap van vogels

int x, y; // Variabelen voor de coördinaten waar het scherm is ingedrukt

// Floppy Bird

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 hoogste score; booleaans scherm Pressed = false; boolean gameStarted = false;

ongeldige setup() {

// Start weergave myGLCD. InitLCD(); mijnGLCD.clrScr(); mijnTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); hoogsteScore = EEPROM.lezen(0); // Lees de hoogste score van de EEPROM initialGame(); // Start het spel }

lege lus() {

xP=xP-movingRate; // xP - x-coördinaat van de pilaren; bereik: 319 - (-51) trekpilaren (xP, yP); // Tekent de pijlers // yB - y-coördinaat van de vogel die afhangt van de waarde van de variabele fallRate yB+=fallRateInt; fallRate=fallRate+0,4; // Elke inetratie neemt de valsnelheid toe, zodat we het effect van versnelling/ zwaartekracht kunnen fallRateInt= int(fallRate); // Controleert op botsing if(yB>=180 || yB<=0){ // top en bottom gameOver(); } if((xP=5) && (yB<=yP-2)){ // bovenste pijler gameOver(); } if((xP=5) && (yB>=yP+60)){ // lagere pijler gameOver(); } // Tekent de vogel drawBird (yB);

// Nadat de pilaar door het scherm is gegaan

if (xPRESET=250) && (x=0) && (y=0) && (x=30) && (y=270){ myGLCD.setColor (0, 200, 20); mijnGLCD.fillRect (318, 0, x, y-1); mijnGLCD.setColor (0, 0, 0); mijnGLCD.drawRect(319, 0, x-1, y);

mijnGLCD.setColor (0, 200, 20);

mijnGLCD.fillRect(318, y+81, x, 203); mijnGLCD.setColor (0, 0, 0); mijnGLCD.drawRect(319, y+80, x-1, 204); } else if(x<=268) { // Tekent een blauwe rechthoek rechts van de pilaar myGLCD.setColor (114, 198, 206); mijnGLCD.fillRect(x+51, 0, x+60, y); // Tekent de pijler myGLCD.setColor (0, 200, 20); mijnGLCD.fillRect(x+49, 1, x+1, y-1); // Tekent het zwarte frame van de pilaar myGLCD.setColor (0, 0, 0); mijnGLCD.drawRect(x+50, 0, x, y); // Tekent de blauwe rechthoek links van de pilaar myGLCD.setColor (114, 198, 206); mijnGLCD.fillRect(x-1, 0, x-3, y);

// De onderste pijler

mijnGLCD.setColor (114, 198, 206); mijnGLCD.fillRect(x+51, y+80, x+60, 204); mijnGLCD.setColor (0, 200, 20); mijnGLCD.fillRect(x+49, y+81, x+1, 203); mijnGLCD.setColor (0, 0, 0); mijnGLCD.drawRect(x+50, y+80, x, 204); mijnGLCD.setColor (114, 198, 206); mijnGLCD.fillRect(x-1, y+80, x-3, 204); } // Tekent de score myGLCD.setColor (0, 0, 0); mijnGLCD.setBackColor (221, 216, 148); mijnGLCD.setFont(BigFont); mijnGLCD.printNumI(score, 100, 220); }

//====== drawBird() - Aangepaste functie

void drawBird (int y) { // Tekent de vogel - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Tekent blauwe rechthoeken boven en onder de vogel om de vorige status myGLCD.setColor (114, 198, 206) te wissen; myGLCD.fillRoundRect(50, y, 85, y-6); myGLCD.fillRoundRect(50, y+30, 85, y+36); } //======== gameOver() - Aangepaste functie void gameOver() { delay(3000); // 1 seconde // Wist het scherm en drukt de tekst myGLCD.clrScr(); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.setFont(BigFont); myGLCD.print("SPEL OVER", CENTRUM, 40); myGLCD.print("Score:", 100, 80); mijnGLCD.printNumI(score, 200, 80); myGLCD.print("Herstarten…", CENTER, 120); mijnGLCD.setFont(SevenSegNumFont); mijnGLCD.printNumI(2, CENTER, 150); vertraging (1000); mijnGLCD.printNumI(1, CENTER, 150); vertraging (1000); // Schrijft de hoogste score in de EEPROM als (score > hoogste score) { hoogste score = score; EEPROM.write(0, hoogste score); } // Stelt de variabelen opnieuw in op startpositiewaarden xP=319; yB=50; fallRate=0; score = 0; lastSpeedUpScore = 0; bewegende snelheid = 3; gameStarted = false; // Start het spel opnieuw initialGame(); }

Stap 3: Klaar

Gedaan!
Gedaan!

We hebben de schakeling gemaakt en de code gecompileerd. Nu hoeven we alleen nog maar de Arduino-mega aan te sluiten en het spel te spelen.

Hier heb ik een link naar een video die laat zien hoe dit spel werkt en wat je moet doen om het in te stellen:

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

Laat het me weten als je problemen hebt hieronder.

Aanbevolen: