Tabla de contenido:

(Multijugador) Lucha en GameGo con Makecode Arcade: 6 pasos
(Multijugador) Lucha en GameGo con Makecode Arcade: 6 pasos

Video: (Multijugador) Lucha en GameGo con Makecode Arcade: 6 pasos

Video: (Multijugador) Lucha en GameGo con Makecode Arcade: 6 pasos
Video: juego de niveles arcade 2024, Noviembre
Anonim

GameGo es una consola portátil de juegos retro compatible con Microsoft Makecode desarrollada por TinkerGen STEM education. Se basa en el chip STM32F401RET6 ARM Cortex M4 y está hecho para educadores STEM o simplemente para personas a las que les gusta divertirse creando videojuegos retro. Puede seguir este tutorial y probar el juego en el simulador Makecode Arcade y luego ejecutarlo en GameGo.

En los artículos que publicamos antes, ya probamos nuestra habilidad para hacer un juego de plataformas y un Battle City Remake. Esta vez quería usar la interfaz Jacdac para conectar dos GameGo juntos y permitir a los jugadores luchar por la supremacía en un juego de lucha multijugador. Desafortunadamente, descubrí que la programación de bloques para el multijugador de Jacdac está en la etapa beta a partir de ahora y tiene algunos errores; todavía es posible hacer juegos más simples, pero no tuve suerte para mi juego de lucha. Entonces, en este instructivo publico tres versiones del juego (que llamé "Cthulhu Combat":))

- versión para un jugador con oponente AI simple

- versión multijugador para jugar en simulación Arcade

- versión multijugador con Jacdac (incompleta, se actualizará más adelante)

Suministros

GameGo

Microsoft Makecode Arcade

Paso 1: en las funciones Start y Round_setup

Funciones de On Start y Round_setup
Funciones de On Start y Round_setup

Describiré la codificación del juego para un jugador en detalle y luego, en los siguientes pasos, discutiremos cómo convertirlo en

a) simulador multijugador

b) Multijugador Jacdac.

Comenzamos configurando el mapa de mosaicos en mazmorra oscura y creando sprites para el jugador y el bot de IA; sin embargo, ambos pertenecerán al tipo de jugador. Establecimos su aceleración en el eje y en 600, para que no volaran después de saltar. También inicializamos proyectiles desde el bot y el jugador antes de llamar a la función round_setup. La función round_setup se encarga de la preparación de la nueva ronda por nosotros; la razón por la que la convertimos en una función es porque puede haber hasta 3 rondas en total en el juego y queremos evitar la repetición del mismo código. En esa función, primero verificamos si alguno de los jugadores tiene 2 victorias; si esta condición se evalúa como Verdadera, entonces se termina el juego. Si ambos jugadores tienen menos de dos victorias, incrementamos la variable round_num en uno y colocamos a los jugadores en sus posiciones iniciales, reponemos sus vidas a 100 y declaramos el comienzo de una nueva ronda.

Paso 2: Flujo del juego

Flujo del juego
Flujo del juego

En este juego, el mundo en sí es estático y el flujo del juego está ligado a las acciones de los jugadores. En cuatro bloques definimos la mayoría de las reglas del juego, estos bloques son: en el botón arriba presionado, en el botón abajo presionado, en el botón A presionado y en el botón B presionado. Echemos un vistazo a cada uno de estos bloques.

botón de encendido hacia arriba presionado - lógica de doble salto. Si presionamos el botón de salto menos de 3 veces, establecemos la velocidad vy del jugador en - 140 (moviéndose hacia arriba). Nuestro jugador tiene una aceleración de vy establecida en 600, por lo que una vez que saltemos, nuestra velocidad disminuirá rápidamente. Una vez que llega a 0 (sin moverse en el eje vertical) establecemos jump_count en 0 nuevamente.

en el botón abajo presionado - lógica de escudo de ataque a distancia. Si se presiona el botón abajo, el jugador cambia su imagen a "protegido" y establece la variable protegido en 1.

en el botón A presionado - dispara un proyectil. Ese se explica por sí mismo.

al presionar el botón B - ataque cuerpo a cuerpo, similar al escudo en la implementación.

Configuramos las imágenes de los sprites de los jugadores y sus variables blindadas / atacantes en 0 cada 500 ms en la actualización del juego cada bloque de … ms. Podríamos haber configurado temporizadores independientes para cada acción, pero en aras de la simplicidad, solo usaremos el ciclo principal de actualización del juego.

Las condiciones para ganar aquí son bastante fáciles: cuando la vida del jugador llega a 0, el otro jugador ha ganado la ronda, luego almacenamos el número de victorias por jugador en una variable.

Finalmente, hay dos bloques que controlan el daño de ataque a distancia y el daño de ataque cuerpo a cuerpo. En cada uno de ellos verificamos la colisión de sprites y si la variable de escudo / ataque para el jugador atacante está configurada en 0/1.

Paso 3: Juego 1: Oponente AI

Juego 1: Oponente AI
Juego 1: Oponente AI

En el primer juego crearemos un oponente de IA relativamente simple para que sea el segundo jugador. Dentro de la actualización del juego cada 200 ms, primero hacemos la verificación de distancia entre el jugador y la IA; si es menor a 20, configuramos nuestra IA en modo cuerpo a cuerpo aumentando su probabilidad de ataque cuerpo a cuerpo a 30 y la probabilidad de ataque a distancia a 30. Si la distancia es mayor que 20, establecemos la probabilidad de ataque cuerpo a cuerpo en cero (no hay pinta en el ataque cuerpo a cuerpo, ya que el jugador está demasiado lejos) y la probabilidad de mover a 70. Después de establecer las variables para las probabilidades de acción, continuamos ejecutando estas acciones con las probabilidades especificadas. Si intentas jugar contra esta simple IA tú mismo, verás que a pesar de que su comportamiento es muy simple, ganar contra ella no es fácil, ya que a menudo, en el caso de oponentes controlados por computadora, gana principalmente porque puede hacer más acciones por segundo que un jugador humano.

Si te quedaste atascado mientras codificabas, puedes descargar el código completo en nuestro repositorio de GitHub para este proyecto y abrirlo en Makecode Arcade.

Paso 4: Juego 2: Simulador multijugador

Juego 2: Simulador multijugador
Juego 2: Simulador multijugador
Juego 2: Simulador multijugador
Juego 2: Simulador multijugador

La variante del juego para dos jugadores en la simulación es muy similar a la versión para un solo jugador, excepto que reemplazamos el bloque de comportamiento de la IA con cuatro bloques presionados con el botón del jugador 2, con contenido dentro de estos bloques que refleja el contenido de los mismos bloques para el jugador 1. Tiene Eche un vistazo a la captura de pantalla para tener una mejor idea de los cambios que debe realizar. Aparte de eso, también necesitamos agregar mover jugador 2 con los botones bloqueados en la función de inicio y cambiar la pantalla final para el juego del jugador dos a GANAR en lugar de PERDER.

Paso 5: Juego 3: Jacdac Multiplayer

Juego 3: Jacdac Multijugador
Juego 3: Jacdac Multijugador

Encontré una implementación comunitaria del multijugador Jacdac con bloques arcade Makecode en este hilo del foro

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

Probé el juego de ejemplo allí (Space Invaders) y descubrí que funcionaba muy bien. Desafortunadamente, la mecánica del juego de Cthulhu Combat usa muchas variables y parece que las extensiones Real Multiplayer aún no admiten la sincronización de variables, así que lo hice funcionar, las acciones de los dos jugadores se sincronizan en todos los dispositivos, pero la vida no lo hace. no caiga en el dispositivo de los oponentes. También hay algo mal con la mecánica de los proyectiles, los proyectiles no parecen desaparecer después de golpear la pared, lo que hace que el juego pierda la conexión después de que se hayan disparado unos 10 proyectiles.

Puedes probar el modo multijugador descargando el archivo-p.webp

Paso 6: ¡Que comience el combate de Cthulhu

¡Que comience el combate de Cthulhu!
¡Que comience el combate de Cthulhu!

Todavía hay muchas mejoras que se pueden hacer en nuestro sencillo juego de lucha; por ejemplo, puede agregar un comportamiento de IA más complicado o usar la extensión para agregar combinaciones de botones y / o secuencias de animación. Buena suerte y diviértete mientras programas tus propios juegos con GameGo y Makecode Arcade.

Si creas una versión mejorada del juego, ¡compártela en los comentarios a continuación! Para obtener más información sobre GameGo y otro hardware para fabricantes y educadores STEM, visite nuestro sitio web, https://tinkergen.com/ y suscríbase a nuestro boletín.

Recomendado: