Sadržaj:

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

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

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

GameGo je retro prijenosna igraća konzola kompatibilna sa Microsoft Makecode -om, koju je razvilo TinkerGen STEM obrazovanje. Zasnovan je 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 pratiti 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 interfejs za povezivanje dva GameGo -a i omogućiti igračima da se bore za nadmoć u igri za više igrača. Nažalost, saznao sam da je blok programiranje za Jacdac multiplayer trenutno u beta fazi i da ima nekih grešaka - još uvijek je moguće napraviti jednostavnije igre, ali nema sreće za moju borbenu igru. Dakle, u ovom uputstvu objavljujem tri verzije igre (koju sam nazvao "Cthulhu Combat":))

- verzija za jednog igrača sa 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)

Supplies

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 mape pločica na tamnu tamnicu i stvaranjem sprajtova za igrača i AI bota - oba ć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 o pripremi nove runde za nas - razlog zašto je pretvaramo u funkciju je to što u igri može biti ukupno 3 kruga i želimo izbjeći ponavljanje istog koda. U toj funkciji prvo provjeravamo ima li neki 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

Game Flow
Game Flow

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: pritisnuto dugme gore, pritisnuto dugme dolje, dugme A pritisnuto i dugme B pritisnuto. Pogledajmo svaki od ovih blokova.

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

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

na dugme A pritisnuto - ispalite projektil. To je prilično razumljivo samo po sebi.

pritisnuto dugme B - napad u bliskom napadu, 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 nezavisne tajmere za svaku radnju, ali radi jednostavnosti koristit ćemo samo glavnu petlju za ažuriranje igre.

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

Konačno, postoje dva bloka koji kontroliraju oštećenja u daljinama i oštećenja u napadu u bliskom napadu. U svakom od njih provjeravamo postoji li sudar sudara 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 ćemo stvoriti 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 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, jer je igrač predaleko) i premještamo šansu na 70. Nakon što su varijable za akciju postavljene, nastavljamo s izvršavanjem ovih akcija sa navedenim šansama. Ako sami pokušate igrati protiv ove jednostavne umjetne inteligencije, vidjet ćete da je, uprkos njenom ponašanju, vrlo jednostavno pobijediti - nije jednostavno - često u slučaju s protivnicima s računarskom kontrolom pobjeđuje uglavnom zato što može izvesti više akcija u sekundi human player.

Ako ste zaglavili tijekom kodiranja, možete preuzeti cijeli kôd u našem GitHub spremištu 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 je vrlo slična verziji za jednog igrača, osim što zamjenjujemo blok ponašanja AI sa četiri bloka na igraču pritisnuta 2 dugmeta - sa sadržajem unutar ovih blokova koji preslikavaju sadržaj istih blokova za igrača 1. Imati pogledajte snimak ekrana da biste stekli bolju ideju 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 ekran za igru dva igrača na WIN umjesto LOSE.

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

Igra 3: Jacdac Multiplayer
Igra 3: Jacdac Multiplayer

Našao sam implementaciju Jacdac multiplayer -a u zajednici sa 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 vrlo dobro. Nažalost, mehanika igre Cthulhu Combat -a koristi mnogo varijabli i čini se da Real Multiplayer ekstenzije još ne podržavaju sinhronizacijske varijable - pa sam to uspio, radnje dva igrača se sinkroniziraju na različitim uređajima, ali život ne bi mogao Ne ispuštam na protivnički uređaj. Također nešto nije u redu s mehanikom projektila, čini se da projektili ne nestaju nakon udara u zid, što dovodi do toga da igra izgubi vezu nakon što je ispaljeno oko 10 projektila.

Možete isprobati multiplayer preuzimanjem-p.webp

Korak 6: Neka Cthulhu borba počne

Neka borba Cthulhu počne!
Neka borba Cthulhu počne!

Postoji još mnogo poboljšanja koja se mogu učiniti u našoj jednostavnoj borbenoj igri - na primjer, možete dodati složenije ponašanje AI -a ili koristiti proširenje za dodavanje kombinacija gumba i/ili animacijskih sekvenci. Sretno i zabavite se dok programirate svoje 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 GameGo -u 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čuje se: