Obsah:

Flappy Bird na ATtiny85 a OLED displeji SSD1306: 6 krokov (s obrázkami)
Flappy Bird na ATtiny85 a OLED displeji SSD1306: 6 krokov (s obrázkami)

Video: Flappy Bird na ATtiny85 a OLED displeji SSD1306: 6 krokov (s obrázkami)

Video: Flappy Bird na ATtiny85 a OLED displeji SSD1306: 6 krokov (s obrázkami)
Video: How to make a Flappy Bird Game using #esp32? 2024, November
Anonim
Image
Image
Hardvér
Hardvér

Ahojte, všetci, Dnes vám ukážem základný klon flappy vtákov, ktorý som vytvoril, a ako môžete pokračovať v tvorbe podobnej hry. V podstate s vami prejdem svoj kód a vysvetlím, ako to funguje na každom kroku. Táto hra je postavená na tom, aby fungovala na ATtiny85 s taktom 1 MHz a displejom I2C OLED. Ďalej!

Krok 1: Hardvér

Ak vás nezaujíma vytváranie obvodu pre hru, ale pochopenie teórie, ktorú stojí za tým, tento krok môžete preskočiť.

Moja hra vyžaduje dve tlačidlá, ATtiny85, obrazovku I2C OLED 128x64px a nejaký zdroj energie. Moja inštruktážna vizitka/herná konzola: Obrazovka ATtiny85 a OLED vám ukáže, ako postaviť dosku, na ktorej je všetko, čo potrebujete! Ak nemáte záujem o výrobu mojej nástenky, vyberte ju a ja vám poviem špecifikácie. Môžete použiť akýkoľvek variant ATtiny85. Odporúčam OLED displeje, ako je tento.

  1. Pripojte jednu stranu dvoch tlačidiel k pinom 2 a 3 na svojom ATtiny85. Na tieto vodiče tiež pridajte odpor 10 kOhm pripojený k zemi (sťahovací odpor).
  2. Druhú stranu týchto tlačidiel zapojte do napätia. Keď tlačidlo nestlačíte, stav špendlíka bude nízky. Po jeho stlačení bude stav kolíka vysoký.
  3. Pripojte kolík 7 k kolíku SCL na displeji a kolík 5 k kolíku SDA na displeji. Podľa toho zapojte napájacie kolíky (VCC a GND) na displej.
  4. Nakoniec pripojte pin 4 na ATtiny k zemi a pin 8 k napätiu.

Krok 2: Softvér

Softvér!
Softvér!

Tu je pripojený priečinok so všetkými súbormi, ktoré potrebujete na spustenie hry. Dva zo súborov, FlappyBird.ino a WallFunctions.h, sú veľmi dobre komentované pre vaše potešenie z čítania. Môžete nahrať skicu FlappyBird.ino do svojho ATtiny85 (na 1MHz) a hrať preč! Ak vás štúdium teórie tejto hry zaujíma alebo si chcete vytvoriť vlastnú hru, čítajte ďalej!

V mojej hre je stále niekoľko problémov. I2C nie je najlepší spôsob prenosu údajov akýmikoľvek prostriedkami. Podľa tohto príspevku môže displej prijímať údaje iba pri približne 100 kHz, takže aj keď zvýšime rýchlosť hodín ATtiny na 8 MHz, kanál I2C bude stále prekážkou. Displej dokáže produkovať maximálne 10 snímok za sekundu. Čím viac oddelených obrázkov musí displej kresliť, tým je celý proces pomalší. Moja hra je teda celkom jednoduchá, pretože nemôžete prinútiť steny, aby sa veľmi rýchlo pohybovali po obrazovke! Nasleduje niekoľko výziev, ak si myslíte, že úlohu splníte:

  • Aby bola hra náročnejšia, zistite, či môžete dosiahnuť, aby rozstup medzi stenami bol 2 namiesto 4. Nemalo by to byť príliš ťažké, keď pochopíte, ako môj program funguje:). Napíšte, prosím, do komentárov, či vám to môže fungovať!
  • Ďalšou vecou, ktorú mojej hre chýba, je systém skóre a spôsob, ako skóre zobraziť a uložiť ho. Zistite, či ho môžete implementovať!
  • Nakoniec, namiesto toho, aby sa steny pohybovali po jednom stĺpci, pokúste sa dosiahnuť, aby sa každá stena pohybovala po jednom pixeli, aby bol pohyb plynulejší.

Krok 3: Flappy Bird ATtiny85: Teória

Flappy Bird ATtiny85: Teória
Flappy Bird ATtiny85: Teória

Napriek tomu, že displej, ktorý používame, má výšku 64 pixelov, ktoré je možné použiť v hre, prvky je možné umiestniť iba do blokov s 8 pixelmi. Existuje teda iba 8 možných súradníc y. Aby to bolo jednoduchšie, v softvéri som týmto spôsobom rozdelil celú obrazovku a vytvoril som mriežku 16 blokov po 8 blokoch, kde každý blok má 8 x 8 pixelov. Na vyplnenie každého bloku má každý sprite v hre 8 x 8 pixelov. Vďaka tomu je všetko oveľa jednoduchšie spravované. Ak sa pozriete na obrázok vyššie, môžete vidieť, ako som rozdelil obrazovku. Každá stena sa skladá zo 6 blokov s dierou na výšku 2 bloky, takže celková výška každej steny je 8 blokov.

V programe je každá stena znázornená ako štruktúra nazývaná stena. Každá štruktúra steny má dve vlastnosti - polohu diery a stĺpik. 'holePosition' je číslo 0-6, pretože v stene s 8 blokmi je len 7 možných polôh pre dieru vysokú 2 bloky. „Stĺpec“je číslo 0-15, pretože na obrazovke je možné 16 stĺpcov blokov.

Odporúča: