Talaan ng mga Nilalaman:

Platformer Na May Walang Hanggan Mga Antas sa GameGo Sa Makecode Arcade: 5 Hakbang (na may Mga Larawan)
Platformer Na May Walang Hanggan Mga Antas sa GameGo Sa Makecode Arcade: 5 Hakbang (na may Mga Larawan)

Video: Platformer Na May Walang Hanggan Mga Antas sa GameGo Sa Makecode Arcade: 5 Hakbang (na may Mga Larawan)

Video: Platformer Na May Walang Hanggan Mga Antas sa GameGo Sa Makecode Arcade: 5 Hakbang (na may Mga Larawan)
Video: Rediscovering Lost Legends: 25 Forgotten RPG Games 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 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 artikulong ito gagawa kami ng isang laro ng platformer na may walang katapusang mga antas na binuong random. Sa isang platformer, ang karakter na kinokontrol ng manlalaro ay dapat tumalon at umakyat sa pagitan ng mga nasuspindeng platform habang iniiwasan ang mga hadlang. Ang mga kapaligiran ay madalas na nagtatampok ng hindi pantay na lupain ng iba't ibang taas na dapat na daanan. Ang manlalaro ay madalas na may ilang kontrol sa taas at distansya ng mga jumps upang maiwasan ang pagbagsak ng kanilang character sa kanilang kamatayan o makaligtaan ang mga kinakailangang jumps. Ipapatupad namin ang lahat ng pangunahing mga elementong ito at magdagdag din ng isang pasadyang pagpapaandar na makakabuo ng mga bagong antas sa maabot namin ang katapusan ng huling. Magsimula na tayo!

Mga gamit

GameGo

Hakbang 1: Ang Bayani

Ang bayani
Ang bayani

Bilang unang hakbang ay lilikha kami ng aming alter-ego. Ang aking mga kasanayan sa pagguhit ay medyo masama, kaya napagpasyahan kong gumamit ng isa mula sa Gallery;) Hindi tulad ng nakaraang laro na ginawa namin, sa platformer na ito ang aming mapaglarawang karakter ay makakilos lamang sa kaliwa at kanan at maaari din itong tumalon. Kaya sa halip na magkaroon ng dalawang magkakaibang mga sprite para sa pangunahing tauhan, ang isa ay sapat na sa oras na ito - maaari lamang nating i-flip ang imahe ni sprite kapag binago natin ang direksyon.

Ang unang dapat gawin ay magdagdag ng background at tile map. Pinili ko ang 32x8 mahabang tile na mapa - para sa unang antas manu-manong iguhit namin ito, tulad ng sa screenshot 2. Pagkatapos ay idaragdag namin ang aming mapaglarong character na itinakda ang mySprite sa sprite ng uri ng Player block at ilagay ito sa tuktok ng tile 0-5. Itinakda din namin ang camera upang ilipat gamit ang mapaglarong character at makontrol ang kaliwa at kanang kilusan - itatakda namin ang bilis ng paggalaw sa 0, dahil ang aming karakter ay hindi dapat malayang lumutang sa mapa kasama ang direksyon ng y. Magdagdag ng dalawa sa … pindutan ng pinindot na mga bloke, isa para sa kaliwang pindutan, isa para sa kanan. Kapag pinindot ang kaliwang pindutan, susuriin namin kung ang aming direksyon ay "kaliwa" bago pinindot ang pindutan. Kung ito ay, magpatuloy lang kami sa pag-alis. Kung hindi ito kailangan nating i-flip ang imahe ng sprite ng aming karakter. Katulad na lohika para sa tamang paggalaw.

Lahat ng mabuti para sa ngayon, ang tanging problema ay tila ang ating bayani ay tila hindi mapagtagumpayan ang anumang balakid. Kaya kailangan nating magdagdag ng paglukso. Susubaybayan namin ang mga kontrol para sa pagpindot sa pindutan at kapag nakita ito, magtatakda kami ng variable na paglukso sa 1, isulat ang pagsisimula ng paggalaw ng paglukso at itakda ang bilis ng sprite ng character sa -200 (pataas). Pagkatapos pagkatapos ng tinukoy na tagal ng oras, itatakda namin ang tulin sa 200 (pababa), upang ang aming bayani ay hindi mag-shoot hanggang sa langit bilang isang rocket.

Sa palagay ko nilikha namin ang isang bayani na karapat-dapat sa hamon ngayon! Saan, nasaan ang hamon?

Hakbang 2: Ang Mga Kaaway

Ang mga Kaaway
Ang mga Kaaway

Gumagamit kami ng isang istrakturang array upang maiimbak ang mga sprite ng mga kaaway. Para sa uri ng mga kaaway ay kukuha kami ng isang maliit na shortcut at gagamitin ang mga paniki:) hindi isang sanggunian ng coronavirus, maaari lamang lumipad ang mga paniki, iyon ang dahilan kung bakit hindi namin kakailanganing "gayahin" ang gravity para sa kanila, tulad ng ginagawa namin sa aming mapaglarong karakter. Gumamit sa nilikha na sprite ng uri ng Enemy block upang ilagay ang mga bagong nilikha na bats sa random spawn tile (minarkahan ng isang maliit na puting marka) at itakda ang kanilang bilis ng vx sa -10 (dahan-dahang dumaan sa kanan). Pagkatapos sa loob ng pag-update ng laro tuwing 2000 ms block ay umuulit kami sa bawat item ng kaaway na lista at sapalarang binabago ang kanilang direksyon, habang binabaliktad din ang mga sprite ng mga paniki kung kinakailangan (upang maipakita ang pagbabago sa direksyon ng paggalaw). Sa wakas, nagdagdag kami sa sprite ng uri ng Player overlaps sa iba pangSprite ng uri ng Enemy block, kung saan gumawa kami ng isang simpleng tseke kung ang player ay na-hit na. Kung hindi namin binabawas ang isang buhay, itakda ang hit flag sa 1 (na-hit) at simulan ang timer. Sa sandaling 500 ms mula noong huling oras ng hit ay pinalitan namin ang flag hit pabalik sa 0. Ginagawa namin iyon upang maiwasan ng manlalaro ang pag-loose ng napakaraming mahahalagang buhay matapos na mabangga ang isang kaaway.

Suriin natin kung kumusta tayo. Sa gayon, ang eksena ay tiyak na mas buhay sa lahat ng mga paniki na lumilipad sa paligid at kumagat sa aming manlalaro. Ngayon kailangan namin ng sandata upang magawa ang ating kabayanihan!

Hakbang 3: Ang Armas

Ang Armas
Ang Armas

Para sa sandata, gumuhit ako ng inspirasyon mula sa isang lumang laro ng Nintendo tungkol sa dalawang kapatid na chipmunk:) Idagdag natin ang mga crite sprite sa antas, ang katulad na paraan ng pagdaragdag natin ng mga kaaway. Pinasimulan din namin ang variable na has_crate sa -1, na nagsasaad na ang aming character ay hindi nagdadala ng isang crate. Sa sprite ng uri ng Player ay nagsasapawan sa iba pangSprite ng uri ng block ng Pagkain, sinusuri namin kung mayroon na kaming hawak na isang kahon at kung hindi namin, itinakda namin ang variable na has_crate sa index ng crate sprite sa listahan. Pagkatapos ay sa block ng pag-update ng laro inililipat namin ang sprite na iyon kasama ang sprite ng manlalaro at kung ang pindutan A ay pinindot, binago namin ang bilis ng vx ng crate sa 1200 o -1200 (depende sa direksyon ng paggalaw ng character). Itinakda din namin ang variable na has_crate pabalik sa -1 ulit at binago ang uri ng sprite ng crate na inilunsad sa hangin ngayon lamang sa Projectile.

Panghuli, kailangan namin para sa mga crates upang aktwal na sirain ang mga kaaway kapag inilunsad (ngunit hindi kapag ang mga kaaway ay random na madapa sa isang kahon! Kaya't inatasan namin ang mga crate na i-type ang Pagkain at palitan lamang ito ng Projectile kapag inilunsad) at sirain ang sarili kapag tumatama ang pader. Gumagamit kami ng isa pa sa sprite ng uri ng Projectile na nagsasapawan sa iba pa Kung ang Projectile ay tumama sa dingding, sinisira namin ang sprite nito.

Halos tapos na ngayon! Ang laro ay puwedeng laruin ngayon, ngunit kahit anong hamon pa rin - isang antas lamang at medyo simple doon. Maaari kaming gumawa ng higit pang mga antas sa pamamagitan ng kamay o sumulat ng isang algorithm na awtomatikong bubuo para sa amin ng mga antas na ito - kahit na hindi sila magiging kasing ganda ng mga antas na ginawa ng tao ng kurso.

Hakbang 4: Walang-hanggan Adventures

Walang-hanggan Adventures
Walang-hanggan Adventures
Walang-hanggan Adventures
Walang-hanggan Adventures
Walang-hanggan Adventures
Walang-hanggan Adventures

Ang pag-andar para sa pagbuo ng random na antas ay medyo nakakatakot sa una, ngunit ito ay talagang isang simpleng serye ng mga hakbang upang makabuo ng algorithm ng isang bagong antas, sa paraan na ang isang bagong antas ay maipapasa para sa mapaglarong character. Una, alagaan namin ang pagkuha ng aming character sa bagong antas na iyon - sa pamamagitan ng paggamit sa sprite ng uri ng mga overlap ng Player … sa lokasyon - ginagamit namin ang tile ng pintuan ng portal bilang gatilyo sa isang bagong antas. Sa pagpapaandar ng generate_level pinasimulan namin ang mga variable na hilera, col at pagkakataon. Gumagawa rin kami ng isang bagong mapa ng tile, parehong laki tulad ng dati, ngunit walang laman. Narito ang isang maliit na pag-iingat kahit na - upang magamit ang set… sa hilera ng tilemap… col… block, ang tilemap ay kailangang magkaroon ng mga partikular na tile --- na medyo counter intuitive at marahil isang bug sa Makecode. Kaya, kung ano ang kakailanganin mong gawin ay upang lumikha ng isang tilemap, ilagay ang lahat ng mga uri ng tile na nais mong gamitin sa random na henerasyon AT pagkatapos burahin ang mga ito.

Manwal naming inilalagay ang unang tile (0x6) at player sa ibabaw nito. Pagkatapos ay ulitin namin ang susunod na hakbang ng 30 beses - ang susunod na hakbang ay simpleng serye ng mga True-False na tseke, na magpapasya kung ang susunod na tile ng tile ay magiging 1) parehong antas tulad ng nakaraang 2) isa pataas o 3) isang pababa. Mayroon ding napakaliit na pagkakataon na ang susunod na tile ay magiging isang lava tile - hindi namin nais ang masyadong marami sa mga ito! Matapos ang bawat nabuo na tile pinupuno namin ang puwang sa ibaba nito ng lava - para lamang sa kagandahan. Bilang isang pangwakas na hakbang ay idinagdag namin ang mga kaaway at ang mga crates at inilalagay ang mga ito sa tuktok ng mga random na spawn tile.

Hakbang 5: Nagsisimula ang Pakikipagsapalaran

Nagsisimula ang Pakikipagsapalaran
Nagsisimula ang Pakikipagsapalaran

Voila! Natapos namin ang aming platformer at ang aming bayani ay maaaring pumunta sa isang walang katapusang pakikipagsapalaran, talunin ang mga paniki at pagsira sa mga crate. kung nakakaranas ka ng mga problema, maaari mong i-download ang code mula sa aming GitHub repository.

Ito ay isang blueprint lamang at tiyak na may ilang mga pagpapabuti na maaaring gawin, halimbawa iba't ibang uri ng mga kaaway, bonus, mas mahusay na pagbuo ng antas 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 newsletter.

Lumikha ang TinkerGen ng isang kampanya sa Kickstarter para sa MARK (Gumawa ng Isang Robot Kit), isang robot kit para sa pagtuturo ng pag-coding, robotics, AI!

Inirerekumendang: