Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
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 retro video game. Maaari mong sundin ang tutorial na ito at subukan ang laro sa Makecode Arcade simulator at pagkatapos ay patakbuhin ito sa GameGo.
Sa mga artikulong nai-publish bago namin sinubukan ang aming kamay sa paggawa ng isang platformer game at isang Battle City Remake. Sa oras na ito nais kong gamitin ang interface ng Jacdac upang ikonekta ang dalawang GameGo nang sama-sama at payagan ang mga manlalaro na labanan ang pagiging supremacy sa isang multiplayer fighter game. Sa kasamaang palad, nalaman ko na ang pag-block ng programa para sa Jacdac multiplayer ay nasa yugto ng beta hanggang ngayon at may ilang mga bug - posible pa ring gumawa ng mas simpleng mga laro, ngunit walang swerte para sa aking laro sa pakikipaglaban. Kaya, sa itinuturo na ito ay nai-publish ko ang tatlong bersyon ng laro (na tinawag kong "Cthulhu Combat":))
- solong bersyon ng manlalaro na may simpleng kalaban AI
- Bersyon ng multiplayer upang i-play sa simulation ng Arcade
- Bersyon ng multiplayer kasama si Jacdac (hindi kumpleto, maa-update sa paglaon)
Mga gamit
GameGo
Microsoft Makecode Arcade
Hakbang 1: Sa Mga Pag-andar ng Start at Round_setup
Ilalarawan ko ang pag-coding ng solong manlalaro ng laro sa mga detalye at pagkatapos ay sa susunod na mga hakbang na tinatalakay namin kung paano ito gagawin
a) multiplayer ng simulator
b) Multiplayer ng Jacdac.
Nagsisimula kami sa pagtatakda ng mapa ng tile sa madilim na piitan at paglikha ng mga sprite para sa player at AI bot - kapwa sila magiging kabilang sa uri ng Player. Itinakda namin ang kanilang y-axis acceleration sa 600 - upang hindi sila lumipad pagkatapos ng paglukso. Pinasimulan din namin ang mga projectile mula sa bot at player bago tumawag sa pag-andar ng round_setup. Ang pag-andar ng Round_setup ay nag-aalaga ng bagong pag-ikot ng paghahanda para sa amin - ang dahilan kung bakit namin ito ginagawang isang pagpapaandar ay dahil maaaring maraming mga 3 pag-ikot sa kabuuan sa laro at nais naming iwasang ulitin ang parehong code. Sa pagpapaandar na iyon sinusuri muna namin kung ang alinman sa mga manlalaro ay mayroong 2 tagumpay - kung ang kundisyong ito ay sinusuri bilang Totoo, pagkatapos ay tapos na ang laro. Kung ang parehong mga manlalaro ay may mas mababa sa dalawang tagumpay, pinapataas namin ang variable ng round_num ng isa at inilalagay ang mga manlalaro sa kanilang mga panimulang lugar, muling punan ang kanilang buhay sa 100 at ideklara ang simula ng isang bagong pag-ikot.
Hakbang 2: Daloy ng Laro
Sa larong ito ang mundo mismo ay static at ang daloy ng laro ay naka-tether sa mga aksyon ng mga manlalaro. Sa apat na mga bloke natukoy namin ang karamihan ng mga panuntunan sa laro, ang mga bloke na ito ay: sa pataas na pindutan na pinindot, sa pindutan ng pababa na pinindot, sa pindutan ng A na pinindot at sa pindutang B na pinindot. Tingnan natin ang bawat isa sa mga bloke na ito.
pinindot ang up button - doble na lohika ng pagtalon. Kung pinindot namin ang pindutan ng pagtalon mas mababa sa 3 beses, pagkatapos ay itinakda namin ang bilis ng player sa - 140 (paglipat ng paitaas). Ang aming manlalaro ay mayroong vy acceleration na nakatakda sa 600, kaya sa sandaling tumalon kami, ang aming bilis ay mabilis na mababawas. Kapag umabot sa 0 (hindi gumagalaw sa patayong axis) itinakda namin ang jump_count sa 0 muli.
sa down button na pinindot - na-rang na atake ng taming lohika. Kung pinindot ang down button ay binabago ng player ang kanyang imahe sa "shielded" at nagtatakda ng variable na Shielded sa 1.
sa pindutan ng A na pinindot - sunog ang isang projectile. Ang isang iyon ay medyo nagpapaliwanag sa sarili.
sa pindutan ng B na pinindot - atake ng suntukan, katulad ng kalasag sa pagpapatupad.
Nagtatakda kami ng mga imahe ng mga sprite ng manlalaro at ang kanilang mga variable na naka-shield / umaatake sa 0 bawat 500 ms sa pag-update ng laro bawat.. ms block. Maaari kaming magtakda ng mga independiyenteng timer para sa bawat aksyon, ngunit para sa pagiging simple gagamitin lamang namin ang pangunahing loop ng pag-update ng laro.
Ang mga kondisyon sa panalo dito ay medyo madali - kapag umabot sa 0 ang buhay ng manlalaro, nanalo ang iba pang manlalaro sa pag-ikot, pagkatapos ay nag-iimbak kami ng bilang ng mga panalo ng manlalaro sa isang variable.
Sa wakas, mayroong dalawang mga bloke na nagkokontrol sa saklaw na pinsala sa pag-atake at pinsala sa pag-atake ng suntukan. Sa bawat isa sa kanila sinusuri namin ang pagkakabangga ng sprite at kung ang variable na may kalasag / umaatake para sa manlalaro na umaatake ay nakatakda sa 0/1.
Hakbang 3: Laro 1: Kalaban ng AI
Sa unang laro lilikha kami ng isang medyo simpleng kalaban ng AI upang maging pangalawang manlalaro. Sa loob ng pag-update ng laro bawat 200 ms una naming ginawa ang pagsusuri ng distansya sa pagitan ng manlalaro at AI - kung mas mababa sa 20 ay itinakda namin ang aming AI sa mode na sunud-sunuran sa pamamagitan ng pagtaas ng ito ay pagkakataon sa pag-atake ng suntukan sa 30 at saklaw ang pagkakataon sa pag-atake sa 30. Kung ang distansya ay mas mataas kaysa sa 20 itinakda namin ang posibilidad ng pag-atake ng suntukan sa zero (walang pint sa pag-atake ng suntukan, dahil ang player ay masyadong malayo) at ilipat ang pagkakataon sa 70. Matapos ang mga variable para sa mga pagkakataon sa pagkilos ay naitakda namin sa pagpapatupad ng mga aksyon na ito sa mga tinukoy na pagkakataon. Kung susubukan mong maglaro laban sa simpleng AI na ito mismo, makikita mo na sa kabila ng pag-uugali ay napakasimple, ang panalo laban dito ay hindi madali - tulad ng madalas sa kaso ng mga kontroladong kalaban ng computer ay nanalo ito dahil maaari itong gumawa ng maraming mga pagkilos bawat segundo kaysa sa isang manlalaro
Kung natigil ka habang naka-coding, maaari mong i-download ang buong code sa aming GitHub repository para sa proyektong ito at buksan ito sa Makecode Arcade.
Hakbang 4: Laro 2: Simulator Multiplayer
Ang variant ng laro para sa dalawang manlalaro sa simulation ay halos kapareho sa solong bersyon ng manlalaro, maliban na palitan namin ang bloke ng pag-uugali ng AI ng apat sa player 2 pindutan ng pinindot na mga bloke - na may nilalaman sa loob ng mga bloke na ito na sumasalamin sa nilalaman ng parehong mga bloke para sa player 1. Magkaroon ng isang pagtingin sa screenshot upang makakuha ng mas mahusay na ideya kung anong mga pagbabago ang kailangan mong gawin. Bukod sa na kailangan din namin upang magdagdag ng ilipat ang player 2 na may mga pindutan ng pag-block in sa pagsisimula ng function at baguhin ang end screen para sa player ng dalawang laro sa WIN sa halip na TALO.
Hakbang 5: Laro 3: Jacdac Multiplayer
Natagpuan ko ang isang pagpapatupad sa pamayanan ng Jacdac multiplayer na may mga block ng arcade ng Makecode sa thread ng forum na ito
forum.makecode.com/t/new-extension-real-mu…
Sinubukan ko ang halimbawang laro doon (Space Invaders) at nakita kong gumagana ito nang maayos. Sa kasamaang palad, ang mekanika ng laro ng Cthulhu Combat ay gumagamit ng maraming mga variable at tila hindi pa sinusuportahan ng mga extension ng Real Multiplayer ang pag-sync ng mga variable - kaya't napagana ko ito, ang dalawang pagkilos ng manlalaro ay naka-sync sa mga aparato, ngunit maaaring hindi umabot ang buhay 't drop sa aparato kalaban. Gayundin mayroong isang bagay na mali sa mga mekaniko ng projectile, ang mga projectile ay tila hindi nawala pagkatapos ng pagpindot sa pader, na nagiging sanhi ng pagkawala ng koneksyon sa laro matapos na maalis ang 10 mga projectile.
Maaari mong subukan ang multiplayer sa pamamagitan ng pag-download ng-p.webp
Hakbang 6: Hayaan ang Cthulhu Combat Magsimula
Marami pa ring mga pagpapabuti na maaaring magawa sa aming simpleng laro ng pakikipaglaban - halimbawa, maaari kang magdagdag ng mas kumplikadong pag-uugali ng AI o gumamit ng extension upang magdagdag ng mga kombinasyon ng pindutan at / o mga pagkakasunud-sunod ng animasyon. Suwerte at magsaya habang pinaprograma mo ang iyong sariling mga laro sa GameGo at Makecode Arcade.
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 newsletter.