Sadržaj:

(Više igrača) Borba na GameGo -u s Makecode Arcade: 6 koraka
(Više igrača) Borba na GameGo -u s Makecode Arcade: 6 koraka

Video: (Više igrača) Borba na GameGo -u s Makecode Arcade: 6 koraka

Video: (Više igrača) Borba na GameGo -u s Makecode Arcade: 6 koraka
Video: Тимати и L'ONE - Еще до старта далеко (feat. Павел Мурашов) [премьера клипа, 2015] 2024, Srpanj
Anonim

GameGo je retro prijenosna igraća konzola kompatibilna s Microsoft Makecodeom koju je razvilo TinkerGen STEM obrazovanje. Temelji se na STM32F401RET6 ARM Cortex M4 čipu i napravljen je za STEM edukatore ili samo ljude koji se vole zabavljati stvarajući retro video igre. Možete slijediti ovaj vodič i isprobati igru u Makecode Arcade simulatoru, a zatim je pokrenuti na GameGo -u.

U člancima koje smo prije objavili već smo se okušali u izradi platformerske igre i remakea Battle Cityja. Ovaj put sam htio koristiti Jacdac sučelje za povezivanje dva GameGo -a i omogućiti igračima da se bore za prevlast u igri za više igrača. Nažalost, saznao sam da je blok programiranje za Jacdac multiplayer do sada u beta fazi i ima nekih grešaka - još uvijek je moguće napraviti jednostavnije igre, ali nema sreće u mojoj borbenoj igri. Dakle, u ovom uputstvu objavljujem tri verzije igre (koju sam nazvao "Cthulhu Combat":))

- verzija za jednog igrača s jednostavnim AI protivnikom

- verzija za više igrača za igranje u Arkadnoj simulaciji

- verzija za više igrača s Jacdacom (nepotpuna, bit će ažurirana kasnije)

Pribor

GameGo

Microsoft Makecode Arcade

Korak 1: O funkcijama Start i Round_setup

O funkcijama Start i Round_setup
O funkcijama Start i Round_setup

Detaljno ću opisati kodiranje igre za jednog igrača, a zatim u sljedećim koracima raspravljamo o tome kako to učiniti

a) simulator za više igrača

b) Jacdac multiplayer.

Počinjemo postavljanjem karte pločica u tamnu tamnicu i stvaranjem sprajtova za igrača i AI bota - oboje će ipak pripadati vrsti igrača. Njima smo postavili ubrzanje osi y na 600 - kako ne bi letjeli nakon skoka. Također pokrećemo projektile od bota i igrača prije pozivanja funkcije round_setup. Funkcija round_setup brine se za pripremu nove runde za nas - razlog zašto je pretvaramo u funkciju je zato što u igri može biti ukupno 3 kruga i želimo izbjeći ponavljanje istog koda. U toj funkciji prvo provjeravamo ima li netko od igrača 2 pobjede - ako se ovaj uvjet ocijeni kao True, igra je gotova. Ako oba igrača imaju manje od dvije pobjede, povećavamo varijablu round_num za jednu i postavljamo igrače na njihova početna mjesta, punimo im živote na 100 i proglašavamo početak nove runde.

Korak 2: Tok igre

Tok igre
Tok igre

U ovoj igri sam svijet je statičan, a tok igre je vezan za radnje igrača. U četiri bloka definiramo većinu pravila igre, a to su: pritisnuti tipku gore, pritisnuti gumb dolje, pritisnuti tipku A i pritisnuti tipku B. Pogledajmo svaki od ovih blokova.

pritisnuta tipka za gore - logika dvostrukog skoka. Ako smo pritisnuli gumb za skok manje od 3 puta, tada smo postavili brzinu vy igrača na - 140 (kretanje prema gore). Naš igrač ima vy ubrzanje postavljeno na 600, pa kad jednom skočimo, naša će se brzina brzo smanjivati. Kad dosegne 0 (ne pomiče se po okomitoj osi), ponovno postavljamo jump_count na 0.

pritisnuta tipka za dolje - logika štita za dalekometni napad. Ako se pritisne tipka za dolje, igrač mijenja sliku u "zaštićenu" i postavlja varijablu zaštićenu na 1.

na gumb A pritisnut - ispalite projektil. Taj je prilično razumljiv sam po sebi.

na gumbu B pritisnut - napad u sukobu, sličan štitu u implementaciji.

Postavljamo slike sprajtova igrača i njihovih zaštićenih/napadačkih varijabli na 0 svakih 500 ms pri ažuriranju igre svaki.. ms blok. Mogli smo postaviti neovisne mjerače vremena za svaku radnju, ali radi jednostavnosti koristit ćemo samo glavnu petlju ažuriranja igre.

Uvjeti pobjede ovdje su prilično laki - kada život igrača dosegne 0, drugi igrač je pobijedio u krugu, tada broj pobjeda po igraču pohranjujemo u varijablu.

Konačno, postoje dva bloka koji kontroliraju oštećenja u rasponu od napada i oštećenja u napadu u blizini. U svakom od njih provjeravamo postoji li sudar sprajta i je li oklopljena/napadačka varijabla za napadačkog igrača postavljena na 0/1.

Korak 3: Igra 1: AI protivnik

1. igra: AI protivnik
1. igra: AI protivnik

U prvoj igri stvorit ćemo relativno jednostavnog AI protivnika koji će biti drugi igrač. Unutar ažuriranja igre svakih 200 ms prvo provjeravamo udaljenost između igrača i umjetne inteligencije - ako je manje od 20, postavljamo našu AI u način rada za okršaj povećavajući njezinu šansu za napad u bliskom napadu na 30 i raspon mogućnosti napada na 30. Ako je udaljenost veća od 20 postavljamo šansu za napad u bliskom napadu na nulu (nema pinta u napadu u bliskom napadu, budući da je igrač predaleko) i pomičemo šansu na 70. Nakon što su varijable za akcijske šanse postavljene, nastavljamo s izvršavanjem ovih akcija s navedenim šansama. Ako sami pokušate igrati protiv ove jednostavne umjetne inteligencije, vidjet ćete da je, iako je ponašanje vrlo jednostavno, pobijediti protiv nje nije lako - često u slučaju s računalno kontroliranim protivnicima pobjeđuje uglavnom zato što može izvesti više akcija u sekundi ljudski igrač.

Ako ste zaglavili tijekom kodiranja, možete preuzeti cijeli kôd u naše spremište GitHub za ovaj projekt i otvoriti ga u Makecode Arcade.

Korak 4: Igra 2: Simulator za više igrača

Igra 2: Simulator za više igrača
Igra 2: Simulator za više igrača
Igra 2: Simulator za više igrača
Igra 2: Simulator za više igrača

Varijanta igre za dva igrača u simulaciji vrlo je slična verziji za jednog igrača, osim što zamjenjujemo blok ponašanja AI s četiri bloka na gumbu igrača pritisnuta 2 - sa sadržajem unutar ovih blokova koji preslikava sadržaj istih blokova za igrača 1. Imati pogledajte snimak zaslona da biste bolje razumjeli koje promjene trebate napraviti. Osim toga, također moramo dodati potez igrača 2 sa blokiranim gumbima na početnoj funkciji i promijeniti završni zaslon za igru dva igrača na WIN umjesto LOSE.

Korak 5: Igra 3: Jacdac više igrača

Igra 3: Jacdac Multiplayer
Igra 3: Jacdac Multiplayer

Našao sam zajedničku implementaciju Jacdac multiplayera s Makecode arkadnim blokovima u ovoj temi foruma

forum.makecode.com/t/new-extension-real-mu…

Tamo sam testirao primjer igre (Space Invaders) i otkrio da radi jako dobro. Nažalost, mehanika igara u Cthulhu Combat -u koristi mnogo varijabli i čini se da proširenja Real Multiplayer još ne podržavaju sinkronizacijske varijable - pa sam se snašao, radnje dvaju igrača sinkronizirane su na različitim uređajima, ali život ne bi mogao Ne pada na protivničke uređaje. Također nešto nije u redu s mehanikom projektila, čini se da projektili ne nestaju nakon udara u zid, zbog čega igra gubi vezu nakon što je ispaljeno oko 10 projektila.

Možete isprobati multiplayer preuzimanjem-p.webp

Korak 6: Neka borba s Cthulhuom počne

Neka borba s Cthulhuom počne!
Neka borba s Cthulhuom počne!

Postoji još mnogo poboljšanja koja se mogu napraviti u našoj jednostavnoj borbenoj igri - na primjer, možete dodati složenije ponašanje AI -a ili upotrijebiti proširenje za dodavanje kombinacija gumba i/ili animacijskih sekvenci. Sretno i zabavite se dok programirate vlastite igre s GameGo -om i Makecode Arcade -om.

Ako ipak napravite poboljšanu verziju igre, podijelite je u komentarima ispod! Za više informacija o GameGou i drugom hardveru za proizvođače i STEM edukatore posjetite našu web stranicu, https://tinkergen.com/ i pretplatite se na naš bilten.

Preporučeni: