Indholdsfortegnelse:
Video: Flappy Bird på ATtiny85 og OLED Display SSD1306: 6 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Hey alle sammen, I dag vil jeg vise dig en grundlæggende klapfuglklon, som jeg har oprettet, og hvordan du kan lave et lignende spil. Jeg vil i det væsentlige gennemgå min kode med dig og forklare, hvordan det fungerer hvert trin på vejen. Dette spil er bygget til at køre på en ATtiny85 klokket til 1MHz, med en I2C OLED -skærm. Fremad!
Trin 1: Hardware
Hvis du ikke er interesseret i faktisk at bygge et kredsløb til spillet, men forstår teorien bag det, kan du springe dette trin over.
Mit spil kræver to knapper, en ATtiny85, en I2C OLED 128x64px skærm og en vis strømkilde. Mit instruerbare visitkort/spilkonsol: ATtiny85 og OLED -skærm viser dig, hvordan du bygger et bræt, der har alt, hvad du har brug for! Hvis du ikke er interesseret i at lave mit bræt, så tag dit brødbræt ud, og jeg fortæller dig specifikationerne. Du kan bruge enhver variant af ATtiny85. Jeg anbefaler OLED -skærme som denne.
- Led den ene side af to trykknapper til ben 2 og 3 på din ATtiny85. På disse ledninger tilføjes også en 10k ohm modstand tilsluttet jord (pull-down modstand).
- Led den anden side af disse trykknapper til spænding. Når der ikke trykkes på knappen, vil pin -tilstanden være lav. Når der trykkes på den, vil pin -tilstanden være høj.
- Tilslut pin 7 til SCL -pin på din skærm, og pin 5 til SDA -pin på din skærm. Tilslut strømstifterne (VCC og GND) på skærmen i overensstemmelse hermed.
- Tilslut til sidst pin 4 på ATtiny til jorden og pin 8 til spænding.
Trin 2: Softwaren
Vedhæftet her er en mappe med alle de filer, du har brug for for at køre spillet. To af filerne, FlappyBird.ino og WallFunctions.h, er meget godt kommenteret for din læselyst. Du kan uploade FlappyBird.ino -skitsen til din ATtiny85 (ved 1MHz) og spille væk! Hvis du lærer teorien bag dette spil at interessere dig, eller hvis du vil lave dit eget spil, så læs videre!
Der er stadig et par problemer med mit spil. I2C er ikke den bedste måde at overføre data på nogen måde. Ifølge dette indlæg kan displayet kun acceptere data ved omkring 100KHz, så selvom vi stiger ATtiny -urhastigheden til 8MHz, vil I2C -kanalen stadig være flaskehalsen. Skærmen kan maksimalt udsende ca. 10 fps. Jo mere separate billeder displayet skal tegne, jo langsommere er hele processen. Således er mit spil ganske let, da du ikke kan få væggene til at bevæge sig meget hurtigt over skærmen! Nedenfor er nogle udfordringer for dig, hvis du tror, at du kan klare opgaven:
- For at gøre spillet sværere, se om du kan få afstanden mellem væggene til at være 2 i stedet for 4. Det burde ikke være for svært, når du forstår, hvordan mit program fungerer:). Skriv venligst i kommentarerne, hvis du kan få det til at fungere!
- En anden ting, mit spil mangler, er et scoringssystem og en måde at vise scoren på og gemme den. Se om du kan implementere en!
- Endelig, i stedet for at få væggene til at flytte en kolonne ad gangen, kan du prøve at få hver væg til at flytte en pixel ad gangen for en jævnere bevægelse.
Trin 3: Flappy Bird ATtiny85: Teori
Selvom den skærm, vi bruger, har 64 pixels i højden, der skal bruges til spillet, er det kun muligt at placere elementer i blokke på 8 pixels. Der er således kun 8 mulige y-koordinater. For at gøre tingene lettere delte jeg i softwaren hele skærmen på denne måde og lavede et gitter med 16 blokke med 8 blokke, hvor hver blok er 8x8 pixels. For at fylde hver blok er hver sprite i spillet 8x8 pixels. Dette gør alt meget lettere at administrere. Hvis du ser på billedet ovenfor, kan du se, hvordan jeg delte skærmen op. Hver væg består af 6 blokke, med et hul 2 blokke i højden, hvilket gør den samlede højde af hver væg 8 blokke.
I programmet er hver væg repræsenteret som en struct, kaldet Wall. Hver vægstruktur har to egenskaber - holePosition og kolonne. 'holePosition' er et tal 0-6, da der kun er 7 mulige positioner i en væg på 8 blokke til et hul 2 blokke højt. 'kolonne' er et tal 0-15, da der er 16 kolonner med blokke mulig på skærmen.
Anbefalede:
Muscle Powered Flappy Bird: 9 trin (med billeder)
Muscle Powered Flappy Bird: Du husker måske, da Flappy Bird tog verden med storm og til sidst blev så populær, at skaberen fjernede den fra appbutikker for at undgå uønsket omtale. Dette er Flappy Bird, som du aldrig har set før; ved at kombinere et par stykker fra hylden
ESP32 -grænseflade med SSD1306 Oled med MicroPython: 5 trin
ESP32 -grænseflade med SSD1306 Oled med MicroPython: Micropython er pythons optimering og lille fodaftryk af python. Hvilket betød at bygge til en integreret enhed, der har hukommelsesbegrænsninger og lavt strømforbrug. Micropython er tilgængelig for mange controllerfamilier, herunder ESP8266, ESP32, Ardui
Arduino Flappy Bird - Arduino 2,4 "TFT Touchscreen SPFD5408 Bird Game Project: 3 trin
Arduino Flappy Bird | Arduino 2,4 "TFT Touchscreen SPFD5408 Bird Game Project: Flappy Bird var for populært spil derude på få år, og mange mennesker skabte det på deres egen måde, det gjorde jeg også, jeg lavede min version af flappy bird med Arduino og den billige 2,4 " TFT Touchscreen SPFD5408, så lad os komme i gang
Spil et PONG -spil med Arduino Uno og OLED 0.96 SSD1306 Display: 6 trin
Spil et PONG -spil med Arduino Uno og OLED 0.96 SSD1306 Display: Hej fyre i dag laver vi et PONG -spil med Arduino. Vi vil bruge adafruit's 0,96 oled display til at vise spillet & trykknapper for at styre spillet
Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython Brug af en Itsybitsy M4 Express: 13 trin (med billeder)
Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython Brug af en Itsybitsy M4 Express: SSD1306 OLED -skærmen er en lille (0,96 '), billig, bredt tilgængelig, I2C, monokrom grafisk skærm med 128x64 pixels, som let kan tilsluttes (kun 4 ledninger) til mikroprocessorudviklingskort som f.eks. en Raspberry Pi, Arduino eller