Innehållsförteckning:
Video: Flappy Bird på ATtiny85 och OLED Display SSD1306: 6 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Hej allihopa, Idag ska jag visa dig en grundläggande flappy fågelklon som jag skapade, och hur du kan gå tillväga för att göra ett liknande spel. Jag kommer i huvudsak att köra igenom min kod med dig och förklara hur det fungerar varje steg på vägen. Detta spel är byggt för att köras på en ATtiny85 klockad på 1 MHz, med en I2C OLED -skärm. framåt!
Steg 1: Hårdvaran
Om du inte är intresserad av att faktiskt bygga en krets för spelet men förstår teorin bakom det, kan du hoppa över det här steget.
Mitt spel kräver två knappar, en ATtiny85, en I2C OLED 128x64px skärm och någon strömkälla. Mitt instruerbara visitkort/spelkonsol: ATtiny85 och OLED -skärm visar hur du bygger ett bräde som har allt du behöver! Om du inte är intresserad av att göra min bräda, ta ut din brödbräda så berättar jag specifikationerna. Du kan använda vilken variant som helst av ATtiny85. Jag rekommenderar OLED -skärmar som den här.
- Anslut ena sidan av två tryckknappar till stift 2 och 3 på din ATtiny85. På dessa ledningar lägger du också till ett 10k ohm motstånd anslutet till jord (neddragningsmotstånd).
- Koppla den andra sidan av dessa tryckknappar till spänning. När knappen inte trycks in blir nåltillståndet lågt. När den trycks in blir stiftstatusen hög.
- Anslut stift 7 till SCL -stiftet på skärmen och stift 5 till SDA -stiftet på skärmen. Anslut strömuttagen (VCC och GND) på displayen i enlighet därmed.
- Anslut slutligen stift 4 på ATtiny till jord och stift 8 till spänning.
Steg 2: Programvaran
Här bifogas en mapp med alla filer du behöver för att köra spelet. Två av filerna, FlappyBird.ino och WallFunctions.h, har mycket goda kommentarer för ditt läsglädje. Du kan ladda upp FlappyBird.ino -skissen till din ATtiny85 (vid 1MHz) och spela bort! Om du lär dig teorin bakom detta spel, eller om du vill skapa ditt eget spel, läs vidare!
Det finns fortfarande några problem med mitt spel. I2C är inte det bästa sättet att överföra data på något sätt. Enligt detta inlägg kan displayen bara acceptera data vid cirka 100KHz, så även om vi höjer ATtiny -klockhastigheten till 8MHz kommer I2C -kanalen fortfarande att vara flaskhalsen. Displayen kan mata ut ca 10 fps max. Ju mer separata bilder displayen behöver rita, desto långsammare är hela processen. Således är mitt spel ganska enkelt eftersom du inte kan få väggarna att röra sig mycket snabbt över skärmen! Nedan följer några utmaningar för dig om du tror att du klarar uppgiften:
- För att göra spelet svårare, se om du kan få avståndet mellan väggarna att vara 2 istället för 4. Det borde inte vara för svårt när du förstår hur mitt program fungerar:). Skriv gärna i kommentarerna om du kan få det att fungera!
- En annan sak som mitt spel saknar är ett poängsystem och ett sätt att visa poängen och spara den. Se om du kan genomföra en!
- Slutligen, i stället för att väggarna flyttar en kolumn i taget, försök att få varje vägg att flytta en pixel åt gången för jämnare rörelse.
Steg 3: Flappy Bird ATtiny85: Theory
Även om skärmen vi använder har 64 pixlar i höjd att använda för spelet, är det bara möjligt att placera element i block om 8 pixlar. Således finns det bara 8 möjliga y-koordinater. För att göra det enklare delade jag upp hela skärmen på detta sätt i programvaran och gjorde ett rutnät med 16 block med 8 block, där varje block är 8x8 pixlar. För att fylla varje block är varje sprite i spelet 8x8 pixlar. Detta gör allt MYCKET lättare att hantera. Om du tittar på bilden ovan kan du se hur jag delade upp skärmen. Varje vägg består av 6 block, med ett hål 2 block i höjd, vilket gör den totala höjden på varje vägg 8 block.
I programmet representeras varje vägg som en struktur, kallad Wall. Varje väggstruktur har två egenskaper - holePosition och kolumn. 'holePosition' är ett nummer 0-6, eftersom det bara finns 7 möjliga positioner i en vägg med 8 block för ett hål 2 block högt. "kolumn" är ett nummer 0-15, eftersom det finns 16 kolumner med block på skärmen.
Rekommenderad:
Arduino Flappy Bird - Arduino 2,4 "TFT pekskärm SPFD5408 Bird Game Project: 3 steg
Arduino Flappy Bird | Arduino 2,4 "TFT pekskärm SPFD5408 Bird Game Project: Flappy Bird var för populärt spel där på några år och många människor skapade det på sitt eget sätt så gjorde jag, jag skapade min version av flappy bird med Arduino och den billiga 2,4 " TFT Pekskärm SPFD5408, så låt oss komma igång
Flappy Bird med Arduino och bearbetning: 5 steg
Flappy Bird med Arduino och bearbetning: Hej alla !!! Välkommen till ett nytt Arduino -baserat projekt. Vi har alla en gång i livet spelat flappy bird -spelet. Hur om vi spelar det på vår PC och styr det med vår Arduino ?? Följ alla stegen nedan och i slutet av denna handledning
Spela ett PONG -spel med Arduino Uno och OLED 0.96 SSD1306 Display: 6 steg
Spela ett PONG -spel med Arduino Uno och OLED 0.96 SSD1306 Display: Hej killar idag kommer vi att göra ett PONG -spel med Arduino. Vi kommer att använda adafruits 0,96 oled display för att visa spelet & tryckknappar för att styra spelet
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid