Cuprins:
- Provizii
- Pasul 1: Funcțiile Start și Round_setup
- Pasul 2: Fluxul jocului
- Pasul 3: Jocul 1: Oponent AI
- Pasul 4: Jocul 2: Simulator Multiplayer
- Pasul 5: Jocul 3: Jacdac Multiplayer
- Pasul 6: Să înceapă lupta Cthulhu
Video: (Multiplayer) Luptă pe GameGo cu Makecode Arcade: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
GameGo este o consolă portabilă de jocuri retro compatibilă cu Microsoft Makecode, dezvoltată de TinkerGen STEM education. Se bazează pe cipul STM32F401RET6 ARM Cortex M4 și este conceput pentru educatorii STEM sau doar persoanelor cărora le place să se distreze creând jocuri video retro. Puteți urma acest tutorial și puteți încerca jocul în simulatorul Makecode Arcade și apoi îl puteți rula pe GameGo.
În articolele pe care le-am publicat înainte am încercat deja să facem un joc platformer și un Battle City Remake. De data aceasta am vrut să folosesc interfața Jacdac pentru a conecta două GameGo împreună și a permite jucătorilor să lupte pentru supremație într-un joc de luptător multiplayer. Din păcate, am aflat că programarea de blocuri pentru multiplayer Jacdac este în fază beta de acum și are câteva bug-uri - este încă posibil să fac jocuri mai simple, dar fără noroc pentru jocul meu de luptă. Deci, în acest instructiv, public trei versiuni ale jocului (pe care le-am numit „Cthulhu Combat”:))
- versiune single player cu adversar simplu AI
- versiune multiplayer pentru a juca în simulare Arcade
- versiunea multiplayer cu Jacdac (incompletă, va fi actualizată ulterior)
Provizii
GameGo
Microsoft Makecode Arcade
Pasul 1: Funcțiile Start și Round_setup
Voi descrie codificarea jocului pentru un singur jucător în detalii și apoi în următorii pași vom discuta despre cum să îl transformăm
a) simulator multiplayer
b) multiplayer Jacdac.
Începem cu setarea hărții de țiglă în temnița întunecată și crearea sprite pentru jucător și bot AI - ambii vor aparține totuși felului de jucător. Le-am setat accelerația axei y la 600 - pentru a nu zbura după ce au sărit. De asemenea, inițializăm proiectile de la bot și player înainte de a apela funcția round_setup. funcția round_setup are grijă de noi pregătiri pentru rundă - motivul pentru care o facem o funcție este pentru că pot fi până la 3 runde în total în joc și vrem să evităm repetarea aceluiași cod. În această funcție, verificăm mai întâi dacă vreunul dintre jucători are 2 victorii - dacă această condiție este evaluată ca fiind Adevărată, atunci jocul s-a încheiat. Dacă ambii jucători au mai puțin de două victorii, mărim variabila round_num cu una și plasăm jucătorii pe locurile lor de start, ne completăm viața la 100 și declarăm începutul unei noi runde.
Pasul 2: Fluxul jocului
În acest joc, lumea însăși este statică, iar fluxul jocului este legat de acțiunile jucătorilor. În patru blocuri definim majoritatea regulilor jocului, aceste blocuri sunt: butonul sus apăsat, butonul jos apăsat, butonul A apăsat și butonul B apăsat. Să aruncăm o privire la fiecare dintre aceste blocuri.
butonul de sus apăsat - logică dublu salt. Dacă am apăsat butonul de salt de mai puțin de 3 ori, atunci setăm viteza jucătorului la - 140 (în mișcare în sus). Jucătorul nostru are viteza de accelerare setată la 600, așa că odată ce sărim, viteza noastră va scădea rapid. Odată ce ajunge la 0 (nu se mișcă pe axa verticală) setăm jump_count la 0 din nou.
butonul de apăsare apăsat - logica scutului de atac la distanță. Dacă este apăsat butonul în jos, jucătorul își schimbă imaginea în „ecranat” și setează variabila ecranată la 1.
pe butonul A apăsat - trageți un proiectil. Acela se explică de la sine.
pe butonul B apăsat - atac corp la corp, similar cu scutul în implementare.
Am setat imagini cu spritele jucătorilor și variabilele lor protejate / atacante la 0 la fiecare 500 ms în actualizarea jocului la fiecare bloc.. ms. Am fi putut seta temporizatoare independente pentru fiecare acțiune, dar, din simplitate, vom folosi doar bucla principală de actualizare a jocului.
Condițiile de câștig de aici sunt destul de ușoare - când viața jucătorului ajunge la 0, celălalt jucător a câștigat runda, apoi stocăm numărul de victorii de către jucător într-o variabilă.
În cele din urmă, există două blocuri care controlează daunele de atac la distanță și daunele de atac corp la corp. În fiecare dintre ele verificăm dacă există o coliziune sprite și dacă variabila ecranată / atacantă pentru jucătorul atacant este setată la 0/1.
Pasul 3: Jocul 1: Oponent AI
În primul joc vom crea un adversar AI relativ simplu pentru a fi al doilea jucător. În interiorul actualizării jocului la fiecare 200 ms facem mai întâi verificarea distanței dintre jucător și AI - dacă este mai mică de 20 ne setăm AI în modul corp la corp crescând șansa de atac la corp la 30 și șansa de atac la distanță la 30. Dacă distanța este mai mare peste 20 stabilim șansa de atac la corp la zero (fără pinte în atac la corp, deoarece jucătorul este prea departe) și mutăm șansa la 70. După ce s-au stabilit variabilele pentru șansele de acțiune, continuăm să executăm aceste acțiuni cu șansele specificate. Dacă încercați singur să jucați împotriva acestei AI simple, veți vedea că, în ciuda comportamentului său, este foarte simplu, câștigarea împotriva ei nu este ușoară - de multe ori în cazul adversarilor controlați de computer, ea câștigă mai ales pentru că poate face mai multe acțiuni pe secundă decât o jucător uman.
Dacă ați rămas în timp ce codificați, puteți descărca codul complet în depozitul nostru GitHub pentru acest proiect și îl puteți deschide în Makecode Arcade.
Pasul 4: Jocul 2: Simulator Multiplayer
Varianta de joc pentru doi jucători în simulare este foarte asemănătoare cu versiunea pentru un singur jucător, cu excepția faptului că înlocuim blocul de comportament AI cu patru blocuri apăsate pe butonul jucătorului 2 - cu conținut în interiorul acestor blocuri care reflectă conținutul acelorași blocuri pentru jucătorul 1. Au o privire la captura de ecran pentru a vă face o idee mai bună ce schimbări trebuie să faceți. În afară de asta, trebuie să adăugăm și mutarea playerului 2 cu butoanele blocate în funcția de pornire și schimbarea ecranului final pentru jocul jucătorului doi la CÂȘTIGĂ în loc de PIERDERE.
Pasul 5: Jocul 3: Jacdac Multiplayer
Am găsit o implementare comunitară a multiplayerului Jacdac cu blocuri arcade Makecode în acest thread al forumului
forum.makecode.com/t/new-extension-real-mu…
Am testat exemplul de joc acolo (Space Invaders) și am constatat că funcționează foarte bine. Din păcate, mecanica jocului Cthulhu Combat folosește o mulțime de variabile și se pare că extensiile Real Multiplayer nu acceptă încă variabile de sincronizare - așa că am început să funcționeze, acțiunile celor doi jucători sunt sincronizate între dispozitive, dar viața nu poate Nu te lăsa pe dispozitivul adversarilor. De asemenea, este ceva în neregulă cu mecanica proiectilelor, proiectilele nu par să dispară după ce au lovit peretele, ceea ce face ca jocul să piardă conexiunea după ce au fost trase aproximativ 10 proiectile.
Puteți încerca multiplayerul descărcând fișierul-p.webp
Pasul 6: Să înceapă lupta Cthulhu
Există încă multe îmbunătățiri care pot fi aduse jocului nostru simplu de luptă - de exemplu, puteți adăuga un comportament AI mai complicat sau puteți utiliza extensia pentru a adăuga combo-uri de butoane și / sau secvențe de animație. Noroc și distrează-te în timp ce îți programezi propriile jocuri cu GameGo și Makecode Arcade.
Dacă faceți o versiune îmbunătățită a jocului, împărtășiți-o în comentariile de mai jos! Pentru mai multe informații despre GameGo și alte componente hardware pentru producători și educatori STEM, vizitați site-ul nostru web, https://tinkergen.com/ și abonați-vă la newsletter-ul nostru.
Recomandat:
Platformer cu nivele infinite pe GameGo With Makecode Arcade: 5 pași (cu imagini)
Platformer cu niveluri infinite pe GameGo cu Makecode Arcade: GameGo este o consolă portabilă de jocuri retro compatibilă cu Microsoft Makecode, dezvoltată de TinkerGen STEM education. Se bazează pe cipul STM32F401RET6 ARM Cortex M4 și este creat pentru educatorii STEM sau doar pentru cei cărora le place să se distreze creând jocuri video retro
Robot de luptă de casă Versiunea 2: 6 pași
Robot de luptă de casă Versiunea 2: Deci … Aceasta este a doua versiune a robotului meu de luptă împotriva greutăților! Aș dori să vă prezint „Sidewinder”. Pentru acest proiect am folosit piese tipărite 3D (proiectate de mine) și câteva piese electronice pe care le-am cumpărat cu sub 100 USD. Am folosit un CAD așa că
Lupta împotriva Coronavirusului: Cronometru simplu pentru spălarea mâinilor: 8 pași (cu imagini)
Lupta împotriva Coronavirusului: Cronometru simplu pentru spălarea mâinilor: Odată cu actuala pandemie din lume, situația pare destul de înfricoșătoare. Virusul Corona ar putea fi oriunde. Din câte știm, s-ar putea transporta virusul timp de câteva zile, fără a prezenta nici măcar simptome. Înfricoșător într-adevăr, dar hei, nu te speria prea mult
Battle City Remake pe GameGo With Makecode Arcade: 4 pași (cu imagini)
Battle City Remake pe GameGo cu Makecode Arcade: GameGo este o consolă portabilă de jocuri retro compatibilă cu Microsoft Makecode, dezvoltată de educația TinkerGen STEM. Se bazează pe cipul STM32F401RET6 ARM Cortex M4 și este conceput pentru educatorii STEM sau doar persoanelor cărora le place să se distreze creând video video retro
Cum să faci un robot de luptă (pentru ORICE nivel de abilitate): 8 pași
Cum se face un robot de luptă (pentru ORICE nivel de abilitate): Când am început robotica de luptă, am constatat că nu există „pas cu pas”; robotul de luptă construiește o procedură, așa că, după ce am făcut o mulțime de cercetări pe internet, am decis să compilez o parte din el pentru a crea un ghid pentru realizarea unui robot de luptă, astfel încât cineva să