Innehållsförteckning:

(Multiplayer) Fighting on GameGo With Makecode Arcade: 6 Steg
(Multiplayer) Fighting on GameGo With Makecode Arcade: 6 Steg

Video: (Multiplayer) Fighting on GameGo With Makecode Arcade: 6 Steg

Video: (Multiplayer) Fighting on GameGo With Makecode Arcade: 6 Steg
Video: Drive Car and MakeCode Arcade -- Coding with Captain 2024, November
Anonim

GameGo är en Microsoft Makecode -kompatibel bärbar konsol för retrospel utvecklad av TinkerGen STEM education. Den är baserad på STM32F401RET6 ARM Cortex M4 -chip och gjord för STEM -lärare eller bara människor som gillar att ha roligt med att skapa retro -videospel. Du kan följa denna handledning och prova spelet i Makecode Arcade -simulatorn och sedan köra det på GameGo.

I artiklarna som vi publicerade innan vi redan försökte oss på att göra ett plattformsspel och en Battle City Remake. Den här gången ville jag använda Jacdac -gränssnittet för att ansluta två GameGos tillsammans och låta spelarna kämpa för överlägsenhet i ett flerspelarkämpar. Tyvärr fick jag reda på att blockprogrammering för Jacdac multiplayer är i beta -skede från och med nu och har några buggar - det är fortfarande möjligt att göra enklare spel, men ingen tur för mitt kampspel. Så i denna instruerbara publicerar jag tre versioner av spelet (som jag kallade "Cthulhu Combat":))

- enspelarversion med enkel AI -motståndare

- flerspelarversion för att spela i Arcade -simulering

- flerspelarversion med Jacdac (ofullständig, uppdateras senare)

Tillbehör

GameGo

Microsoft Makecode Arcade

Steg 1: På Start- och Round_setup -funktioner

På Start- och Round_setup -funktioner
På Start- och Round_setup -funktioner

Jag kommer att beskriva kodande enkelspelarspel i detaljer och sedan diskuterar vi i nästa steg hur vi gör det till

a) flerspelarsimulator

b) Jacdac multiplayer.

Vi börjar med att ställa in kakelkartan på dark dungeon och skapa sprites för spelare och AI -bot - båda kommer dock att tillhöra Player kind. Vi ställde in sin y -axelacceleration till 600 - så att de inte skulle flyga efter att ha hoppat. Vi initierar också projektiler från bot och spelare innan vi anropar round_setup -funktionen. round_setup -funktionen tar hand om nya förberedelser för oss - anledningen till att vi gör det till en funktion är att det kan vara så många som 3 omgångar totalt i spelet och vi vill undvika att upprepa samma kod. I den funktionen kontrollerar vi först om någon av spelarna har 2 segrar - om detta villkor utvärderas som sant, då är spelet över. Om båda spelarna har mindre än två segrar ökar vi variabeln round_num med en och placerar spelare på deras startplatser, fyller på deras liv till 100 och förklarar början på en ny omgång.

Steg 2: Game Flow

Spelflöde
Spelflöde

I det här spelet är själva världen statisk och spelflödet är kopplat till spelarnas handlingar. I fyra block definierar vi de flesta spelreglerna, dessa block är: uppåtknapp nedtryckt, nedknapp nedtryckt, nedtryckt A -knapp och på B -knapp tryckt. Låt oss titta på var och en av dessa block.

på upp -knappen nedtryckt - dubbelhoppslogik. Om vi tryckte på hoppknappen mindre än 3 gånger, satte vi spelarens vyhastighet till - 140 (rör oss uppåt). Vår spelare har en acceleration på 600, så när vi hoppar kommer vår hastighet att minska snabbt. När den når 0 (rör sig inte på vertikal axel) sätter vi jump_count till 0 igen.

på ned -knappen nedtryckt - varierad attacksköldlogik. Om nedknappen trycks ned ändrar spelaren sin bild till "skärmad" och ställer in variabeln skärmad till 1.

på knapp A tryckt - skjut av en projektil. Den där är ganska självförklarande.

på knapp B nedtryckt - närstridsattack, liknande sköld vid implementering.

Vi ställer in bilder på spelarnas sprites och deras skärmade/attackerande variabler till 0 var 500: e ms på speluppdatering varje.. ms block. Vi hade kunnat ställa in oberoende tidtagare för varje åtgärd, men för enkelhetens skull använder vi bara huvudspeluppdateringsslingan.

Vinstförhållandena här är ganska enkla - när spelarlivet når 0 har den andra spelaren vunnit rundan, vi lagrar sedan antalet vinster per spelare i en variabel.

Slutligen finns det två block som styr olika attackskador och närstridsattacker. I var och en av dem kontrollerar vi om det är sprite -kollision och om den skärmade/attackerande variabeln för den anfallande spelaren är inställd på 0/1.

Steg 3: Spel 1: AI -motståndare

Spel 1: AI -motståndare
Spel 1: AI -motståndare

I det första spelet kommer vi att skapa en relativt enkel AI -motståndare för att vara andra spelare. Inuti speluppdateringen var 200: e ms gör vi först avståndskontrollen mellan spelare och AI - om det är mindre än 20 ställer vi in vår AI i närkampsläge genom att höja dess närstridschans till 30 och varierade attackchans till 30. Om avståndet är högre än 20 sätter vi chansen till närstridsattack till noll (ingen pint i närstridsattack, eftersom spelaren är för långt) och flyttar chansen till 70. Efter att variablerna för actionchanser har ställts in fortsätter vi att utföra dessa åtgärder med angivna chanser. Om du försöker spela mot denna enkla AI själv kommer du att se att trots att beteendet är väldigt enkelt är det inte lätt att vinna mot det - så ofta för datorstyrda motståndare vinner det mest för att det kan göra fler handlingar per sekund än en mänsklig spelare.

Om du fastnade medan du kodade kan du ladda ner hela koden i vårt GitHub -arkiv för detta projekt och öppna den i Makecode Arcade.

Steg 4: Game 2: Simulator Multiplayer

Spel 2: Simulator Multiplayer
Spel 2: Simulator Multiplayer
Spel 2: Simulator Multiplayer
Spel 2: Simulator Multiplayer

Spelvarianten för två spelare i simulering är mycket lik enspelarversion, förutom att vi byter ut AI -beteendeblocket med fyra på spelare 2 knapptryckta block - med innehåll inuti dessa block som speglar innehållet i samma block för spelare 1. Har titta på skärmdumpen för att få en bättre uppfattning om vilka ändringar du behöver göra. Bortsett från det måste vi också lägga till flyttspelare 2 med knappar som blockerar startfunktionen och ändra slutskärmen för spelare två om till WIN istället för LOSE.

Steg 5: Spel 3: Jacdac Multiplayer

Spel 3: Jacdac Multiplayer
Spel 3: Jacdac Multiplayer

Jag har hittat en community -implementering av Jacdac multiplayer med Makecode arkadblock i denna forumtråd

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

Jag testade exemplets spel där (Space Invaders) och tyckte att det fungerade mycket bra. Tyvärr använder spelmekaniken i Cthulhu Combat många variabler och det verkar som att Real Multiplayer -tilläggen inte stöder synkroniseringsvariabler ännu - så jag fick det att fungera, de två spelarnas åtgärder synkroniseras mellan enheter, men livet kan inte tappa inte på motståndarens enhet. Det är också något fel med projektilmekanik, projektilerna verkar inte försvinna efter att ha träffat väggen, vilket gör att spelet tappar anslutningen efter att cirka 10 projektiler har skjutits.

Du kan prova flerspelaren genom att ladda ner-p.webp

Steg 6: Låt Cthulhu -striden börja

Låt Cthulhu -striden börja!
Låt Cthulhu -striden börja!

Det finns fortfarande många förbättringar som kan göras i vårt enkla kampspel - till exempel kan du lägga till mer komplicerat AI -beteende eller använda tillägg för att lägga till knappkombinationer och/eller animationssekvenser. Lycka till och ha kul medan du programmerar dina egna spel med GameGo och Makecode Arcade.

Om du gör en förbättrad version av spelet, dela det i kommentarerna nedan! För mer information om GameGo och annan hårdvara för tillverkare och STEM -lärare, besök vår webbplats, https://tinkergen.com/ och prenumerera på vårt nyhetsbrev.

Rekommenderad: