Turinys:
- Prekės
- 1 žingsnis: mūsų „Alter -ego“- geltonas bakas
- 2 žingsnis: Išveskite priešus
- Žingsnis 3: 42
- 4 žingsnis: begalinis žaidimas ir patobulinimai
Video: „Battle City“perdarymas „GameGo“naudojant „Makecode Arcade“: 4 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
„GameGo“yra su „Microsoft Makecode“suderinama nešiojama žaidimų konsolė, sukurta „TinkerGen STEM“švietimo. Jis pagrįstas STM32F401RET6 ARM Cortex M4 lustu ir skirtas STEM pedagogams ar tiesiog žmonėms, kurie mėgsta linksmintis kurdami retro vaizdo žaidimus. Galite sekti šią pamoką ir išbandyti žaidimą „Makecode Arcade“simuliatoriuje, tada paleisti jį „GameGo“.
Šiame straipsnyje mes išbandysime savo jėgas, kaip atkurti klasikinį „Battle City“tankų šaudymo žaidimą, kurį iš pradžių sukūrė ir paskelbė „Namco“1985 m. „Nintendo Entertainment System“(NES). Pradiniame žaidime žaidėjas valdo tanką ir šaudo į sviedinius, kad sunaikintų priešo tankus. Priešo tankai bando sunaikinti žaidėjo bazę, taip pat patį žaidėjo tanką. Mes šiek tiek pakeisime žaidimą, kad geriau pritaikytume „GameGo“blokavimo programavimo praktiką, tačiau mūsų perdarymas vis tiek išliks daug panašus į pradinį žaidimą. Pradėkime!
Prekės
„GameGo“
1 žingsnis: mūsų „Alter -ego“- geltonas bakas
Atidarykite „Makecode Arcade“adresu https://arcade.makecode.com/ ir spustelėkite naują projektą. Mes pradėsime savo alter ego paversti geltonu tanku. Pasirinkite Nustatyti „mySprite“, kad nepažeistų žaidėjų bloko, ir nubrėžkite geltoną baką, nukreiptą į viršų, kaip pradinį spritą, padėkite tą bloką į pradžios bloką. Pridėti „mySprite“judėjimą mygtukais. Dabar mes turime baką, kurį galime perkelti mygtukais imituodami! Puiku, bet ji visada nukreipta ta pačia kryptimi, net kai judame žemyn arba į šoną …
Norėdami tai ištaisyti, pridėkime dar keturis blokus, po vieną kiekvienos krypties mygtukui. Sukurkite naują kintamąjį, vadinamą kryptimi - jame išsaugosime savo bako judėjimo kryptį, 100 atitiks žemyn, -100 atitiks aukštyn, 200 dešinėje ir -200 kairėje. Kodėl šie skaičiai? Pamatysite vėliau, kai pridėsime sviedinių, kad mūsų tankas bus paleistas. Kiekvieno keturių šių blokų logika yra labai paprasta - mes patikriname, ar nauja kryptis (paspaudus mygtuką) yra tokia pati kaip ir anksčiau. Jei taip, mes iš esmės nieko nedarome. Jei ne, mes pakeičiame bako sprite ir, jei nukreipta žemyn ir į kairę, apverčiame sprito atvaizdą, kad išvengtume papildomų spritų. Galiausiai priskiriame pradinę krypties reikšmę -100 (bakas aukštyn), nes taip mūsų tankas pradeda žaidimą. Pabandykite perkelti geltoną baką dabar, spritas pasikeis pagal judėjimo kryptį dabar! Puiku, dabar pridėkime kulkas.
Mes paleisime kulkas su nustatytu sviediniu į sviedinį (nupieškime mažą sidabrinį kvadratą šiam spritui) iš „mySprite“su vx vy greičiais. A mygtuko A paspausto bloko viduje turime patikrinti absoliučią krypties vertę, kad pamatytume, ar geltonas bakas nukreiptas aukštyn/žemyn iš kairės/dešinės. Tada mes paleidžiame sviedinį su krypties kintamojo greičiu -todėl krypties reikšmėms turėjome -100/100/-200/200.
Dabar mes turime geltoną baką, kuris gali paleisti sviedinius ir judėti. Jei geltonos spalvos imituoti tankai galėtų jausti, ji tikrai jaustųsi vieniša šioje tuščioje tuštumoje be priešų ir ką veikti. Taigi, kitame žingsnyje pridėkime priešų, kad jis praleistų laiką.
2 žingsnis: Išveskite priešus
Šį žingsnį pradėsime sukurdami krūvą naujų kintamųjų: du masyvus (vieną, skirtą priešo spritams laikyti, o kitą - priešo nurodymams laikyti), neršto laiko kintamąjį, skirtą laikotarpiui tarp neršto išsaugoti, priešo skaičiui, kad būtų išsaugotas didžiausias priešų skaičius Tuo pačiu metu. Taip pat pridėsime du sviedinius (sviedinį ir priešo sviedinį), kurie įsijungs į pradžios bloką - tai padės išvengti klaidos vėliau.
Toliau mes kuriame žaidimo atnaujinimą kas… ms bloką, ten įterpkite spawn_time kintamąjį. Bloko viduje esanti logika yra paprasta - jei bendras priešų skaičius mūšio lauke yra mažesnis už didžiausią leistiną priešų skaičių, pridėkite priešą prie 200 (eina į dešinę) to priešo kryptimi.
Tada į sukurtą „Enemy“bloko elementą pridedame keletą grafinių efektų, padedame jį ant atsitiktinės tuščios plytelės ir iškviečiame „spr_direction“funkciją. Nepaisant to, kad priešas atsitrenkia į sieną, tą pačią funkciją vadiname „pick_direction“.
Kas yra toje funkcijoje? Čia viskas pradeda šiek tiek komplikuotis, todėl laikykitės. Yra 50 procentų tikimybė, kad priešo tankas pakils ir 50 procentų nusileis - atitinkamai keičiame sprite. Vienintelis triukas yra tas, kad mes taip pat turime pakeisti vertę, atitinkančią tą konkretų priešo tanką priešo_direkcijų_ sąraše, į naują kryptį, todėl norėtume, kad jis paleistų kulkas teisinga kryptimi. Tam mes surandame priešo sprito indeksą priešo_prospekto_rašte ir pakeičiame to elemento vertę priešo_direkcijų sąraše.
Galiausiai pridėkime šūvius. Mes pridedame dar vieną žaidimo atnaujinimą kas 500 ms bloką ir įtraukiame elementą į priešo_prospekto_sąrašą. Esant 30% tikimybei, priešo spritas paleis priešo sviedinį savo judėjimo kryptimi.
Jei dabar pradėsime žaidimą imituodami, galime pamatyti, kaip mūsų geltonasis tankas ir priešo tankai pasirodo tame pačiame taške ir eina į tuščią erdvę. Mes galime šaudyti, o jie - mūsų geltoną tanką, bet nieko neatsitiks. Vis dar jaučiasi beprasmė:) Paskutinį žingsnį pridėkime dekoracijas ir žaidimų mechaniką.
Žingsnis 3: 42
Mes pradėsime šį žingsnį pridėdami „Life“ir balus iš skirtuko „Info“ir nustatydami „10“ir „nulis“. Tada pridedame blokų rinkinio plytelių žemėlapį prie…. Nubrėžkite failų žemėlapį, kad jis atrodytų taip, kaip matote aukščiau esančioje ekrano kopijoje. Nepamirškite pridėti sienų!
Dar pridėkime, kad šaudmenys sutampa su kitais. „Natūralus žaidėjas“- tai yra tada, kai priešo kulkos pataiko į mūsų geltoną tanką. Turime įsitikinti, kad šie sviediniai yra priešo kulkos, o ne mūsų pačių, todėl pridėsime, kad jei būklė blokuose ir jei ji vertinama kaip tiesa, mes atimame vieną iš gyvybės skaičiaus. Panašiai kaip ir kitame bloke, esančiame ant natūralaus sprogimo, sviedinys sutampa su kitu „Natūralus priešas“, mes įsitikiname, kad sviedinys yra geltono tanko sviedinys, ir jei ši sąlyga vertinama kaip „tiesa“, mes sunaikiname „otherSprite“(priešo tanką), pašaliname jį iš sąrašo iš priešo_prospekto_sąrašo ir pridėkite vieną, kad gautumėte taškų.
Paskutinis dalykas yra pergalės ir pralaimėjimo sąlygos - dėl pergalės mes patikrinsime, ar rezultatas yra didesnis ar lygus 10 amžiname bloke. Jei taip, tada rodome pergalės ekraną. O gyvenimo nulio bloke mes rodome „Game Over“ekraną.
Dabar išbandykite tai simuliacijoje, kad pamatytumėte, ar žaidimas veikia taip, kaip tikėtasi. Tada įkelkite jį į „GameGo“ir mėgaukitės priešo tankų sutriuškinimu!
4 žingsnis: begalinis žaidimas ir patobulinimai
Mūsų „GitHub“saugykloje galite atsisiųsti du „Makecode“pasažo failus - vienas yra tas pats, kurį gautumėte, jei vykdytumėte šią instrukciją, o kita - atnaujinta versija, kuri atsitiktinai sugeneravo lygio progresą. Jame yra 10 lygių, kiekvienas iš jų yra atsitiktinai sugeneruotas, padidinant priešų skaičių kiekviename iš eilės lygių.
Ir, žinoma, yra dar daugiau dalykų, kuriuos jūs ar jūsų mokiniai gali pridėti prie žaidimo! Yra geresnė muzika, lūžtančios sienos, skirtingos pergalės sąlygos ir pan!
Jei sukūrėte patobulintą žaidimo versiją, pasidalykite ja komentaruose žemiau! Norėdami gauti daugiau informacijos apie „GameGo“ir kitą aparatūrą, skirtą kūrėjams ir STEM pedagogams, apsilankykite mūsų svetainėje https://tinkergen.com/ ir užsiprenumeruokite mūsų tinklaraštį.
„TinkerGen“pradėjo „Kickstarter“kampaniją, skirtą „MARK“(„Make A Robot Kit“) - robotų rinkiniui, skirtam mokyti kodavimo, robotikos, AI!
Rekomenduojamas:
(Keli žaidėjai) „GameGo“kova su „Makecode Arcade“: 6 žingsniai
(Keli žaidėjai) „GameGo“kova su „Makecode Arcade“: „GameGo“yra su „Microsoft Makecode“suderinama nešiojama žaidimų konsolė, sukurta „TinkerGen STEM“švietimo. Jis pagrįstas STM32F401RET6 ARM Cortex M4 lustu ir skirtas STEM pedagogams ar tiesiog žmonėms, kurie mėgsta linksmintis kurdami retro vaizdo įrašus
Platformininkas su begaliniu „GameGo“lygiu su „Makecode Arcade“: 5 žingsniai (su nuotraukomis)
Platformininkas su begaliniu lygiu „GameGo“su „Makecode Arcade“: „GameGo“yra su „Microsoft Makecode“suderinama nešiojama žaidimų konsolė, sukurta „TinkerGen STEM“švietimo. Jis pagrįstas STM32F401RET6 ARM Cortex M4 lustu ir skirtas STEM pedagogams ar tiesiog žmonėms, kurie mėgsta linksmintis kurdami retro vaizdo žaidimus
Garsiakalbių perdarymas: pasidaryk pats (pagaminta „Fusion 360“): 18 žingsnių (su paveikslėliais)
Garso garsiakalbių perdarymas: pasidaryk pats (pagaminta „Fusion 360“): turiu porą garsiakalbių, kuriuos sukūriau prieš 2½ metų. Tačiau garsiakalbių dėžės yra neorganizuotos ir užima daug vietos. Todėl norėčiau pertvarkyti savo garso kolonėlę padarydamas dėžutę ar dėklą 3D spausdinime. Garsiakalbis tinka tik kompiuteriui
Belaidis nuotolinis valdymas naudojant 2,4 GHz NRF24L01 modulį su „Arduino“- Nrf24l01 4 kanalų / 6 kanalų siųstuvo imtuvas keturkopteriui - Rc sraigtasparnis - Rc lėktuvas naudojant „Arduino“: 5 žingsniai (su nuotraukomis)
Belaidis nuotolinis valdymas naudojant 2,4 GHz NRF24L01 modulį su „Arduino“| Nrf24l01 4 kanalų / 6 kanalų siųstuvo imtuvas keturkopteriui | Rc sraigtasparnis | Rc lėktuvas naudojant „Arduino“: valdyti Rc automobilį | Kvadopteris | Dronas | RC plokštuma | RC valtis, mums visada reikia imtuvo ir siųstuvo, tarkime, kad RC QUADCOPTER mums reikia 6 kanalų siųstuvo ir imtuvo, o tokio tipo TX ir RX yra per brangus, todėl mes jį pagaminsime savo
„Night City Skyline“LED sieninė lempa: 6 žingsniai (su nuotraukomis)
„Night City Skyline“LED sieninė lempa: šioje instrukcijoje aprašoma, kaip aš sukūriau dekoratyvinę sieninę lempą. Idėja yra naktinė miesto panorama su kai kuriais apšviestais pastatų langais. Lempa pagaminta iš pusiau permatomos mėlynos organinio stiklo plokštės, o pastato siluetai dažyti