Sadržaj:
Video: Flappy Bird na ATtiny85 i OLED zaslonu SSD1306: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Hej svima, Danas ću vam pokazati osnovni klon flappy bird koji sam stvorio i kako možete napraviti sličnu igru. U biti ću s vama proći kroz svoj kôd i objasniti kako to funkcionira na svakom koraku. Ova igra je napravljena za rad na ATtiny85 taktu od 1MHz, s I2C OLED zaslonom. Naprijed!
Korak 1: Hardver
Ako niste zainteresirani za stvaranje kola za igru, ali razumijete teoriju koja stoji iza njega, možete preskočiti ovaj korak.
Moja igra zahtijeva dva gumba, ATtiny85, I2C OLED ekran 128x64px i neki izvor napajanja. Moja instruktivna posjetnica/igraća konzola: ATtiny85 i OLED zaslon pokazuju vam kako izgraditi ploču na kojoj se nalazi sve što vam je potrebno! Ako niste zainteresirani za izradu moje ploče, izađite s ploče i reći ću vam specifikacije. Možete koristiti bilo koju varijantu ATtiny85. Preporučujem OLED zaslone poput ovog.
- Spojite jednu stranu dvaju tipki na pinove 2 i 3 na vašem ATtiny85. Na ove žice dodajte i otpornik od 10 k ohma spojen na masu (padajući otpornik).
- Spojite drugu stranu ovih gumba na napon. Kad gumb ne pritisnete, stanje pina će biti nisko. Kada se pritisne, stanje pina će biti visoko.
- Spojite pin 7 na SCL pin na zaslonu, a pin 5 na SDA pin na zaslonu. U skladu s tim ožičite priključke za napajanje (VCC i GND) na zaslonu.
- Na kraju, spojite iglu 4 na ATtiny na masu i pin 8 na napon.
Korak 2: Softver
Ovdje je priložena mapa sa svim datotekama koje su vam potrebne za pokretanje igre. Dvije datoteke, FlappyBird.ino i WallFunctions.h, vrlo su dobro komentirane za vaše zadovoljstvo čitanja. Skicu FlappyBird.ino možete postaviti na svoj ATtiny85 (na 1MHz) i igrati u gostima! Ako vas zanima teorija koja stoji iza ove igre ili želite napraviti svoju igru, čitajte dalje!
Još postoji nekoliko problema s mojom igrom. I2C nije najbolji način prijenosa podataka na bilo koji način. Prema ovom postu, zaslon može prihvatiti samo podatke na oko 100KHz, pa čak i ako povećamo taktu ATtinyja na 8MHz, I2C kanal i dalje će biti usko grlo. Zaslon može prikazati maksimalno 10 fps. Što zaslon mora izvući više zasebnih slika, cijeli je proces sporiji. Dakle, moja je igra prilično jednostavna jer ne možete postići da se zidovi kreću vrlo brzo po ekranu! U nastavku vam donosimo neke izazove ako mislite da ste na visini zadatka:
- Da biste otežali igru, provjerite možete li povećati razmak između zidova 2 umjesto 4. Ne bi trebalo biti previše teško kad shvatite kako moj program funkcionira:). Javite u komentarima ako uspijete!
- Još jedna stvar koja nedostaje mojoj igri je sustav bodovanja i način da prikažem rezultat i spremim ga. Pogledajte možete li ga implementirati!
- Na kraju, umjesto da se zidovi pomiču jedan po jedan stupac, pokušajte natjerati svaki zid da se pomiče jedan po jedan piksel radi lakšeg kretanja.
Korak 3: Flappy Bird ATtiny85: Teorija
Iako zaslon koji koristimo ima 64 piksela visine za igru, moguće je postaviti elemente samo u blokove od 8 piksela. Dakle, postoji samo 8 mogućih y-koordinata. Da bih olakšao stvari, u softveru sam na ovaj način podijelio cijeli zaslon, napravivši mrežu od 16 blokova po 8 blokova, gdje je svaki blok 8x8 piksela. Za ispunu svakog bloka svaki sprite u igri ima 8x8 piksela. To sve čini MNOGO lakšim za upravljanje. Ako pogledate gornju sliku, možete vidjeti kako sam podijelio zaslon. Svaki zid sastoji se od 6 blokova, s rupom od 2 bloka po visini, što ukupnu visinu svakog zida čini 8 blokova.
U programu je svaki zid predstavljen kao struktura zvana Zid. Svaka zidna konstrukcija ima dva svojstva - položaj rupe i stupac. 'holePosition' je broj 0-6, jer postoji samo 7 mogućih položaja u zidu od 8 blokova za rupu visoku 2 bloka. 'stupac' je broj 0-15, jer je na zaslonu moguće 16 stupaca blokova.
Preporučeni:
Flappy Bird na mišiće: 9 koraka (sa slikama)
Flappy Bird s mišićima: Možda se sjećate kada je Flappy Bird olujno zauzeo svijet, postajući na kraju toliko popularan da ga je tvorac uklonio iz trgovina aplikacija kako bi izbjegao neželjeni publicitet. Ovo je Flappy Bird kakvog dosad niste vidjeli; kombinirajući nekoliko komposta s polica
Bitmap animacija na SSD1331 OLED zaslonu (SPI) s Visuinom: 8 koraka
Bitmap animacija na SSD1331 OLED zaslonu (SPI) s Visuinom: U ovom ćemo vodiču prikazati i kretati se po bitmapskoj slici u jednostavnom obliku animacije na SSD1331 OLED zaslonu (SPI) s Visuinom. Pogledajte video
Kako pomicati TEKST na I2C 0,91 "128X32 OLED ZASLONU: 6 koraka
Kako pomicati TEKST na I2C 0,91 "128X32 OLED ZASLONU: U ovom ćemo vodiču naučiti kako pomicati TEKST na I2C 0,91" 128X32 OLED ZASLONU pomoću softvera Arduino i Visuino. Pogledajte video
Tweetovi na OLED SPI zaslonu i fotonska ploča od čestica: 6 koraka
Tvitovi na OLED SPI zaslonu i fotonska ploča od čestica: pozdrav svima. Ovaj jednostavan vodič će nam pokazati kako čitati naše tweetove koristeći IFTTT i Photon ploču. Možda ćete morati vidjeti ovo uputstvo
Grafika na SSD1306 I2C OLED ekranu 128x64 s CircuitPythonom pomoću Itsybitsy M4 Express: 13 koraka (sa slikama)
Grafika na SSD1306 I2C OLED zaslonu 128x64 s CircuitPythonom pomoću Itsybitsy M4 Expressa: SSD1306 OLED zaslon je mali (0,96 "), jeftin, široko dostupan, I2C, jednobojni grafički zaslon sa 128x64 piksela, koji se lako povezuje (samo 4 žice) na mikroprocesorske razvojne ploče kao što su Raspberry Pi, Arduino ili