Turinys:
- Prekės
- 1 žingsnis: Pradžios ir „Round_setup“funkcijos
- 2 žingsnis: žaidimo eiga
- 3 žingsnis: 1 žaidimas: AI priešininkas
- 4 žingsnis: 2 žaidimas: kelių žaidėjų simuliatorius
- 5 žingsnis: 3 žaidimas: „Jacdac Multiplayer“
- 6 žingsnis: tegul prasideda „Cthulhu“kova
Video: (Keli žaidėjai) „GameGo“kova su „Makecode Arcade“: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
„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, kuriems patinka linksmintis kuriant retro vaizdo žaidimus. Galite sekti šią pamoką ir išbandyti žaidimą „Makecode Arcade“simuliatoriuje, tada paleisti jį „GameGo“.
Straipsniuose, kuriuos publikavome anksčiau, jau išbandėme savo jėgas kurdami platformingo žaidimą ir „Battle City Remake“. Šį kartą norėjau naudoti „Jacdac“sąsają, kad sujungčiau du „GameGo“ir leistų žaidėjams kovoti dėl viršenybės kelių žaidėjų kovotojų žaidime. Deja, sužinojau, kad „Jacdac“kelių žaidėjų blokų programavimas šiuo metu yra beta stadijoje ir turi tam tikrų klaidų - vis tiek galima atlikti paprastesnius žaidimus, bet mano kovos žaidimui nesiseka. Taigi, šioje pamokoje aš skelbiu tris žaidimo versijas (kurias pavadinau „Cthulhu Combat“:))
- vieno žaidėjo versija su paprastu AI priešininku
- kelių žaidėjų versija, skirta žaisti „Arcade“modeliavime
- kelių žaidėjų versija su „Jacdac“(neužbaigta, bus atnaujinta vėliau)
Prekės
„GameGo“
„Microsoft Makecode Arcade“
1 žingsnis: Pradžios ir „Round_setup“funkcijos
Aš išsamiai aprašysiu vieno žaidėjo žaidimo kodavimą, o po to tolesniuose žingsniuose aptarsime, kaip tai padaryti
a) kelių žaidėjų simuliatorius
b) „Jacdac“kelių žaidėjų.
Pradėkime nuo plytelių žemėlapio nustatymo į tamsų požemį ir spritų kūrimo žaidėjui ir dirbtinio intelekto robotui - abu jie priklausys „Player kind“. Mes nustatėme jų y ašies pagreitį iki 600 - kad jie neskristų šokinėję. Prieš iškviesdami „round_setup“funkciją, mes taip pat inicijuojame sviedinius iš roboto ir grotuvo. „round_setup“funkcija pasirūpina mūsų pasiruošimu naujam raundui. Priežastis, kodėl mes ją paverčiame funkcija, yra ta, kad iš viso žaidime gali būti iki 3 raundų ir norime išvengti to paties kodo kartojimo. Šioje funkcijoje pirmiausia patikriname, ar kuris nors iš žaidėjų turi 2 pergales - jei ši sąlyga vertinama kaip tiesa, tada žaidimas baigtas. Jei abu žaidėjai turi mažiau nei dvi pergales, mes padidiname kintamąjį „round_num“vienu ir padedame žaidėjus į pradines vietas, papildome jų gyvybes iki 100 ir skelbiame naujo raundo pradžią.
2 žingsnis: žaidimo eiga
Šiame žaidime pats pasaulis yra statiškas ir žaidimo eiga yra pririšta prie žaidėjų veiksmų. Keturiuose blokuose mes apibrėžiame daugumą žaidimo taisyklių, šie blokai yra: paspaustas aukštyn, žemyn, A mygtukas ir B mygtukas. Pažvelkime į kiekvieną iš šių blokų.
paspaudus aukštyn mygtuką - dvigubo šuolio logika. Jei peršokimo mygtuką paspausdavome mažiau nei 3 kartus, tada grotuvo greitį nustatydavome į - 140 (juda aukštyn). Mūsų žaidėjo vy pagreitis nustatytas į 600, todėl kai mes šokinėsime, mūsų greitis greitai mažės. Kai jis pasiekia 0 (nejuda vertikalia ašimi), vėl nustatome jump_count į 0.
paspaudus žemyn mygtuką - nuotolinio atakos skydo logika. Paspaudus žemyn mygtuką, žaidėjas pakeičia savo vaizdą į „ekranuotas“ir nustato kintamą ekraną į 1.
ant mygtuko A paspaustas - šaudyk sviedinį. Tas vienas yra beveik savaime suprantamas.
paspaudus mygtuką B - artimojo ataka, panaši į skydą įgyvendinant.
Mes nustatome žaidėjų spritų vaizdus ir jų ekranuotus/atakuojančius kintamuosius į 0 kas 500 ms žaidimo atnaujinimo metu kas.. ms. Galėjome kiekvienam veiksmui nustatyti nepriklausomus laikmačius, tačiau dėl paprastumo naudosime tik pagrindinę žaidimo atnaujinimo kilpą.
Laimėjimo sąlygos čia yra gana lengvos - kai žaidėjo gyvenimas pasiekia 0, kitas žaidėjas laimėjo turą, tada mes išsaugome žaidėjo laimėjimų skaičių kintamajame.
Galiausiai yra du blokai, valdantys įvairias atakų ir artimųjų atakų žalą. Kiekviename iš jų mes tikriname, ar nėra sprite susidūrimo ir ar atakuojančio žaidėjo ekranuotas/atakuojantis kintamasis yra nustatytas į 0/1.
3 žingsnis: 1 žaidimas: AI priešininkas
Pirmajame žaidime mes sukursime palyginti paprastą AI priešininką, kuris bus antras žaidėjas. Žaidimo atnaujinimo metu kas 200 ms pirmiausia patikriname atstumą tarp žaidėjo ir AI - jei jis yra mažesnis nei 20, mes nustatome savo AI artimojo režimo režimu, padidindami jo artimojo smūgio tikimybę iki 30, o atakos tikimybę - į 30. Jei atstumas yra didesnis nei 20, mes nustatome artimojo smūgio tikimybę į nulį (jokio pinto artimojo smūgio metu, nes žaidėjas yra per toli) ir perkeliame galimybę į 70. Nustačius veiksmo tikimybės kintamuosius, toliau vykdome šiuos veiksmus su nurodytomis galimybėmis. Jei pats bandysite žaisti prieš šį paprastą AI, pamatysite, kad, nepaisant jo elgesio, yra labai paprastas, laimėti prieš jį nėra lengva - kaip dažnai, kai kompiuteriu valdomi priešininkai dažniausiai laimi, nes gali atlikti daugiau veiksmų per sekundę nei žmogaus žaidėjas.
Jei įstrigote koduodamas, galite atsisiųsti visą šio projekto kodą iš mūsų „GitHub“saugyklos ir atidaryti jį „Makecode Arcade“.
4 žingsnis: 2 žaidimas: kelių žaidėjų simuliatorius
Žaidimo variantas dviem žaidėjams simuliacijoje yra labai panašus į vieno žaidėjo versiją, išskyrus tai, kad AI elgesio bloką pakeičiame keturiais žaidėjo 2 mygtuko paspaustais blokais - turinys šių blokų viduje atspindi tų pačių blokų turinį 1 žaidėjui. Pažvelkite į ekrano kopiją, kad geriau suprastumėte, kokius pakeitimus reikia atlikti. Be to, mes taip pat turime pridėti „2“grotuvą su mygtukais, blokuojančiais paleidimo funkciją, o antrojo žaidėjo pabaigos ekraną pakeisti į „WIN“, o ne „LOSE“.
5 žingsnis: 3 žaidimas: „Jacdac Multiplayer“
Šioje forumo temoje radau bendruomeninį „Jacdac“kelių žaidėjų diegimą su „Makecode“arkadiniais blokais
forum.makecode.com/t/new-extension-real-mu…
Ten išbandžiau pavyzdinį žaidimą („Space Invaders“) ir pastebėjau, kad jis veikia labai gerai. Deja, „Cthulhu Combat“žaidimo mechanikoje naudojama daug kintamųjų ir atrodo, kad „Real Multiplayer“plėtiniai kol kas nepalaiko kintamųjų sinchronizavimo - todėl supratau, kad tai veikia, dviejų žaidėjų veiksmai sinchronizuojami visuose įrenginiuose, tačiau gyvenimas to nepadarys. nesileiskite priešininkų įrenginyje. Taip pat kažkas negerai su sviedinių mechanika, neatrodo, kad sviediniai dingsta atsitrenkus į sieną, dėl ko žaidimas praranda ryšį po to, kai buvo paleista apie 10 sviedinių.
Galite išbandyti kelių žaidėjų žaidimą, atsisiųsdami-p.webp
6 žingsnis: tegul prasideda „Cthulhu“kova
Vis dar galima patobulinti mūsų paprastą kovos žaidimą - pavyzdžiui, galite pridėti sudėtingesnį AI elgesį arba naudoti plėtinį, norėdami pridėti mygtukų derinius ir (arba) animacijos sekas. Sėkmės ir linksmybių, kol programuojate savo žaidimus naudodami „GameGo“ir „Makecode Arcade“.
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ų naujienlaiškį.
Rekomenduojamas:
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
„Battle City“perdarymas „GameGo“naudojant „Makecode Arcade“: 4 žingsniai (su nuotraukomis)
„Battle City“perdarymas „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 įrašus
Keli ATtiny85/13A programuotojai: 6 žingsniai
Keli „ATtiny85/13A“programuotojai: ar kada nors sukūrėte tokį projektą kaip „LDR x Arduino UNO Automatic Light“ar pan., Kuris naudoja tik 2–3 skaitmeninius 32 kontaktų mikrovaldiklio įvesties/išvesties prievadus? Gerai, jei ką nors darote prototipų kūrimo darbai, bet ką daryti, jei norite užbaigti ar pagaminti
Keli elektroniniai žvakės: 3 žingsniai
Keli elektroniniai žvakės: Elektroninės žvakės buvo daug kartų paskelbtos „Instructables“, tad kodėl tai viena? Namuose turiu šiuos mažus pusiau permatomus Kalėdų namus, kuriuose yra LED įžvalga ir maža baterija. Kai kuriuose namuose yra šviesos diodai su žvakių efektu, o kai kuriuose - šviesos diodai
Keli BMP280 jutikliai „Arduino Uno“per SPI: 6 žingsniai
Keli BMP280 jutikliai „Arduino Uno“per SPI: Šioje pamokoje mes sujungsime tris „BMP280“„Arduino Uno“per SPI, bet jūs galite prijungti iki aštuonių BMP280 „Uno“naudodami skaitmeninius prievadus nuo D3 iki D10 kaip kiekvieno jutiklio nSS („Slave Select“). atmosferos slėgio mėginių, išmatuotų pagal B