Inhoudsopgave:
- Benodigdheden
- Stap 1: Op Start en Round_setup Functies
- Stap 2: Spelverloop
- Stap 3: Spel 1: AI-tegenstander
- Stap 4: Spel 2: Simulator Multiplayer
- Stap 5: Spel 3: Jacdac Multiplayer
- Stap 6: Laat het Cthulhu-gevecht beginnen
Video: (Multiplayer)Vechten op GameGo met Makecode Arcade - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
GameGo is een Microsoft Makecode-compatibele draagbare retro-gamingconsole, ontwikkeld door TinkerGen STEM-onderwijs. Het is gebaseerd op de STM32F401RET6 ARM Cortex M4-chip en gemaakt voor STEM-docenten of gewoon mensen die graag plezier hebben met het maken van retro-videogames. Je kunt deze tutorial volgen en het spel proberen in de Makecode Arcade-simulator en het vervolgens uitvoeren op GameGo.
In de artikelen die we eerder publiceerden, probeerden we al een platformgame en een Battle City Remake te maken. Deze keer wilde ik de Jacdac-interface gebruiken om twee GameGo's met elkaar te verbinden en de spelers in staat te stellen om voor de suprematie te vechten in een vechtspel voor meerdere spelers. Helaas kwam ik erachter dat blokprogrammering voor Jacdac-multiplayer zich vanaf nu in de bètafase bevindt en enkele bugs bevat - het is nog steeds mogelijk om eenvoudigere games te maken, maar geen geluk voor mijn vechtgame. Dus in deze instructable publiceer ik drie versies van het spel (die ik "Cthulhu Combat" noemde:))
- versie voor één speler met eenvoudige AI-tegenstander
- multiplayer-versie om te spelen in Arcade-simulatie
- multiplayer-versie met Jacdac (onvolledig, wordt later bijgewerkt)
Benodigdheden
GameGo
Microsoft Makecode Arcade
Stap 1: Op Start en Round_setup Functies
Ik zal het coderen van een spel voor één speler in detail beschrijven en in de volgende stappen bespreken we hoe je het kunt maken in
a) simulator-multiplayer
b)Jacdac-multiplayer.
We beginnen met het instellen van de tegelkaart op een donkere kerker en het maken van sprites voor speler en AI-bot - beide zullen echter van het type Speler zijn. We hebben hun y-asversnelling ingesteld op 600 - zodat ze niet zouden vliegen na het springen. We initialiseren ook projectielen van bot en speler voordat we de round_setup-functie aanroepen. De functie round_setup zorgt voor de voorbereiding van een nieuwe ronde voor ons - de reden dat we er een functie van maken is omdat er in totaal wel 3 rondes in het spel kunnen zijn en we willen voorkomen dat dezelfde code wordt herhaald. In die functie controleren we eerst of een van de spelers 2 overwinningen heeft - als deze voorwaarde als Waar wordt beoordeeld, is het spel afgelopen. Als beide spelers minder dan twee overwinningen hebben, verhogen we de variabele round_num met één en plaatsen we spelers op hun startplaatsen, vullen hun levens aan tot 100 en verklaren het begin van een nieuwe ronde.
Stap 2: Spelverloop
In dit spel is de wereld zelf statisch en is het spelverloop gebonden aan de acties van de spelers. In vier blokken definiëren we de meeste spelregels, deze blokken zijn: op de knop omhoog, op de knop omlaag, op de A-knop ingedrukt en op de B-knop ingedrukt. Laten we elk van deze blokken eens bekijken.
op omhoog-knop ingedrukt - dubbele spronglogica. Als we minder dan 3 keer op de springknop hebben gedrukt, stellen we player vy velocity in op - 140 (omhoog bewegen). Onze speler heeft een versnelling ingesteld op 600, dus zodra we springen, zal onze snelheid snel afnemen. Zodra het 0 bereikt (niet bewegend op de verticale as), stellen we jump_count opnieuw in op 0.
op omlaag-knop ingedrukt - logica voor afstandsaanvalschild. Als de omlaag-knop wordt ingedrukt, verandert de speler zijn afbeelding in "afgeschermd" en stelt variabele afgeschermd in op 1.
op knop A ingedrukt - vuur een projectiel af. Die is vrij veel zelfverklarend.
op knop B ingedrukt - melee-aanval, vergelijkbaar met schild in implementatie.
We hebben afbeeldingen van de sprites van spelers en hun afgeschermde/aanvalsvariabelen ingesteld op 0 elke 500 ms in op game-update elk.. ms-blok. We hadden voor elke actie onafhankelijke timers kunnen instellen, maar voor de eenvoud gebruiken we gewoon de update-lus van het hoofdspel.
De winvoorwaarden hier zijn vrij eenvoudig - wanneer het spelersleven 0 bereikt, heeft de andere speler de ronde gewonnen, dan slaan we het aantal overwinningen per speler op in een variabele.
Ten slotte zijn er twee blokken die schade op afstand en schade door melee-aanvallen regelen. In elk van hen controleren we op sprite-botsing en of de afgeschermde/aanvalsvariabele voor de aanvallende speler is ingesteld op 0/1.
Stap 3: Spel 1: AI-tegenstander
In het eerste spel zullen we een relatief eenvoudige AI-tegenstander creëren als tweede speler. Binnenin bij game-update elke 200 ms doen we eerst de afstandscontrole tussen speler en AI - als deze minder dan 20 is, zetten we onze AI in melee-modus door de kans op melee-aanval te verhogen naar 30 en de kans op afstandsaanvallen naar 30. Als de afstand groter is dan 20 stellen we de kans op een melee-aanval in op nul (geen pint in een melee-aanval, omdat de speler te ver is) en de kans op 70. Nadat de variabelen voor actiekansen zijn ingesteld, gaan we door met het uitvoeren van deze acties met de gespecificeerde kansen. Als je zelf tegen deze eenvoudige AI probeert te spelen, zul je zien dat ondanks zijn gedrag heel eenvoudig is, het niet gemakkelijk is om ertegen te winnen - zoals vaak bij computergestuurde tegenstanders, wint het meestal omdat het meer acties per seconde kan doen dan een menselijke speler.
Als je vastloopt tijdens het coderen, kun je de volledige code downloaden in onze GitHub-repository voor dit project en openen in Makecode Arcade.
Stap 4: Spel 2: Simulator Multiplayer
De spelvariant voor twee spelers in simulatie lijkt erg op de versie voor één speler, behalve dat we het AI-gedragsblok vervangen door vier op speler 2 ingedrukte blokken - met inhoud in deze blokken die de inhoud van dezelfde blokken voor speler 1 weerspiegelt. bekijk de schermafbeelding om een beter idee te krijgen welke wijzigingen u moet aanbrengen. Afgezien daarvan moeten we ook speler 2 verplaatsen met knoppenblokkering in de startfunctie toevoegen en het eindscherm voor speler twee game-over veranderen in WINNEN in plaats van LOSE.
Stap 5: Spel 3: Jacdac Multiplayer
Ik heb een community-implementatie van Jacdac-multiplayer met Makecode-arcadeblokken gevonden in deze forumthread
forum.makecode.com/t/new-extension-real-mu…
Ik heb daar het voorbeeldspel (Space Invaders) getest en vond het erg goed werken. Helaas gebruikt de spelmechanica van Cthulhu Combat veel variabelen en het lijkt erop dat de Real Multiplayer-extensies nog geen synchronisatievariabelen ondersteunen - dus ik heb het aan de praat gekregen, de acties van twee spelers worden op verschillende apparaten gesynchroniseerd, maar het leven kan niet niet laten vallen op het apparaat van de tegenstander. Ook is er iets mis met de projectielmechanica, de projectielen lijken niet te verdwijnen na het raken van de muur, waardoor het spel de verbinding verliest nadat er ongeveer 10 projectielen zijn afgevuurd.
Je kunt de multiplayer proberen door het.png-bestand uit onze GitHub-repository te downloaden om het uit te proberen - zodra de Jacdac-blok-API volwassen is, zal ik dit deel van het artikel bijwerken met werkende code.
Stap 6: Laat het Cthulhu-gevecht beginnen
Er zijn nog steeds veel verbeteringen die kunnen worden aangebracht aan ons eenvoudige vechtspel - je kunt bijvoorbeeld ingewikkelder AI-gedrag toevoegen of een extensie gebruiken om knopcombo's en/of animatiereeksen toe te voegen. Veel succes en plezier terwijl je je eigen games programmeert met GameGo en Makecode Arcade.
Als je een verbeterde versie van de game maakt, deel deze dan in de reacties hieronder! Voor meer informatie over GameGo en andere hardware voor makers en STEM-docenten, bezoek onze website, https://tinkergen.com/ en abonneer je op onze nieuwsbrief.
Aanbevolen:
DIY Fitness Tracker Smart Watch met oximeter en hartslag - Modulaire elektronische modules van TinyCircuits - Kleinste arcade: 6 stappen
DIY Fitness Tracker Smart Watch met oximeter en hartslag | Modulaire elektronische modules van TinyCircuits | Kleinste Arcade: Hé, wat is er, jongens! Akarsh hier van CETech.Vandaag hebben we enkele van de sensormodules bij ons die erg handig zijn in ons dagelijks leven, maar in een kleine versie van zichzelf. De sensoren die we vandaag hebben zijn erg klein in vergelijking met de tra
Arcade: 3 stappen (met afbeeldingen)
Arcade: 20 jaar geleden speelde ik Run and Gun @ the Arcade en besloot nu om mijn eigen Arcade te bouwen. ontwerp
Whack a Button Multiplayer: 4 stappen
Whack a Button Multiplayer: Een spel zoals een Whack-a-Mole.Gebruik van LED's en knoppen.Er zijn 2 modi:-Single player-Multiplayerin singleplayer-modus, er zijn 3 niveaus:LEVEL_1: 1 diode voor 1 secondeLEVEL_2: 2 diodes voor 1 secondeLEVEL_3: 2 diodes voor 0,7 secondenEn voor de multip
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Arcade Soundbox: 7 stappen (met afbeeldingen)
Arcade Soundbox: Ik wilde al heel lang een soundbox maken, zoiets als dit soort site, maar in het echte leven. Ik neem aan dat ik niet de eerste ben die zo'n box heeft gemaakt, maar ik heb er nooit een gevonden hier, dus ik besloot het te publiceren! Ik hoop dat je ervan geniet, het is mijn eerste