Spisu treści:

Dyskietka: 3 kroki
Dyskietka: 3 kroki

Wideo: Dyskietka: 3 kroki

Wideo: Dyskietka: 3 kroki
Wideo: Настоящая причина, почему за 10 лет Человека-паука сыграло 3 разных актёра 2024, Listopad
Anonim
dyskietki ptak
dyskietki ptak
dyskietki ptak
dyskietki ptak

Dzisiaj będziemy tworzyć grę na wyświetlaczu TFT LCD. Wyglądałoby to na grę, która jest bardzo popularna i wiele osób nadal w nią gra. Gra nazywa się Flappy Bird, ale ta gra jest nieco inna, ponieważ interfejs użytkownika jest inny, a także sposób działania gry. Nazwałem tę grę Floppy Bird, ponieważ może to prowadzić do problemów z prawami autorskimi. Niemniej jednak jest to naprawdę fajna gra i łatwa do zrobienia. Zrobiłem to instruktażowe, co pozwoli ci całkowicie stworzyć grę i sprawić, by działała tak, jak ja. Jeśli masz jakieś pytania, skomentuj poniżej, a postaram się odpowiedzieć na nie tak szybko, jak to możliwe.

Kieszonkowe dzieci

- Arduino Mega 2560 i kabel

- Mega Tarcza Arduino

- Arduino TFT LCD kompatybilny z Arduino Mega 2560

-Karta SD

Krok 1: Montaż wyświetlacza TFT LCD

Montaż TFT LCD
Montaż TFT LCD

Teraz możemy przystąpić do montażu wyświetlacza TFT LCD. Podłączymy wyświetlacz TFT LCD do osłony, więc najpierw weź wyświetlacz TFT LCD i w zasadzie wyrównaj go z pinami na osłonie. Po wyrównaniu pinów wciśnij wyświetlacz TFT LCD, aby znalazł się na swoim miejscu. Gdy wszystkie główki szpilek znajdują się w osłonie i nie widać główek szpilek, wtedy wiesz, że wyświetlacz TFT LCD jest prawidłowo podłączony. Następnie możemy podłączyć nakładkę do Arduino Mega 2560. Wyrównaj piny nakładki na Arduino Mega i podłącz ją. Gdy wszystkie główki pinów są w Arduino Mega i nie widać ich, to jest gdy wiesz, że wyświetlacz TFT LCD jest prawidłowo podłączony i gotowy do włączenia. Podłącz Arduino, aby sprawdzić, czy prawidłowo podłączyłeś wyświetlacz LCD, jeśli wyświetlacz LCD włącza się, a ekran jest biały, to gratulacje, udało Ci się podłączyć wyświetlacz TFT LCD i teraz można go zaprogramować. Na koniec mamy jedną rzecz do zrobienia, a mianowicie podłączenie karty SD do wyświetlacza LCD. Z tyłu wyświetlacza TFT LCD znajduje się gniazdo kart SD, do którego można po prostu podłączyć kartę SD. Dlatego po prostu podłącz i gotowe.

Krok 2: Programowanie TFT LCD

Programowanie TFT LCD
Programowanie TFT LCD

Teraz zaprogramujemy LCD, aby uruchamiał grę i możemy w nią grać. Poniżej znajduje się kod, który musisz skompilować i przesłać za pomocą Arduino IDE.

Problemy, które możesz mieć:

Zmień parametry TFT LCD zgodnie z posiadanym modelem.

KOMPLETNY KOD:

#include #include #include

//==== Tworzenie obiektów

UTFT mójGLCD(ILI9341_16, 38, 39, 40, 41); //Parametry należy dostosować do modelu wyświetlacza/ekranu URTouch myTouch(6, 5, 4, 3, 2);

//==== Definiowanie czcionek

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

extern unsigned int bird01[0x41A]; // Bitmapa ptaków

int x, y; // Zmienne dla współrzędnych, w których naciśnięto wyświetlacz

// Ptasiek

int xP = 319; int yP = 100; int yB = 50; intruchomość = 3; int fallRateInt = 0; współczynnik opadania pływaka = 0; wynik wewnętrzny = 0; int lastSpeedUpScore = 0; int najwyższy wynik; boolean screenPressed = false; gra logicznaUruchomiona = fałsz;

pusta konfiguracja () {

// Rozpocznij wyświetlanie myGLCD. InitLCD(); mójGLCD.clrScr(); myTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); najwyższy Wynik = EEPROM.read(0); // Odczytaj najwyższy wynik z EEPROM initialGame(); // Rozpocznij grę }

pusta pętla () {

xP=xP-szybkość ruchu; // xP - współrzędna x filarów; zakres: 319 - (-51) drawPilars(xP, yP); // Rysuje filary // yB - współrzędna y ptaka, która zależy od wartości zmiennej fallRate yB+=fallRateInt; FallRate=fallRate+0,4; // Z każdym inetracją szybkość opadania wzrasta tak, że możemy uzyskać efekt przyspieszenia/ grawitacji fallRateInt= int(fallRate); // Sprawdza kolizje if(yB>=180 || yB<=0){ // góra i dół gameOver(); } if((xP=5) && (yB<=yP-2){ // górny filar gameOver(); } if((xP=5) && (yB>=yP+60)){ // dolny filar gameOver(); } // Rysuje ptaka drawBird(yB);

// Po przejściu filaru przez ekran

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

mójGLCD.setColor(0, 200, 20);

mójGLCD.fillRect(318, y+81, x, 203); mójGLCD.setColor(0, 0, 0); mójGLCD.drawRect(319, y+80, x-1, 204); } else if(x<=268) { // Rysuje niebieski prostokąt na prawo od filaru myGLCD.setColor(114, 198, 206); mójGLCD.fillRect(x+51, 0, x+60, y); // Rysuje filar myGLCD.setColor(0, 200, 20); mójGLCD.fillRect(x+49, 1, x+1, y-1); // Rysuje czarną ramkę filaru myGLCD.setColor(0, 0, 0); mójGLCD.drawRect(x+50, 0, x, y); // Rysuje niebieski prostokąt na lewo od filaru myGLCD.setColor(114, 198, 206); mójGLCD.fillRect(x-1, 0, x-3, y);

// Dolny filar

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

//====== drawBird() - funkcja niestandardowa

void drawBird(int y) { // Rysuje ptaka - bitmapa myGLCD.drawBitmap (50, y, 35, 30, bird01); // Rysuje niebieskie prostokąty nad i pod ptakiem, aby wyczyścić jego poprzedni stan myGLCD.setColor(114, 198, 206); mójGLCD.fillRoundRect(50, y, 85, y-6); mójGLCD.fillRoundRect(50, y+30, 85, y+36); } //======== gameOver() - Funkcja niestandardowa void gameOver() { delay(3000); // 1 sekunda // Czyści ekran i drukuje tekst myGLCD.clrScr(); mójGLCD.setColor(255, 255, 255); mójGLCD.setBackColor(0, 0, 0); mójGLCD.setFont(BigFont); myGLCD.print("KONIEC GRY", CENTRUM, 40); myGLCD.print("Wynik:", 100, 80); myGLCD.printNumI(wynik, 200, 80); myGLCD.print("Ponowne uruchamianie…", CENTRUM, 120); mójGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(2, CENTRUM, 150); opóźnienie (1000); myGLCD.printNumI(1, CENTRUM, 150); opóźnienie (1000); // Zapisuje najwyższy wynik w pamięci EEPROM if (score > najwyższyScore) { najwyższyScore = wynik; EEPROM.write(0, najwyższy wynik); } // Resetuje zmienne do wartości pozycji początkowej xP=319; yB=50; wskaźnik upadku=0; wynik = 0; lastSpeedUpScore = 0; szybkość ruchu = 3; gameStarted = fałsz; // Zrestartuj grę initialGame(); }

Krok 3: Gotowe

Gotowe!
Gotowe!

Zrobiliśmy obwód i skompilowaliśmy kod. Teraz wystarczy podłączyć Arduino mega i zacząć grać.

Tutaj mam link do filmu, który pokazuje, jak działa ta gra i co zrobić, aby ją skonfigurować:

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

Daj mi znać, jeśli masz jakieś problemy poniżej.

Zalecana: