INHOUDSOPGAWE:
Video: Flappy Bird op ATtiny85 en OLED Display SSD1306: 6 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Hey Almal, Vandag gaan ek u 'n basiese klapvoëlkloon wys wat ek geskep het, en hoe u 'n soortgelyke speletjie kan maak. Ek gaan in wese deur my kode deur en verduidelik hoe dit elke stap werk. Hierdie speletjie is gebou om te werk op 'n ATtiny85 met 'n klok van 1 MHz, met 'n I2C OLED -skerm. Voorwaarts!
Stap 1: Die hardeware
As u nie daarin belangstel om 'n stroombaan vir die spel te bou nie, maar die teorie daaragter verstaan, kan u hierdie stap oorslaan.
My spel benodig twee knoppies, 'n ATtiny85, 'n I2C OLED 128x64px skerm en 'n bron van krag. My onderrigbare visitekaartjie/spelkonsole: ATtiny85 en OLED -skerm wys jou hoe om 'n bord te bou met alles wat jy nodig het! As u nie daarin belangstel om my bord te maak nie, moet u u broodbord uithaal, en ek sal u die spesifikasies vertel. U kan enige variant van die ATtiny85 gebruik. Ek beveel OLED -skerms soos hierdie aan.
- Draai die een kant van twee drukknoppies na penne 2 en 3 op jou ATtiny85. Voeg op hierdie drade ook 'n 10k ohm-weerstand by die grond (aftrekweerstand).
- Draai die ander kant van hierdie drukknoppies na spanning. As die knoppie nie ingedruk word nie, is die speldtoestand laag. As dit ingedruk word, is die speldtoestand hoog.
- Koppel pen 7 aan die SCL -pen op u skerm en pen 5 aan die SDA -pen op u skerm. Bedraad die kragpenne (VCC en GND) dienooreenkomstig.
- Koppel laastens pen 4 op die ATtiny aan die grond en pen 8 aan die spanning.
Stap 2: Die sagteware
Hier is 'n lêergids met al die lêers wat u nodig het om die spel uit te voer. Twee van die lêers, FlappyBird.ino en WallFunctions.h, het baie goeie kommentaar gelewer vir u leesgenot. U kan die FlappyBird.ino -skets na u ATtiny85 (by 1MHz) oplaai en wegspeel! As u die teorie agter hierdie speletjie leer, of u wil u eie spel maak, lees dan verder!
Daar is nog 'n paar probleme met my spel. I2C is op geen manier die beste manier om data oor te dra nie. Volgens hierdie pos kan die skerm slegs data teen ongeveer 100KHz aanvaar, so selfs as ons die ATtiny -kloksnelheid tot 8MHz verhoog, sal die I2C -kanaal steeds die knelpunt wees. Die skerm kan 'n maksimum van 10 fps lewer. Hoe meer aparte beelde die skerm moet teken, hoe stadiger is die hele proses. My spel is dus redelik maklik, aangesien u nie die mure baie vinnig oor die skerm kan laat beweeg nie! Hieronder is 'n paar uitdagings vir u as u dink dat u die taak volstaan:
- Om die spel moeiliker te maak, kyk of u die afstand tussen die mure 2 in plaas van 4 kan kry. Dit behoort nie te moeilik te wees as u eers verstaan hoe my program werk nie:). Plaas dit asseblief in die kommentaar as u dit kan laat werk!
- Nog 'n ding wat my spel ontbreek, is 'n tellingstelsel en 'n manier om die telling te wys en dit te stoor. Kyk of u een kan implementeer!
- Laastens, eerder as om die mure een kolom op 'n slag te laat beweeg, probeer om elke muur een pixel op 'n slag te laat beweeg vir gladder beweging.
Stap 3: Flappy Bird ATtiny85: Teorie
Alhoewel die skerm wat ons gebruik, 64 pixels in hoogte vir die spel kan gebruik, is dit slegs moontlik om elemente in blokke van 8 pixels te plaas. Daar is dus slegs 8 moontlike y-koördinate. Om dinge makliker te maak, het ek die hele skerm op hierdie manier in die sagteware verdeel en 'n rooster van 16 blokke by 8 blokke gemaak, waar elke blok 8x8 pixels is. Om elke blok te vul, is elke sprite in die spel 8x8 pixels. Dit maak alles BAIE makliker om te bestuur. As u na die prent hierbo kyk, kan u sien hoe ek die skerm verdeel het. Elke muur bestaan uit 6 blokke, met 'n gat van 2 blokke in hoogte, wat die totale hoogte van elke muur 8 blokke maak.
In die program word elke muur voorgestel as 'n struct, genaamd Wall. Elke muurstruktuur het twee eienskappe - holePosition en kolom. 'holePosition' is 'n getal 0-6, want daar is slegs 7 moontlike posisies in 'n muur van 8 blokke vir 'n gat van 2 blokke hoog. 'kolom' is 'n getal 0-15, aangesien daar 16 kolomme blokke op die skerm moontlik is.
Aanbeveel:
Muscle Powered Flappy Bird: 9 stappe (met foto's)
Muscle Powered Flappy Bird: U onthou miskien nog toe Flappy Bird die wêreld stormagtig maak en uiteindelik so gewild raak dat die skepper dit uit app -winkels verwyder het om ongewenste publisiteit te vermy. Dit is Flappy Bird soos jy nog nooit tevore gesien het nie; deur 'n paar uit die rak saam te voeg
ATtiny85 draagbare trilaktiwiteitsopsporing Horlosie en programmering ATtiny85 met Arduino Uno: 4 stappe (met foto's)
ATtiny85 draagbare trilaktiwiteitsopsporingshorlosie en programmering ATtiny85 met Arduino Uno: hoe kan u die draagbare aktiwiteitopsporing laat kyk? Dit is 'n draagbare apparaat wat ontwerp is om te vibreer wanneer dit stagnasie opspoor. Spandeer u die meeste van u tyd op die rekenaar soos ek? Sit u ure sonder om dit te besef? Dan is hierdie toestel f
ESP32 -koppelvlak met SSD1306 Oled met MicroPython: 5 stappe
ESP32 -koppelvlak met SSD1306 Oled With MicroPython: Micropython is die optimalisering en klein voetspoor van python. Dit was bedoel om te bou vir 'n ingeboude toestel met geheue beperkings en 'n lae kragverbruik. Micropython is beskikbaar vir baie beheergesinne, waaronder ESP8266, ESP32, Ardui
Arduino Flappy Bird - Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project: 3 stappe
Arduino Flappy Bird | Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project: Flappy Bird was in 'n paar jaar te gewild daar, en baie mense het dit op hul eie manier geskep, ek ook, ek het my weergawe van flappy bird geskep met Arduino en die goedkoop 2.4 " TFT Raakskerm SPFD5408, so laat ons begin
Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met 'n Itsybitsy M4 Express: 13 stappe (met foto's)
Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met behulp van 'n Itsybitsy M4 Express: Die SSD1306 OLED -skerm is 'n klein (0,96 "), goedkoop, algemeen beskikbaar, I2C, monochroom grafiese skerm met 128x64 pixels, wat maklik gekoppel kan word (slegs 4 drade) na mikroprosessor -ontwikkelingsborde soos 'n Raspberry Pi, Arduino of