Orodha ya maudhui:

Mchezo wa Miamba ya Arduino: 3 Hatua
Mchezo wa Miamba ya Arduino: 3 Hatua

Video: Mchezo wa Miamba ya Arduino: 3 Hatua

Video: Mchezo wa Miamba ya Arduino: 3 Hatua
Video: Mambo 3 Ya Kufanya Leo Ili Uondoe Stress Maishani Mwako 2024, Julai
Anonim
Arduino Space Rocks Mchezo
Arduino Space Rocks Mchezo

Iwe zinachezwa kwenye kompyuta, kwenye simu, kwenye kiweko cha mchezo, au kwenye sanduku la pekee, michezo mingi ya video inajumuisha kipengele cha kuzuia kikwazo. Kwa kweli, kunaweza kuwa na alama zilizopewa kwa kukusanya ishara au kutafuta njia yako ya maze, lakini hakikisha kuwa labda kuna kitu kwenye mchezo ambao kusudi lao kuu ni kukuzuia kufanya hivyo. Mchezo wa kwanza wa video ulikuwa Pong, lakini baada ya hapo michezo maarufu zaidi ilikuwa vitu kama "Asteroids" au "Pac-Man". Tofauti ya hivi karibuni itakuwa mchezo rahisi lakini wa kupendeza wa "Ndege za Flappy".

Hivi karibuni niliona kuwa mtu alikuwa ametengeneza toleo rahisi la ngazi mbili la "Flappy Bird" ambayo ilichezwa kwenye LCD ya kawaida ya 1602. Nilidhani hiyo itakuwa kitu ambacho wajukuu wanaweza kupenda kwa hivyo niliamua kufanya tofauti yangu mwenyewe kutoka mwanzoni. Toleo la 1602 lina viwango viwili tu kwa hivyo niliamua kutumia LCD ya 2004 (20x4) badala yake kuongeza ugumu wa kucheza. Pia nilichagua kuifanya kama "Asteroids" kwa kufanya mchezaji aongoze "meli" kupitia njia ya "miamba ya nafasi". Hata ikiwa huna hamu ya kujenga mchezo, kunaweza kuwa na vitu kadhaa vya programu ambayo unaweza kutumia katika moja ya miradi yako mwenyewe.

Hatua ya 1: Vifaa

Vifaa
Vifaa
Vifaa
Vifaa
Vifaa
Vifaa

Vifaa vinaweza kutegemea toleo lolote la Arduino. Nilifanya mfano huo kwa kutumia Nano kisha nikachoma nambari hiyo kwenye chip ya ATMega328. Hiyo ni chip ile ile inayotumiwa katika Nano lakini kuitumia yenyewe inaruhusu ujenzi wa kompakt zaidi na matumizi kidogo ya nguvu. Kama unavyoona, nilijenga mzunguko kwenye ubao mdogo wa mkate ambao ulirejeshwa nyuma kwenye moduli ya LCD. Kipengele kingine ambacho ni tofauti ni kwamba Nano inaendesha 16-MHz ikitumia glasi ya nje lakini nilichagua kutumia oscillator ya 8-MHz iliyojengwa kwa chip ya ATMega328. Hiyo inaokoa sehemu na nguvu.

Sehemu za LCD za 2004 kwa Arduino sawa na LCD 1602. Tofauti ya kupendeza ni katika kushughulikia maeneo ya maonyesho. Ni wazi kuna tofauti kwa sababu kuna mistari minne badala ya miwili lakini, mnamo 2004, mstari wa tatu ni ugani wa mstari wa kwanza na mstari wa nne ni ugani wa mstari wa pili. Kwa maneno mengine, ikiwa ungekuwa na programu ya kujaribu ambayo ilituma tu safu ya wahusika kwenye LCD, mhusika wa 21 angejitokeza mwanzoni mwa mstari wa tatu na mhusika wa 41 anazunguka hadi mwanzo wa mstari wa kwanza. Ninatumia tabia hiyo katika programu kuongeza urefu wa maze mara mbili.

Niliamua kutengeneza toleo langu la betri kwa hivyo nilitumia li-ion ya kawaida ya 18650, betri ya voliti 3.6. Hiyo ilihitaji niongeze bodi ndogo ili kuruhusu kuchaji tena USB na bodi nyingine ndogo kuongeza voltage ya betri kwa volts 5 kwa LCD na chip ya ATMega. Picha zinaonyesha moduli nilizotumia lakini pia kuna moduli zote katika moja ambazo hufanya kazi zote mbili.

Hatua ya 2: Programu

Programu hiyo ni sawa kwa chipsi cha Nano na ATMega328. Tofauti pekee ni katika njia ya programu. Ninatumia toleo langu la barebones la programu ya LCD ya 1602 na programu ya LCD katika mradi huu inategemea hiyo. Nilihitaji kuongeza uwezo wa kushughulikia mistari ya ziada ya onyesho la 2004 na pia nikaongeza utaratibu wa kuhamisha onyesho. Mabadiliko ya maonyesho hutoa athari ya harakati ya "miamba" iliyopita "meli".

Kama ilivyoelezwa hapo awali, mistari 1 na 3 huunda foleni ya duara na mistari 2 na 4 hufanya vile vile. Hiyo inamaanisha kuwa baada ya mabadiliko 20, mistari 1 na 3 hubadilishwa na mistari 2 na 4 hubadilishwa. Baada ya mabadiliko 40 mistari imerudi katika nafasi zao za asili. Kwa sababu ya tabia hii, maze ya asili ya wahusika 20 inakuwa tofauti kabisa wakati mistari inabadilishana. Hiyo ilifanya maisha yawe ya kupendeza wakati nilijaribu kuunda maze. Mwishowe nilifungua tu lahajedwali la Excel ili niweze kuchora njia bila kubadilisha programu kila wakati. Programu iliyotolewa hapa ina matoleo mawili ya maze (moja imetolewa maoni) ili uweze kuchagua ni ipi unayotaka au ujifanyie mwenyewe.

Awali nilitaka hii iwe rahisi kwa kutosha kwamba wajukuu wachanga wanaweza kuicheza, lakini pia nilitaka iwe na changamoto ya ziada ikiwa wao (au mtu mwingine) wataipata sana. Mchezo huanza na kiwango cha kuhama kilichowekwa sekunde 1. Kiwango cha ndani cha tic ni 50ms kwa hivyo inamaanisha kuwa kuna vipindi 20 wakati ambapo vifungo vya juu / chini vinaweza kubanwa. Kwa kweli, kitufe kilichobanwa hutumia tiki 2 kwa sababu muda wa 50ms hutumiwa kugundua vyombo vya habari na muda mwingine wa 50ms hutumiwa kusubiri kutolewa. Na maze chaguo-msingi idadi kubwa ya waandishi wa habari inahitajika kabla ya zamu inayofuata ni tatu. Njia rahisi ya kuongeza ugumu wa mchezo ni kufupisha wakati kati ya zamu ili mistari kadhaa ya nambari ifanye hivyo tu kadri alama inavyoongezeka. Kiwango cha mabadiliko kinawekwa kuharakisha na 50ms kila zamu 20, na kiwango cha chini kimepunguzwa hadi 500ms. Ni rahisi kubadilisha vigezo hivi.

Zaidi ya kubadilisha kiwango cha mabadiliko, mantiki ya msingi katika programu ni kusogeza "meli" na kuamua ikiwa "meli" imegongana na "mwamba". Kazi hizi zinachukua faida ya safu iliyofafanuliwa ya "mwamba / nafasi" na pia safu ambayo hufafanua maeneo ya kumbukumbu kwenye onyesho. Hesabu ya kuhama inalingana na urefu wa mstari wa LCD (0-19) na hutumiwa kama faharisi katika safu hizi. Mantiki ni ngumu sana na ukweli kwamba mistari hubadilishana kila hesabu 20 za kuhama. Mantiki kama hiyo hutumiwa kuamua msimamo wa "meli" ambayo inaweza kuwa kwenye laini yoyote kati ya hizo nne.

Alama ya kila mchezo ni hesabu tu ya idadi ya mabadiliko ambayo yalitokea na alama ya juu imehifadhiwa katika EEROM ya ndani ya microcontroller. Maktaba ya EEPROM hutumiwa kufanya kusoma na kuandika kumbukumbu hii. Taratibu zinazopatikana zinaruhusu kusoma moja kwa moja / kuandika na kusoma / kuandika juu ya maadili ya hatua. Thamani ya 0xA5 imehifadhiwa katika eneo la kwanza la EEROM kuonyesha kwamba alama ya juu imehifadhiwa. Ikiwa thamani hiyo iko kwenye nguvu juu, basi thamani ya hatua inayoelea ya alama ya juu inasomwa na kuonyeshwa. Ikiwa thamani ya 0xA5 haipo, basi utaratibu huitwa ili kuanzisha alama ya juu kuwa thamani ya 1. Utaratibu huo huo unaitwa ikiwa upya wa alama ya juu unahitajika. Alama ya juu imerudishwa kwa thamani ya 1 kwa kushikilia kitufe kimoja cha juu / chini na kisha kubonyeza kitufe cha kuweka upya kwa muda mfupi.

Hatua ya 3: Kucheza Mchezo

Kucheza mchezo
Kucheza mchezo
Kucheza mchezo
Kucheza mchezo

Wakati nguvu inatumiwa, alama ya juu ya sasa inaonyeshwa. Baada ya alama ya juu kuonyeshwa, mlolongo wa "miamba" na "meli" huonyeshwa kisha mchezo huanza sekunde chache baadaye. Wakati "meli" inagonga "mwamba" ujumbe "CRASH NA BURN" unawaka mara chache kabla ya kuonyesha alama ya mchezo. Ikiwa alama mpya ya juu imefanywa, basi ujumbe huo pia unaonyeshwa. Mchezo mpya unaanza kwa kubonyeza kitufe cha kuweka upya.

Ilipendekeza: