Turinys:

„Arduino“mūšio laivo žaidimas: 3 žingsniai
„Arduino“mūšio laivo žaidimas: 3 žingsniai

Video: „Arduino“mūšio laivo žaidimas: 3 žingsniai

Video: „Arduino“mūšio laivo žaidimas: 3 žingsniai
Video: Девочка — шашлычок ► 1 Прохождение Silent Hill Origins (PS2) 2024, Lapkritis
Anonim
„Arduino“mūšio laivo žaidimas
„Arduino“mūšio laivo žaidimas

Prisimenu, kaip vaikystėje žaidžiau mūšio laivo žaidimo popieriaus ir pieštuko versiją. Tiesą sakant, tai buvo maždaug nuo Pirmojo pasaulinio karo. Aš taip pat turėjau „elektroninį“variantą 1960 -ųjų pradžioje, pavadintą „Sonar Sub Hunt“, kuriame buvo šviesos ir garsai bei paslėptos minos. Pagal šiandienos vaizdo žaidimų standartus „Battleship“yra gana nuobodus, bet aš maniau, kad vis tiek padarysiu, norėdamas pamatyti, ką anūkai apie tai galvoja. Galų gale, kartais retro gali būti kietas.

Yra šio projekto smulkmenų, kurios būtų naudingos kitur, net jei nesate suinteresuotas kurti „Battleship“žaidimo. Ji turi paprastą 4 bitų 1602 LCD sąsają, į kurią įeina tam tikro simbolio vietos nustatymo tvarka. Taip pat yra sąsaja 4x4 jungiklio matricos dekodavimui. Šios dvi sąsajos yra prieinamos kaip atskiri aplanko failai, todėl jas lengva perkelti. Žaidimas taip pat turi įvairias garso efektų procedūras ir paprastą vieno tranzistoriaus garso stiprintuvo grandinę.

1 žingsnis: Aparatūra

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

Čia pateikta schema skirta vienam žaidėjui, todėl reikės pagaminti du vienetus. Įrenginiai bendrauja naudodami 3 laidų sąsają, apimančią UART TX ir RX linijas bei įžeminimo laidą. Aš nusprendžiau naudoti standartinį 1/8 colio stereo ausinių lizdą ir standartinį kabelį su kištukais iš abiejų galų. RX iš vienos dėžutės eina į kitos dėžutės TX ir atvirkščiai. Tai galite padaryti pakeisdami laidus, prilituotus prie ausinių lizdo dėžutės viduje, arba juos sukeisdami ant plokštės.

Klasikinis žaidimas buvo išdėstytas kaip matrica, bet aš nusprendžiau atlikti paprastą įgyvendinimą, naudodamas 1602 LCD ekraną. Pirmoje eilutėje rodomos žaidėjo laivo vietos ir priešininko smūgiai. Antroji eilutė rodo žaidėjo smūgius ir bet kokius smūgius į priešininko laivus. Tai suteikia 16 galimų laivų vietų. Laivų skaičius yra nustatytas programinėje įrangoje, ir aš savavališkai pasirinkau 5.

16 laivų vietų puikiai atitinka jungiklio reikalavimus, nes leidžia naudoti 4x4 matricą. Yra 4x4 matricų jungiklių bloknotai, tačiau aš nusprendžiau naudoti atskirus jungiklius vienoje eilutėje, kad atitiktų linijinį ekraną. Tačiau jungiklius prijungiau kaip 4x4 matricą, kad reikia tik aštuonių „Arduino“kaiščių. Tinkamų jungčių ieškokite jungiklio prijungimo schemoje ir schemoje.

LCD ekranas prijungtas prie 4 bitų sąsajos. Aš taip pat pridėjau išorinį šviesos diodą ant kaiščio D13, nurodydamas, kuris žaidėjas turėtų fotografuoti. Iš pradžių žaidėjai nusprendžia, kas atlieka pirmą smūgį, o tada programinė įranga automatiškai valdo žaidimą pirmyn ir atgal.

Norėjau pridėti paprastus garso efektus šūviui, sprogimams, žaidimui pasiruošus ir nugalėtojui/pralaimėtojui. Bandžiau naudoti paprastą pjezo garsinį signalą, bet galų gale turėjau mažą garsiakalbį. Garsiakalbio reikalaujama srovė viršija tai, ką gali valdyti „Arduino“, todėl buvo pridėtas paprastas tranzistoriaus stiprintuvas. Garsas vis dar nėra puikus, bet jis geresnis nei su garsiniu signalu. Mano garsiakalbis yra 4 omų, bet jei turite 8 omų, tada schemoje pakeiskite rezistorių nuo 39 omų iki 33 omų. Jei naudojate pjezo garsinį signalą, turėtumėte jį valdyti tiesiai iš „Arduino“kaiščio, o kita garso signalo pusė prijungta prie žemės.

Taip pat yra išorinis atstatymo jungiklis, kuris yra tiesiogiai prijungtas tarp žemės ir „Arduino“„atstatymo“kaiščio. Tai suteikia galimybę iš naujo paleisti žaidimą.

2 žingsnis: programinė įranga

Programinė įranga turi įtraukimo failą mano LCD sąsajai, taip pat sukūriau įtraukimo failą 4x4 jungiklių matricos nuskaitymui. Inicijavimas paragina žaidėją pasirinkti savo laivų vietas ir tada pereina į „paruoštą“būseną. Kai abu žaidėjai yra pasiruošę, vienas iš jų pradeda žaidimą paspausdamas jungiklį.

Šūvio vieta per UART perduodama kitam žaidėjui, o atitinkamas rezultatas grąžinamas žaidėjui, kuris atliko smūgį. Kaip minėta anksčiau, padarius pirmąjį kadrą, programinė įranga kontroliuoja, kas fotografuoja kitą kartą. Prieš perduodant šūvį, jis patikrinamas pagal ankstesnių kadrų vietas. Jei ta vieta jau buvo panaudota, kadras nebus perduodamas. Šviesos diodas „My_Shot“nustato, kieno eilė. Taip pat skleidžiamas šūvio garsas, galiojantis pasirinkimas, ir sprogimo garsas, jei laivas pataiko. Garso efektai gaunami iš internete rastų pavyzdžių su žaidimui pritaikytais pakeitimais.

Kai visi priešininko laivai bus pataikyti, kiekviename LCD ekrane bus rodomas pranešimas - vienas nugalėtojas, kitas - pralaimėtojas. Pranešime taip pat nurodoma, kad žaidimą galima paleisti iš naujo paspaudus atstatymo mygtuką. Taip pat yra atskiri garso efektai nugalėtojui ir pralaimėtojui.

3 žingsnis: ekrano nuotraukos

Ekrano nuotraukos
Ekrano nuotraukos
Ekrano nuotraukos
Ekrano nuotraukos
Ekrano nuotraukos
Ekrano nuotraukos
Ekrano nuotraukos
Ekrano nuotraukos

Štai keletas ekrano nuotraukų iš žaidimo. Tai šiam įrašui. Peržiūrėkite kitas mano instrukcijas ir mano svetainę adresu: www.boomerrules.wordpress.com

Rekomenduojamas: