Talaan ng mga Nilalaman:

Battle City Remake on GameGo With Makecode Arcade: 4 Hakbang (na may Mga Larawan)
Battle City Remake on GameGo With Makecode Arcade: 4 Hakbang (na may Mga Larawan)

Video: Battle City Remake on GameGo With Makecode Arcade: 4 Hakbang (na may Mga Larawan)

Video: Battle City Remake on GameGo With Makecode Arcade: 4 Hakbang (na may Mga Larawan)
Video: Battle City Remake on GameGo with Makecode Arcade 2024, Hulyo
Anonim
Image
Image

Ang GameGo ay isang katugma sa Microsoft Makecode na retro gaming portable console na binuo ng edukasyon sa TinkerGen STEM. Ito ay batay sa STM32F401RET6 ARM Cortex M4 chip at ginawa para sa mga nagtuturo ng STEM o mga tao lamang na nais na magkaroon ng kasiyahan sa paglikha ng mga video game na retro. Maaari mong sundin ang tutorial na ito at subukan ang laro sa Makecode Arcade simulator at pagkatapos ay patakbuhin ito sa GameGo.

Sa artikulong ito susubukan namin ang aming kamay sa muling paglikha ng isang klasikong laro ng tagabaril ng Battle City tank, na orihinal na ginawa at na-publish noong 1985 ng Namco para sa Nintendo Entertainment System (NES). Sa orihinal na laro kinokontrol ng manlalaro ang isang tangke at kinukunan ang mga projectile upang sirain ang mga tanke ng kaaway. Tinangka ng mga tanke ng kaaway na sirain ang base ng manlalaro, pati na rin ang tangke ng manlalaro mismo. Gumagawa kami ng ilang pagbabago sa paglalaro upang mas mahusay na mapaunlakan ang mga kasanayan sa pag-block ng programa sa GameGo, ngunit ang aming muling paggawa ay mananatili pa rin ng maraming pagkakapareho sa orihinal na laro. Magsimula na tayo!

Mga gamit

GameGo

Hakbang 1: Ang aming Alter-ego - Yellow Tank

Ang aming Alter-ego - Yellow Tank
Ang aming Alter-ego - Yellow Tank

Buksan ang Makecode Arcade sa https://arcade.makecode.com/ at mag-click sa bagong proyekto. Sisimulan namin ang aking paggawa ng aming alter-ego na dilaw na tank. Piliin ang Itakda ang akingSprite sa sprite ng uri ng bloke ng manlalaro at iguhit ang isang dilaw na tanke na nakaharap paitaas bilang aming panimulang sprite, ilagay ang bloke na iyon sa loob ng simulang bloke. Idagdag ang ilipat ang mySprite gamit ang mga pag-block ng mga pindutan. Ngayon mayroon kaming isang tangke na maaari naming ilipat sa mga pindutan sa simulation! Mahusay, ngunit palagi itong nakaharap sa parehong direksyon, kahit na lumipat kami o tumabi …

Upang maitama iyon, magdagdag tayo ng apat pang mga bloke, isa para sa bawat pindutan ng direksyon. Lumikha ng isang bagong variable, na tinatawag na direksyon - i-save namin ang direksyon ng paggalaw ng aming tangke sa loob nito, 100 ay tumutugma sa pababa, -100 ay tumutugma sa pataas, 200 para sa kanan at -200 para sa kaliwa. Bakit ang mga numerong ito? Makikita mo mamaya, kapag idinagdag namin ang mga projectile na papaputok ang aming tangke. Ang lohika sa loob ng bawat apat na mga bloke na ito ay napaka-simple - suriin namin kung ang bagong direksyon (mula sa pindutan ng pindutan) ay kapareho ng direksyon dati. Kung ito ay, karaniwang hindi kami gumagawa ng anumang mga pagbabago. Kung hindi namin binabago ang sprite ng tank at kung sakaling may pababa at kaliwang direksyon ay i-flip namin ang imahe ng sprite upang maiwasan ang pagguhit ng mga karagdagang sprite. Sa wakas italaga natin ang panimulang halaga ng direksyon sa -100 (tangke paitaas), dahil ito ang pagsisimula ng laro ng aming tangke. Subukang ilipat ang dilaw na tangke ngayon, ang sprite ay magbabago alinsunod sa direksyon ng paggalaw ngayon! Mahusay, ngayon magdagdag tayo ng mga bala.

Kami ay magpaputok ng mga bala na may itinakdang panunudyo patungo sa projectile (gumuhit ng maliit na square ng pilak para sa sprite na iyon) mula sa mySprite na may mga bilis ng vx vy. Sa loob ng sa pindutan Isang pinindot na bloke, kailangan nating suriin para sa ganap na halaga ng direksyon upang makita kung ang dilaw na tanke ay nakaharap pataas / pababa ng kaliwa / kanan. Pagkatapos ay nagpatuloy kaming sunugin ang projectile gamit ang tulin ng variable ng direksyon - iyon ang dahilan kung bakit nagkaroon kami ng -100 / 100 / -200 / 200 para sa mga halaga ng direksyon.

Ngayon ay mayroon kaming dilaw na tangke na maaaring magpaputok ng mga projectile at ilipat. Kung ang dilaw na mga simulate na tank ay maaaring pakiramdam ay tiyak na malungkot ito sa walang laman na walang laman na mga kaaway at mga bagay na dapat gawin. Kaya, para sa susunod na hakbang magdagdag tayo ng mga kaaway para maipasa nito ang oras.

Hakbang 2: Ilabas ang mga Kaaway

Ilabas ang mga Kaaway
Ilabas ang mga Kaaway
Ilabas ang mga Kaaway
Ilabas ang mga Kaaway

Sisimulan namin ang hakbang na ito sa pamamagitan ng paglikha ng isang bungkos ng mga bagong variable: dalawang arrays (isa para sa paghawak ng mga sprite ng kaaway at isa pa para sa paghawak ng mga direksyon ng kaaway), variable ng oras ng itlog para sa pagtatago ng tagal ng panahon sa pagitan ng mga spawns, bilang ng kaaway para sa pag-iimbak ng maximum na bilang ng mga kaaway sa parehong oras Magdaragdag din kami ng dalawang projectile (projectile at kaaway ng projectile) na paputok sa start block - makakatulong ito sa amin na maiwasan ang isang error sa paglaon.

Susunod na nilikha namin sa pag-update ng laro bawat… ms block, isingit ang variable ng spawn_time doon. Ang lohika sa loob ng bloke ay simple - kung ang kabuuang bilang ng mga kaaway sa battlefield ay mas mababa sa maximum na pinapayagan na bilang ng mga kaaway, magdagdag ng isang kaaway sa kaaway_sprite_list at idagdag 200 (pagpunta sa kanan) direksyon para sa kaaway na iyon.

Susunod, sa nilikha na sprite ng uri ng Enemy block nagdagdag kami ng ilang mga graphic na epekto, ilagay ito sa isang random na walang laman na tile at tawagan ang function na pick_direction para sa sprite na ito. Sa sprite ng uri ng kaaway na tumama sa dingding, tinatawag namin ang parehong pag-andar, pick_direction.

Ano ang nasa pagpapaandar na iyon? Dito nagsisimula ang mga bagay na medyo maging kumplikado, kaya't humawak ka. Mayroong 50 porsyento na posibilidad ng pagtaas ng tank ng kaaway at 50 porsyento nito na pababa - binabago namin ang sprite nang naaayon. Ang trick lang dito ay kailangan din naming baguhin ang halagang naaayon sa partikular na tanke ng kaaway sa lista ng kaaway sa bagong direksyon, kaya't papapainit namin ito ng mga bala sa tamang direksyon. Para doon nakita namin ang index ng kaaway na sprite sa kaaway_sprite_list at binago ang halaga ng item na iyon sa listahan ng mga kaaway_direksyon.

Sa wakas, magdagdag tayo ng mga pagbaril sa pag-shot. Nagdagdag kami ng isa pa sa pag-update ng laro sa bawat 500 ms block at naglalagay ng isang para sa item sa kaaway_sprite_list. Sa 30% na pagkakataon ang isang sprite ng kaaway ay magpaputok ng projectile ng kaaway sa direksyon ng paggalaw nito.

Kung ilulunsad namin ang laro sa simulation ngayon, maaari naming makita ang aming mga dilaw na tangke at mga tanke ng kaaway na lumilitaw sa parehong punto at papunta sa walang laman na espasyo. Maaari naming kunan ng larawan at maaari nilang kunan ng larawan ang aming dilaw na tanke, ngunit walang mangyayari. Nararamdamang wala nang kahulugan pa:) Idagdag natin ang mga dekorasyon at mekanika ng laro bilang huling hakbang.

Hakbang 3: 42 ng Laro

42 ng Laro
42 ng Laro
42 ng Laro
42 ng Laro
42 ng Laro
42 ng Laro

Sisimulan namin ang hakbang na ito sa pamamagitan ng pagdaragdag ng buhay at iskor mula sa tab na Impormasyon at itakda ang buhay sa 10 at puntos sa zero. Pagkatapos ay nagdagdag kami ng block set tile map sa…. Iguhit ang mapa ng file upang tumingin ng isang bagay tulad ng nakikita mo sa screenshot sa itaas. Huwag kalimutan na idagdag ang mga pader!

Idagdag tayo sa sprite ng uri ng Projectile na nagsasapawan ng iba pangSite ng uri ng Player - ito ay kapag ang mga bala ng kaaway ay tumama sa aming dilaw na tangke. Kailangan nating tiyakin na ang mga projectile na ito ay mga bala ng kaaway at hindi atin, kaya idaragdag namin iyon kung ang kondisyon sa loob ng bloke at kung susuriin ito bilang Totoo, pagkatapos ay ibabawas namin ang isa mula sa bilang ng buhay. Katulad nito, sa isa pang bloke sa sprite ng uri ay sumasapawan ang Projectile ng iba pang uri ng kaaway na tinitiyak namin na ang projectile ay isang projectile mula sa dilaw na tanke at kung ang kundisyong ito ay sinusuri bilang Totoo, sinisira namin ang iba pangSite (ang tanke ng kaaway), alisin ito mula sa listahan ng kaaway_sprite_list at magdagdag ng isa sa puntos.

Ang huling bagay ay ang mga kondisyon ng tagumpay at pagkatalo - para sa tagumpay, susuriin natin kung ang iskor ay mas mataas o katumbas ng 10 sa magpakailanman na bloke. Kung ito ay, ipinapakita namin ang screen ng tagumpay. At sa buhay zero block ipinapakita namin ang screen ng Game Over.

Ngayon subukan ito sa simulation upang makita kung ang laro ay tumatakbo tulad ng inaasahan. Pagkatapos i-upload ito sa GameGo at tangkilikin ang mapanira ang mga tanke ng kaaway!

Hakbang 4: Walang katapusang Laro at Mga Pagpapabuti

Walang katapusang Laro at Mga Pagpapabuti
Walang katapusang Laro at Mga Pagpapabuti

Sa aming GitHub repository maaari kang mag-download ng dalawang mga file para sa arcade ng Makecode - ang isa ay eksaktong kapareho ng makukuha mo kung susundin mo ang itinuturo na ito at ang isa pa ay na-upgrade na bersyon, na random na nakabuo ng pag-unlad sa antas. Mayroon itong 10 mga antas, ang bawat isa ay sapalarang nabuo na may mas mataas na bilang ng mga kaaway sa bawat sunud-sunod na antas.

At syempre, mas maraming mga bagay na maaaring idagdag mo o ng iyong mga mag-aaral sa laro sa tuktok niyon! Mayroong mas mahusay na musika, masira pader, iba't ibang mga kondisyon ng tagumpay at iba pa!

Kung gumawa ka ng isang pinabuting bersyon ng laro, ibahagi ito sa mga komento sa ibaba! Para sa karagdagang impormasyon sa GameGo at iba pang hardware para sa mga gumagawa at tagapagturo ng STEM, bisitahin ang aming website, https://tinkergen.com/ at mag-subscribe sa aming blog.

Sinimulan ng TinkerGen ang isang kampanya sa Kickstarter para sa MARK (Make A Robot Kit), isang robot kit para sa pagtuturo ng coding, robotics, AI!

Inirerekumendang: