Tartalomjegyzék:

(Multiplayer) Küzdelem a GameGo -n a Makecode Arcade segítségével: 6 lépés
(Multiplayer) Küzdelem a GameGo -n a Makecode Arcade segítségével: 6 lépés

Videó: (Multiplayer) Küzdelem a GameGo -n a Makecode Arcade segítségével: 6 lépés

Videó: (Multiplayer) Küzdelem a GameGo -n a Makecode Arcade segítségével: 6 lépés
Videó: Working on a multiplayer game in MakeCode Arcade 2024, November
Anonim

A GameGo egy Microsoft Makecode -kompatibilis, hordozható retro játékkonzol, amelyet a TinkerGen STEM oktatás fejlesztett ki. Az STM32F401RET6 ARM Cortex M4 chipen alapul, és a STEM oktatók vagy csak azok számára készült, akik szeretik a szórakozást retro videojátékok készítésében. Kövesse ezt az oktatóanyagot, és próbálja ki a játékot a Makecode Arcade szimulátorban, majd futtassa a GameGo -n.

A korábban megjelent cikkekben már kipróbáltuk a platformerjáték és a Battle City Remake készítését. Ezúttal a Jacdac felületet akartam használni, hogy összekapcsoljam két GameGo -t, és lehetővé tegyem a játékosoknak, hogy harcoljanak a fölényért egy többjátékos harcos játékban. Sajnos rájöttem, hogy a Jacdac multiplayer blokkprogramozása jelenleg béta szakaszban van, és vannak hibái - még mindig lehetséges egyszerűbb játékokat készíteni, de nincs szerencsém a harci játékomhoz. Tehát ebben az utasításban közzéteszem a játék három verzióját (amit "Cthulhu Combat" -nak neveztem:))

- egyjátékos verzió egyszerű AI ellenféllel

- többjátékos verzió az Arcade szimulációban

- többjátékos verzió Jacdaccal (hiányos, később frissítjük)

Kellékek

GameGo

Microsoft Makecode Arcade

1. lépés: A Start és a Round_setup függvényekben

A Start és a Round_setup funkcióknál
A Start és a Round_setup funkcióknál

Részletesen leírom az egyjátékos játék kódolását, majd a következő lépésekben megbeszéljük, hogyan lehet azt létrehozni

a) szimulátor multiplayer

b) Jacdac multiplayer.

Kezdjük azzal, hogy a csempe térképét sötét börtönbe állítjuk, és spriteket hozunk létre a játékos és az AI bot számára - mindkettő a Player fajhoz tartozik. Az y tengelyük gyorsulását 600 -ra állítottuk - így ugrás után nem repülnének. A round_setup függvény meghívása előtt inicializáljuk a lövedékeket a botból és a lejátszóból is. A round_setup függvény gondoskodik számunkra az új forduló előkészítéséről - ennek a funkciónak az az oka, hogy összesen 3 forduló lehet a játékban, és el akarjuk kerülni ugyanazon kód ismétlését. Ebben a funkcióban először azt ellenőrizzük, hogy van -e bármelyik játékosnak 2 győzelme - ha ez a feltétel igaznak minősül, akkor vége a játéknak. Ha mindkét játékos kevesebb, mint két győzelmet arat, akkor eggyel növeljük a round_num változót, és a játékosokat a kezdő helyükre helyezzük, 100 -ra feltöltjük az életüket, és kijelentjük egy új kör kezdetét.

2. lépés: Játékfolyamat

Játékfolyamat
Játékfolyamat

Ebben a játékban maga a világ statikus, és a játék folyamata a játékosok cselekedeteihez kötődik. Négy blokkban határozzuk meg a legtöbb játékszabályt, ezek a blokkok: a fel gomb megnyomása, a le gomb megnyomása, az A gomb megnyomása és a B gomb megnyomása. Nézzük meg mindegyik blokkot.

fel gombot nyomva - dupla ugrás logika. Ha 3 -nál kevesebb alkalommal nyomtuk meg az ugrás gombot, akkor a játékos sebességét - 140 -re állítjuk (felfelé haladva). Játékosunk 600 -ra állította a gyorsulást, így ha ugrunk, a sebességünk gyorsan csökkenni fog. Miután elérte a 0 értéket (nem mozog a függőleges tengelyen), a jump_count értéket ismét 0 -ra állítjuk.

le gomb megnyomva - távolsági támadási pajzs logika. Ha megnyomja a le gombot, a játékos a képét "árnyékolt" értékre változtatja, és az árnyékolt értéket 1 -re állítja.

az A gomb megnyomása - lövedék lövése. Ez nagyjából magától értetődő.

megnyomva a B gombot - közelharci támadás, hasonlóan a pajzshoz a megvalósításban.

A játékfrissítések képeit és azok árnyékolt/támadó változóit 500 ms -onként 0 -ra állítjuk a játékfrissítés minden.. ms blokkjában. Beállíthattunk volna minden időzítéshez független időzítőt, de az egyszerűség kedvéért csak a fő játékfrissítési ciklust használjuk.

A nyerési feltételek itt meglehetősen egyszerűek - amikor a játékos élete eléri a 0 -t, a másik játékos megnyerte a fordulót, akkor a játékosok nyereményeinek számát eltároljuk egy változóban.

Végül két blokk szabályozza a távolsági támadásokat és a közelharci támadásokat. Mindegyikben ellenőrizzük a sprite ütközést, és hogy a támadó játékos árnyékolt/támadó változója 0/1 -re van -e állítva.

3. lépés: 1. játék: AI ellenfél

1. játék: AI ellenfél
1. játék: AI ellenfél

Az első játékban egy viszonylag egyszerű AI ellenfelet fogunk létrehozni a második játékosnak. A játék frissítésén belül minden 200 ms -ban először ellenőrizzük a távolságot a játékos és az AI között - ha kevesebb, mint 20, akkor közelharci módba állítjuk az AI -t úgy, hogy közelharci támadási esélyét 30 -ra, távolsági támadási esélyét 30 -ra emeljük. 20 -nál nullára állítjuk a közelharci támadás esélyét (nincs pint a közelharci támadásban, mivel a játékos túl messze van), és 70 -re állítjuk az esélyt. Miután beállítottuk a cselekvési esélyek változóit, a megadott esélyekkel folytatjuk ezeket a műveleteket. Ha maga is megpróbál játszani az egyszerű AI ellen, látni fogja, hogy annak viselkedése ellenére nagyon egyszerű, győzni ellene nem könnyű - ahogyan a számítógép által vezérelt ellenfelek esetében ez gyakran nyer, mert több akciót képes végrehajtani másodpercenként, mint egy emberi játékos.

Ha elakadt a kódolás során, letöltheti a teljes kódot a projekthez tartozó GitHub -tárunkból, és megnyithatja azt a Makecode Arcade -ben.

4. lépés: 2. játék: Szimulátoros többjátékos

2. játék: Szimulátoros többjátékos
2. játék: Szimulátoros többjátékos
2. játék: Szimulátoros többjátékos
2. játék: Szimulátoros többjátékos

A szimulációban szereplő két játékos játékváltozatai nagyon hasonlítanak az egyjátékos verzióhoz, azzal a különbséggel, hogy az AI viselkedésblokkot négy, a 2 játékoson lenyomott blokkra cseréljük le - ezeken belül a tartalom tükrözi az 1. játékos azonos blokkjainak tartalmát. nézze meg a képernyőképet, hogy jobban megértse, milyen változtatásokat kell végrehajtania. Ettől eltekintve hozzá kell adnunk a 2. játékost is a gombokkal, amelyek blokkolják az indítási funkciót, és a második játékos záróképernyőjét WIN -re kell cserélni LOSE helyett.

5. lépés: 3. játék: Jacdac Multiplayer

3. játék: Jacdac Multiplayer
3. játék: Jacdac Multiplayer

Találtam egy közösségi megvalósítást a Jacdac multiplayerből Makecode arcade blokkokkal ebben a fórumban

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

Ott teszteltem a példajátékot (Space Invaders), és azt találtam, hogy nagyon jól működik. Sajnos a Cthulhu Combat játékmechanikája sok változót használ, és úgy tűnik, hogy a valódi többjátékos bővítmények még nem támogatják a változók szinkronizálását - szóval megértettem, hogy a két játékos műveletei szinkronizálva vannak az eszközök között, de az élet nem ne essen az ellenfelek készülékére. Valami baj van a lövedékmechanikával is, úgy tűnik, hogy a lövedékek nem tűnnek el a falnak ütközés után, ami miatt a játék elveszíti a kapcsolatot körülbelül 10 lövedék kilövése után.

Kipróbálhatja a többjátékos módot, ha letölti a-p.webp

6. lépés: Kezdődjön a Cthulhu harc

Kezdődjön a Cthulhu harc!
Kezdődjön a Cthulhu harc!

Az egyszerű harci játékunkban még sok fejlesztés érhető el - például bonyolultabb AI -viselkedést adhat hozzá, vagy bővítményt használhat gombkombók és/vagy animációs sorozatok hozzáadásához. Sok szerencsét és jó szórakozást, miközben saját játékokat programoz a GameGo és a Makecode Arcade segítségével.

Ha javított változatot készít a játékról, ossza meg az alábbi megjegyzésekben! Ha többet szeretne megtudni a GameGo -ról és más hardverekről a gyártók és a STEM oktatók számára, látogasson el honlapunkra, a https://tinkergen.com/ oldalra, és iratkozzon fel hírlevelünkre.

Ajánlott: