Orodha ya maudhui:

Flappy Bird kwenye ATtiny85 na OLED Onyesha SSD1306: Hatua 6 (na Picha)
Flappy Bird kwenye ATtiny85 na OLED Onyesha SSD1306: Hatua 6 (na Picha)

Video: Flappy Bird kwenye ATtiny85 na OLED Onyesha SSD1306: Hatua 6 (na Picha)

Video: Flappy Bird kwenye ATtiny85 na OLED Onyesha SSD1306: Hatua 6 (na Picha)
Video: How to user Makerfabs ESP32 3.5" TFT Capacitive Touch with Camera 2024, Septemba
Anonim
Image
Image
Vifaa
Vifaa

Halo kila mtu, Leo nitakuonyesha kiini cha msingi cha ndege ambacho nimeunda, na jinsi unaweza kufanya mchezo kama huo. Kwa kweli nitaenda kupitia nambari yangu na wewe na kuelezea jinsi inavyofanya kazi kila hatua. Mchezo huu umejengwa kukimbia kwenye ATtiny85 iliyowekwa saa 1MHz, na onyesho la I2C OLED. Endelea!

Hatua ya 1: Vifaa

Ikiwa haufurahii kweli kujenga mzunguko wa mchezo lakini ukielewa nadharia iliyo nyuma yake, unaweza kuruka hatua hii.

Mchezo wangu unahitaji vifungo viwili, ATtiny85, skrini ya I2C OLED 128x64px, na chanzo kingine cha nguvu. Kadi yangu ya Biashara inayoweza kufundishwa / Dashibodi ya Mchezo: Screen ya ATtiny85 na OLED inakuonyesha jinsi ya kujenga bodi ambayo ina kila kitu unachohitaji juu yake! Ikiwa huna hamu ya kutengeneza bodi yangu, toa bodi yako ya mkate na nitakuambia maelezo. Unaweza kutumia lahaja yoyote ya ATtiny85. Ninapendekeza maonyesho ya OLED kama hii.

  1. Waya upande mmoja wa vifungo viwili vya kushinikiza kwa pini 2 na 3 kwenye ATtiny85 yako. Kwenye waya hizi, ongeza kontena la 10k ohm lililounganishwa na ardhi (kontena la kuvuta-chini).
  2. Waya upande mwingine wa vifungo hivi vya kushinikiza kwa voltage. Kitufe kisipobanwa, hali ya siri itakuwa chini. Inapobanwa, hali ya pini itakuwa juu.
  3. Unganisha pini 7 kwenye pini ya SCL kwenye onyesho lako, na ubandike 5 kwenye pini ya SDA kwenye onyesho lako. Waya pini za umeme (VCC na GND) kwenye onyesho ipasavyo.
  4. Mwishowe, unganisha pini 4 kwenye ATTiny chini na ubandike 8 kwa voltage.

Hatua ya 2: Programu

Programu!
Programu!

Imeambatanishwa hapa ni folda na faili zote unazohitaji kuendesha mchezo. Faili mbili, FlappyBird.ino na WallFunctions.h, zimetolewa maoni vizuri kwa raha yako ya kusoma. Unaweza kupakia mchoro wa FlappyBird.ino kwa ATtiny85 yako (kwa 1MHz), na ucheze mbali! Ikiwa kujifunza nadharia nyuma ya mchezo huu kunakuvutia, au unataka kutengeneza mchezo wako mwenyewe, kisha soma!

Bado kuna shida kadhaa na mchezo wangu. I2C sio njia bora ya kusambaza data kwa njia yoyote. Kulingana na chapisho hili, onyesho linaweza tu kukubali data karibu 100KHz, kwa hivyo hata ikiwa tutapiga kasi ya saa ya ATTiny hadi 8MHz kituo cha I2C bado kitakuwa kizuizi. Onyesho linaweza kutoa juu ya kiwango cha juu cha 10fps. Picha tofauti zaidi ambazo onyesho linahitaji kuchora, polepole mchakato mzima ni. Kwa hivyo, mchezo wangu ni rahisi sana kwani huwezi kupata kuta kusonga haraka sana kwenye skrini! Hapa chini kuna changamoto kadhaa kwako ikiwa unafikiria unakamilisha jukumu hili:

  • Ili kufanya mchezo kuwa mgumu, angalia ikiwa unaweza kupata nafasi kati ya kuta kuwa 2 badala ya 4. Haipaswi kuwa ngumu sana mara tu utakapoelewa jinsi programu yangu inavyofanya kazi:). Tafadhali weka maoni ikiwa unaweza kuifanya iweze kufanya kazi!
  • Kitu kingine mchezo wangu unakosa ni mfumo wa alama na njia ya kuonyesha alama na kuiokoa. Angalia ikiwa unaweza kutekeleza moja!
  • Mwishowe, badala ya kuta kuhama safuwima moja kwa wakati, jaribu kupata kila ukuta kusogeza pikseli moja kwa wakati kwa mwendo laini.

Hatua ya 3: Flappy Bird ATtiny85: Nadharia

Flappy Bird ATtiny85: Nadharia
Flappy Bird ATtiny85: Nadharia

Ingawa onyesho tunalotumia lina saizi 64 za urefu wa kutumia kwa mchezo, inawezekana tu kuweka vitu kwenye vizuizi vya saizi 8. Kwa hivyo, kuna kuratibu 8 tu zinazowezekana. Ili kufanya mambo iwe rahisi, katika programu hiyo niligawanya skrini nzima kwa njia hii, nikitengeneza gridi ya vitalu 16 kwa vitalu 8, ambapo kila block ni saizi 8x8. Ili kujaza kila block, kila sprite kwenye mchezo ni saizi 8x8. Hii inafanya kila kitu rahisi kudhibiti. Ukiangalia picha hapo juu, unaweza kuona jinsi niligawanya skrini. Kila ukuta unajumuisha vitalu 6, na shimo 2 vifuniko kwa urefu, na kufanya urefu wa jumla wa kila ukuta uwe na vitalu 8.

Katika programu, kila ukuta unawakilishwa kama muundo, unaoitwa Ukuta. Kila muundo wa Ukuta una mali mbili - Nafasi ya shimo na safu. 'holePosition' ni namba 0-6, kwani kuna nafasi 7 tu kwenye ukuta wa vitalu 8 kwa shimo 2 vitalu juu. 'safu' ni nambari 0-15, kwani kuna safu 16 za vizuizi kwenye skrini.

Ilipendekeza: