Cuprins:
Video: Flappy Bird pe ATtiny85 și ecran OLED SSD1306: 6 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Buna tuturor, Astăzi vă voi arăta o clonă de pasăre de bază pe care am creat-o și cum puteți face un joc similar. Voi parcurge în esență codul meu cu dvs. și vă voi explica cum funcționează la fiecare pas al drumului. Acest joc este conceput pentru a rula pe un ATtiny85 tactat la 1MHz, cu un afișaj I2C OLED. Înainte!
Pasul 1: Hardware-ul
Dacă nu sunteți interesat să construiți de fapt un circuit pentru joc, dar să înțelegeți teoria din spatele acestuia, puteți sări peste acest pas.
Jocul meu necesită două butoane, un ATtiny85, un ecran I2C OLED 128x64px și o sursă de energie. Cartea mea de vizită / Consola de joc instructabilă: ecranul ATtiny85 și OLED vă arată cum să construiți o placă care să aibă tot ce aveți nevoie pe ea! Dacă nu ești interesat să îmi creezi tabloul, scoate-ți tabelul și îți voi spune specificațiile. Puteți utiliza orice variantă a ATtiny85. Recomand afișajele OLED ca acesta.
- Conectați o parte a celor două butoane la pinii 2 și 3 de pe ATtiny85. Pe aceste fire, adăugați și un rezistor de 10k ohm conectat la masă (rezistor de tragere).
- Conectați cealaltă parte a acestor butoane la tensiune. Când butonul nu este apăsat, starea pinului va fi scăzută. Când este apăsat, starea pinului va fi ridicată.
- Conectați pinul 7 la pinul SCL de pe afișaj și pinul 5 la pinul SDA de pe ecran. Conectați în mod corespunzător pinii de alimentare (VCC și GND) de pe afișaj.
- În cele din urmă, conectați pinul 4 de la ATtiny la masă și pinul 8 la tensiune.
Pasul 2: Software-ul
Atașat aici este un folder cu toate fișierele de care aveți nevoie pentru a rula jocul. Două dintre fișiere, FlappyBird.ino și WallFunctions.h, sunt foarte bine comentate pentru plăcerea dvs. de a citi. Puteți încărca schița FlappyBird.ino pe ATtiny85 (la 1 MHz) și să vă jucați departe! Dacă învățarea teoriei din spatele acestui joc vă interesează sau doriți să vă creați propriul joc, citiți mai departe!
Există încă câteva probleme cu jocul meu. I2C nu este cel mai bun mod de a transmite date prin orice mijloace. Conform acestei postări, afișajul poate accepta date doar la aproximativ 100KHz, deci chiar dacă mărim viteza ceasului ATtiny la 8 MHz, canalul I2C va fi totuși blocajul. Afișajul poate afișa maxim 10 fps. Cu cât afișajul trebuie să deseneze imagini separate, cu atât întregul proces este mai lent. Astfel, jocul meu este destul de ușor, deoarece nu puteți face ca pereții să se miște foarte repede pe ecran! Mai jos sunt câteva provocări pentru dvs. dacă credeți că sunteți la înălțimea sarcinii:
- Pentru a face jocul mai greu, vedeți dacă puteți obține distanța dintre pereți la 2 în loc de 4. Nu ar trebui să fie prea greu odată ce înțelegeți cum funcționează programul meu:). Vă rugăm să postați în comentarii dacă puteți să funcționeze!
- Un alt lucru care lipsește jocului meu este un sistem de scor și o modalitate de a afișa scorul și de a-l salva. Vedeți dacă puteți implementa una!
- În cele din urmă, mai degrabă decât ca pereții să se miște o coloană la un moment dat, încercați să faceți ca fiecare perete să miște un pixel la un moment dat pentru o mișcare mai lină.
Pasul 3: Flappy Bird ATtiny85: Teorie
Chiar dacă afișajul pe care îl folosim are 64 de pixeli înălțime de utilizat pentru joc, este posibilă doar poziționarea elementelor în blocuri de 8 pixeli. Astfel, există doar 8 posibile coordonate y. Pentru a ușura lucrurile, în software am împărțit întregul ecran în acest mod, făcând o grilă de 16 blocuri pe 8 blocuri, unde fiecare bloc este de 8x8 pixeli. Pentru a umple fiecare bloc, fiecare sprite din joc are 8x8 pixeli. Acest lucru face totul mult mai ușor de gestionat. Dacă vă uitați la imaginea de mai sus, puteți vedea cum am împărțit ecranul. Fiecare perete este compus din 6 blocuri, cu o gaură de 2 blocuri în înălțime, făcând înălțimea totală a fiecărui perete 8 blocuri.
În program, fiecare perete este reprezentat ca o structură, numită Perete. Fiecare structură de perete are două proprietăți - holePosition și column. „holePosition” este un număr 0-6, deoarece există doar 7 poziții posibile într-un perete de 8 blocuri pentru o gaură de 2 blocuri înălțime. „coloană” este un număr 0-15, deoarece există 16 coloane de blocuri posibile pe ecran.
Recomandat:
Macintosh cu ecran tactil - Mac clasic cu un iPad Mini pentru ecran: 5 pași (cu imagini)
Macintosh cu ecran tactil | Mac clasic cu un iPad Mini pentru ecran: Aceasta este actualizarea și designul meu revizuit despre cum să înlocuiesc ecranul unui Macintosh de epocă cu un iPad mini. Acesta este al șaselea dintre acestea realizat de-a lungul anilor și sunt destul de mulțumit de evoluția și designul acestuia! În 2013, când am făcut
Arduino Flappy Bird - Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project: 3 pași
Arduino Flappy Bird | Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project: Flappy Bird a fost un joc prea popular acolo în câțiva ani și mulți oameni l-au creat în felul lor, așa am făcut și eu, am creat versiunea mea de flappy bird cu Arduino și ieftinul 2.4" TFT Ecran tactil SPFD5408, Deci, să începem
Joacă un joc PONG cu Arduino Uno și ecran OLED 0.96 SSD1306: 6 pași
Joacă un joc PONG cu Arduino Uno și OLED 0.96 SSD1306 Display: Bună ziua, astăzi vom face un joc PONG cu Arduino. Vom folosi ecranul adafruit 0.96 oled pentru a afișa jocul & apăsați butoanele pentru a controla jocul
Grafică pe un ecran SSD1306 I2C OLED 128x64 cu CircuitPython folosind un Itsybitsy M4 Express: 13 pași (cu imagini)
Grafică pe un afișaj SSD1306 I2C OLED 128x64 cu CircuitPython folosind un Itsybitsy M4 Express: Afișajul OLED SSD1306 este un afișaj grafic monocrom mic (0,96 "), ieftin, disponibil pe scară largă, I2C, cu 128x64 pixeli, care este ușor de interfațat (doar 4 fire) pe plăci de dezvoltare microprocesor precum Raspberry Pi, Arduino sau
Carte de vizită / Consolă de joc: ATtiny85 și ecran OLED: 5 pași (cu imagini)
Carte de vizită / Consolă de joc: Ecran ATtiny85 și OLED: Bună tuturor! Astăzi vă voi arăta cum vă puteți construi propria carte de vizită / consolă de jocuri / orice vă puteți imagina, care are un afișaj OLED I2C retroiluminat și un microprocesor ATtiny85. În acest Instructable vă voi spune cum un PCB pe care îl desemnez