Taula de continguts:

(Multijugador) Lluitant a GameGo amb Makecode Arcade: 6 passos
(Multijugador) Lluitant a GameGo amb Makecode Arcade: 6 passos

Vídeo: (Multijugador) Lluitant a GameGo amb Makecode Arcade: 6 passos

Vídeo: (Multijugador) Lluitant a GameGo amb Makecode Arcade: 6 passos
Vídeo: 10 minutes silence, where's the microphone??? 2024, Desembre
Anonim

GameGo és una consola portàtil de jocs retro compatible amb Microsoft Makecode desenvolupada per TinkerGen STEM education. Es basa en el xip STM32F401RET6 ARM Cortex M4 i està dissenyat per a educadors STEM o només a persones que els agrada divertir-se creant videojocs retro. Podeu seguir aquest tutorial i provar el joc al simulador Makecode Arcade i després executar-lo a GameGo.

Als articles que vam publicar abans ja intentàvem fer un joc de plataformes i un Battle City Remake. Aquesta vegada he volgut utilitzar la interfície Jacdac per connectar dos GameGo junts i permetre als jugadors lluitar per la supremacia en un joc de combat multijugador. Malauradament, vaig descobrir que la programació de blocs per al multijugador Jacdac es troba en fase beta a partir d’ara i té alguns errors: encara és possible fer jocs més senzills, però no hi ha sort per al meu joc de lluita. Per tant, en aquest instructiu publico tres versions del joc (que vaig anomenar "Cthulhu Combat":))

- versió per a un sol jugador amb un oponent AI simple

- versió multijugador per jugar a la simulació Arcade

- versió multijugador amb Jacdac (incompleta, s'actualitzarà més endavant)

Subministraments

GameGo

Microsoft Makecode Arcade

Pas 1: a les funcions d’inici i configuració rodona

A les funcions d’inici i configuració rodona
A les funcions d’inici i configuració rodona

Descriviré la codificació del joc per a un jugador en detalls i, a continuació, en els passos següents discutirem com fer-ho

a) simulador multijugador

b) Multijugador Jacdac.

Comencem per configurar el mapa de rajoles a la masmorra fosca i crear sprites per al jugador i el bot AI, però, tots dos pertanyen al tipus de jugador. Vam establir l’acceleració de l’eix y a 600, de manera que no volessin després de saltar. També inicialitzem projectils des de bot i reproductor abans de trucar a la funció round_setup. La funció round_setup s'encarrega de la nova preparació de la ronda: la raó per la qual la fem és perquè hi pot haver fins a 3 rondes en total al joc i volem evitar repetir el mateix codi. En aquesta funció, primer comprovem si algun dels jugadors té 2 victòries; si aquesta condició s’avalua com a True, llavors s’ha acabat el joc. Si els dos jugadors tenen menys de dues victòries, augmentem la variable round_num en una i situem els jugadors en els seus llocs inicials, reposem la vida a 100 i declarem el començament d’una nova ronda.

Pas 2: flux de joc

Flux del joc
Flux del joc

En aquest joc, el món mateix és estàtic i el flux del joc està relacionat amb les accions dels jugadors. En quatre blocs definim la majoria de regles del joc, aquests blocs són: botó amunt premut, botó avall premut, botó A premut i botó B premut. Vegem cadascun d’aquests blocs.

premut el botó amunt: lògica de doble salt. Si premem el botó de salt menys de 3 vegades, establirem la velocitat de vy del jugador a - 140 (movent-se cap amunt). El nostre jugador té l'acceleració de VY a 600, de manera que un cop saltem, la nostra velocitat disminuirà ràpidament. Un cop arriba a 0 (sense moure’s per l’eix vertical) tornem a establir jump_count a 0.

premut el botó avall: lògica d'escut d'atac a distància. Si es prem el botó avall, el jugador canvia la seva imatge a "blindat" i estableix la variable blindada a 1.

al botó A premut: feu un projectil. Això s’explica pràcticament per si mateix.

al botó B premut: atac cos a cos, similar a l'escut en la implementació.

Establim les imatges dels sprites dels jugadors i les seves variables d’atac / protecció a 0 cada 500 ms en l’actualització del joc cada bloc.. ms. Podríem haver establert temporitzadors independents per a cada acció, però per simplificar, només farem servir el bucle d’actualització del joc principal.

Les condicions de victòria aquí són bastant fàcils: quan la vida del jugador arriba a 0, l’altre jugador ha guanyat la ronda i, a continuació, guardem el nombre de victòries per jugador en una variable.

Finalment, hi ha dos blocs que controlen el dany de l'atac a distància i el dany de l'atac cos a cos. En cadascun d'ells comprovem si hi ha col·lisió de sprite i si la variable d'escut / atac del jugador atacant s'estableix a 0/1.

Pas 3: Joc 1: Opositor AI

Joc 1: Opositor AI
Joc 1: Opositor AI

Al primer joc, crearem un adversari d’IA relativament senzill per ser el segon jugador. Dins de l’actualització del joc cada 200 ms, primer fem la comprovació de la distància entre el jugador i la IA: si és inferior a 20, configurem la nostra IA en mode cos a cos augmentant la possibilitat d’atac cos a cos a 30 i la possibilitat d’atac a distància a 30. Si la distància és més gran de 20 establim l'oportunitat d'atac cos a cos (no hi ha pinta en l'atac cos a cos, ja que el jugador està massa lluny) i passem a 70. Després de definir les variables per a les possibilitats d'acció, continuem executant aquestes accions amb les possibilitats especificades. Si proveu de jugar contra aquesta IA senzilla, veureu que tot i que el seu comportament és molt senzill, guanyar-hi no és fàcil, ja que sovint en el cas dels oponents controlats per ordinador, guanya sobretot perquè pot fer més accions per segon que un jugador humà.

Si us heu quedat bloquejats mentre codifiqueu, podeu descarregar el codi complet al nostre dipòsit GitHub per a aquest projecte i obrir-lo a Makecode Arcade.

Pas 4: Joc 2: Simulador multijugador

Joc 2: Simulador multijugador
Joc 2: Simulador multijugador
Joc 2: Simulador multijugador
Joc 2: Simulador multijugador

La variant del joc per a dos jugadors en simulació és molt similar a la versió per a un jugador, tret que substituïm el bloc de comportament AI per quatre blocs premuts amb el botó del jugador 2, amb contingut dins d’aquests blocs que reflecteix el contingut dels mateixos blocs per al jugador 1. Teniu una ullada a la captura de pantalla per tenir una millor idea dels canvis que heu de fer. A part d’això, també hem d’afegir moure el jugador 2 amb els botons bloquejats a la funció d’inici i canviar la pantalla final del joc del jugador dos a GUANYAR en lloc de PERDRE.

Pas 5: Joc 3: Multijugador Jacdac

Joc 3: Jacdac Multijugador
Joc 3: Jacdac Multijugador

He trobat una implementació de la comunitat del multijugador Jacdac amb blocs arcade Makecode en aquest fil del fòrum

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

Hi vaig provar el joc d’exemple (Space Invaders) i vaig trobar que funcionava molt bé. Malauradament, la mecànica del joc de Cthulhu Combat utilitza moltes variables i sembla que les extensions multijugador reals encara no admeten variables de sincronització. No deixeu anar el dispositiu dels oponents. També hi ha alguna cosa malament en la mecànica dels projectils; els projectils no semblen desaparèixer després de colpejar la paret, cosa que fa que el joc perdi la connexió després de disparar uns 10 projectils.

Podeu provar el multijugador descarregant el fitxer-p.webp

Pas 6: que comenci el combat de Cthulhu

Que comenci el combat de Cthulhu!
Que comenci el combat de Cthulhu!

Encara hi ha moltes millores que es poden fer en el nostre senzill joc de lluita; per exemple, podeu afegir un comportament de IA més complicat o utilitzar extensions per afegir combinacions de botons i / o seqüències d’animació. Sort i diversió mentre programes els teus propis jocs amb GameGo i Makecode Arcade.

Si feu una versió millorada del joc, compartiu-la als comentaris següents. Per obtenir més informació sobre GameGo i altres elements de maquinari per a fabricants i educadors STEM, visiteu el nostre lloc web, https://tinkergen.com/ i subscriviu-vos al nostre butlletí.

Recomanat: