Kazalo:

(Več igralcev) Boj na GameGo z Makecode Arcade: 6 korakov
(Več igralcev) Boj na GameGo z Makecode Arcade: 6 korakov

Video: (Več igralcev) Boj na GameGo z Makecode Arcade: 6 korakov

Video: (Več igralcev) Boj na GameGo z Makecode Arcade: 6 korakov
Video: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, November
Anonim

GameGo je retro prenosna igralna konzola, združljiva z Microsoft Makecode, ki jo je razvilo izobraževalno podjetje TinkerGen STEM. Temelji na čipu STM32F401RET6 ARM Cortex M4 in je namenjen učiteljem STEM ali samo ljudem, ki se radi zabavajo pri ustvarjanju retro video iger.

V člankih, ki smo jih objavili prej, smo se že preizkusili v izdelavi platformerske igre in predelave Battle Cityja. Tokrat sem želel uporabiti vmesnik Jacdac za povezovanje dveh GameGo -jev in omogočiti igralcem, da se borijo za premoč v igri z več igralci. Na žalost sem ugotovil, da je blok programiranje za večigralce Jacdac trenutno v beta fazi in ima nekaj hroščev - še vedno je mogoče narediti enostavnejše igre, vendar za mojo borbeno igro ni sreče. Tako v tem navodilu objavljam tri različice igre (ki sem jih poimenoval "Cthulhu Combat":))

- različica za enega igralca s preprostim nasprotnikom AI

- različica za več igralcev za igranje v simulaciji Arcade

- različica za več igralcev z Jacdac (nepopolna, bo posodobljena kasneje)

Zaloge

GameGo

Microsoft Makecode Arcade

1. korak: o funkcijah Start in Round_setup

O funkcijah Start in Round_setup
O funkcijah Start in Round_setup

Podrobno bom opisal kodiranje igre za enega igralca, nato pa v naslednjih korakih razpravljamo, kako to narediti

a) simulator za več igralcev

b) Jacdac multiplayer.

Začnemo z nastavitvijo zemljevida ploščic na temno ječo in ustvarjanjem spritov za igralca in AI bota - oba bosta pripadala vrsti igralca. Njihov pospešek po osi y smo nastavili na 600 - da po skoku ne bi leteli. Pred klicem funkcije round_setup inicializiramo izstrelke tudi od bota in predvajalnika. Funkcija round_setup skrbi za pripravo novega kroga za nas - razlog, da to naredimo kot funkcijo, je, ker so lahko v igri skupaj kar 3 krogi in se želimo izogniti ponavljanju iste kode. Pri tej funkciji najprej preverimo, ali ima kateri od igralcev 2 zmagi - če je ta pogoj ocenjen kot True, potem je igre konec. Če imata oba igralca manj kot dve zmagi, spremenljivko round_num povečamo za eno in igralce postavimo na njihova začetna mesta, jim napolnimo življenje na 100 in razglasimo začetek novega kroga.

2. korak: tok igre

Tok igre
Tok igre

V tej igri je sam svet statičen, tok igre pa je vezan na dejanja igralcev. V štirih blokih definiramo večino pravil igre, ti bloki so: pritisnjen gumb navzgor, pritisnjen gumb navzdol, pritisnjen gumb A in pritisnjen gumb B. Oglejmo si vsakega od teh blokov.

pritisnjen gumb navzgor - logika dvojnega skoka. Če smo gumb za skok pritisnili manj kot 3 -krat, nastavimo hitrost igralca vy na - 140 (premik navzgor). Naš igralec ima vy pospešek nastavljen na 600, zato se bo naša hitrost, ko skočimo, hitro zmanjševala. Ko doseže 0 (ne premika se po navpični osi), znova nastavimo jump_count na 0.

pritisnjen gumb navzdol - logika ščitnika z napadalnim območjem. Če pritisnete gumb dol, igralec spremeni svojo sliko v "zaščiteno" in nastavi spremenljivo zaščiteno na 1.

na gumb A pritisnjen - sprožite izstrelek. Ta je precej samoumeven.

na gumb B pritisnjen - napad v bližnjem obračunu, podoben ščitu v izvedbi.

Slike igralnih sprajtov in njihovih zaščitenih/napadalnih spremenljivk nastavimo na 0 vsakih 500 ms pri posodobitvi igre na vsakem bloku.. ms. Za vsako dejanje bi lahko nastavili neodvisne časovnike, vendar bomo zaradi poenostavitve uporabili samo glavno zanko za posodobitev igre.

Pogoji za zmago so tukaj precej enostavni - ko življenje igralca doseže 0, je drugi igralec zmagal v krogu, nato shranimo število zmag igralca v spremenljivko.

Nazadnje, obstajata dva bloka, ki nadzorujeta škodo pri napadih na daljavo in škodo pri napadu v bližnjem boju. V vsakem od njih preverimo trk sprite in če je zaščitna/napadalna spremenljivka za napadalca nastavljena na 0/1.

3. korak: 1. igra: nasprotnik AI

1. igra: nasprotnik AI
1. igra: nasprotnik AI

V prvi igri bomo ustvarili relativno preprostega nasprotnika AI, ki bo drugi igralec. Znotraj posodobitve igre vsakih 200 ms najprej preverimo razdaljo med igralcem in AI - če je manj kot 20, nastavimo naš AI v načinu za bližnji boj z zvišanjem možnosti za napad v bližnjem boju na 30 in z možnostjo napada na 30. Če je razdalja večja kot 20 nastavimo možnost napada v bližnjem boju na nič (brez pinta v napadu v bližnjem boju, saj je igralec predaleč) in premaknemo priložnost na 70. Ko so spremenljivke za akcijske možnosti nastavljene, nadaljujemo z izvajanjem teh dejanj z navedenimi možnostmi. Če sami poskusite igrati proti tej preprosti AI, boste videli, da kljub temu, da je njeno vedenje zelo preprosto, zmagati proti njej ni lahko - tako pogosto v primeru računalniško vodenih nasprotnikov zmaga predvsem zato, ker lahko naredi več dejanj na sekundo kot človeški igralec.

Če ste med kodiranjem obtičali, lahko celotno kodo prenesete v naše skladišče GitHub za ta projekt in jo odprete v Makecode Arcade.

4. korak: Igra 2: Simulator za več igralcev

Igra 2: Simulator za več igralcev
Igra 2: Simulator za več igralcev
Igra 2: Simulator za več igralcev
Igra 2: Simulator za več igralcev

Različica igre za dva igralca v simulaciji je zelo podobna različici za enega igralca, le da blok vedenja AI zamenjamo s štirimi bloki na gumbu igralca 2, pri čemer vsebina znotraj teh blokov zrcali vsebino istih blokov za igralca 1. Imeti si oglejte posnetek zaslona, da boste bolje razumeli, katere spremembe morate narediti. Poleg tega moramo dodati tudi premikajočega igralca 2 z blokiranimi gumbi pri zagonski funkciji in spremeniti končni zaslon za drugo igralko v igri WIN namesto LOSE.

5. korak: 3. igra: Jacdac za več igralcev

3. igra: Jacdac Multiplayer
3. igra: Jacdac Multiplayer

V tej temi foruma sem našel implementacijo skupnosti za več igralcev Jacdac z arkadnimi bloki Makecode

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

Tam sem preizkusil primer igre (Space Invaders) in ugotovil, da deluje zelo dobro. Na žalost mehanika iger v Cthulhu Combat uporablja veliko spremenljivk in zdi se, da razširitve Real Multiplayer še ne podpirajo sinhronizacijskih spremenljivk - zato sem začel delati, dejanja obeh igralcev sta sinhronizirana med napravami, vendar življenje ne bi moglo ne pade na nasprotnikovo napravo. Nekaj je tudi narobe z mehaniko izstrelkov, zdi se, da izstrelki ne izginejo po udarcu v steno, zaradi česar igra izgubi povezavo po približno 10 izstrelkih.

Lahko poskusite z več igralci, tako da prenesete datoteko-p.webp

6. korak: Naj se boj proti Cthulhuju začne

Naj se Cthulhujev boj začne!
Naj se Cthulhujev boj začne!

V naši preprosti borbeni igri je še veliko izboljšav - na primer, lahko dodate bolj zapleteno vedenje AI ali uporabite razširitev za dodajanje kombinacij gumbov in/ali animacijskih sekvenc. Vso srečo in zabavo med programiranjem lastnih iger z GameGo in Makecode Arcade.

Če naredite izboljšano različico igre, jo delite v spodnjih komentarjih! Za več informacij o igri Game in drugi strojni opremi za izdelovalce in učitelje STEM obiščite našo spletno stran https://tinkergen.com/ in se naročite na naše novice.

Priporočena: