Me pareció asombroso como utilizó el profesor a coroutine para encontrar los nuevos matches
Introducción
Bienvenida y presentación del proyecto
Instalación de los SDKs
Empezando Nuestro Proyecto
Inicializar el proyecto
Control de versiones
Importando nuestros assets
TeorÃa de Gameplay
Como resolver problemas de gameplay
Match 3 simplificado
Mecánica Principal
Creando la cuadrÃcula
Ajustando la cámara
Sistema de coordenadas para instanciar las piezas
Instanciando las piezas en la cuadrÃcula
Moviendo las piezas
Intercambiando las piezas de lugar
Permitiendo solo ciertos tipos de movimientos
Creando las funciones del match 3
Usando el match 3 en nuestro juego
Eliminando los matches por defecto
Colapsando las piezas
Match 3 combo
Rellenando las piezas
Mejorando la animación de las piezas
Publicacion
Momento del primer build para Android
Momento del primer build para iOS
Diseño del juego
Hablemos de diseño
Agregando un sistema de puntos
Sistema de tiempo
Interfaz para el sistema de tiempo
Creando sistema de UI
Pantalla de game over
Agregando funcionalidad a la pantalla de game over
Reiniciando el juego
Agregando audio
Terminando el juego
Conclusiones
Conclusiones del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Implementar combos eficientes en un juego tipo Max 3 puede marcar una gran diferencia en la experiencia del usuario, ya que ofrece una jugabilidad más estratégica y atractiva. Al detectar automáticamente los combos que se forman una vez que las piezas colapsan, el juego se vuelve más dinámico y emocionante.
El problema radica en que, cuando las piezas se mueven y se forman nuevos matches (combinaciones de tres), el juego no los reconoce automáticamente. En un juego de Max 3 tradicional, estos combos deben ser detectados y ejecutados. Resolver esto implica crear una funcionalidad que revise cada vez que hay un match inicial, si se han generado nuevos matches conforme las piezas colapsan.
Para implementar esta funcionalidad, utilizaremos el poder de las corrutinas en Unity. Esto nos permitirá ejecutar acciones de manera secuencial y en intervalos de tiempo especÃficos, manteniendo una jugabilidad fluida.
Función clearPieces modificada: Dentro de la función clearPieces
, después de colapsar las columnas y limpiar piezas, se debe llamar a una nueva función denominada findMatchRecursively
. Esta función se encargará de identificar y continuar revisando los matches.
Implementación de findMatchRecursively:
IEnumerator FindMatchRecursively(List<Piece> collapsedPieces)
{
// Esperar un segundo para que el jugador vea los cambios
yield return new WaitForSeconds(1);
// Listar potenciales nuevos matches
List<Piece> newMatches = new List<Piece>();
foreach (Piece piece in collapsedPieces)
{
var matches = GetMatchedByPiece(piece.GetCoordinates(), 3);
if (matches != null)
{
newMatches = newMatches.Union(matches).ToList();
ClearPieces(matches);
}
}
// Si hay nuevos matches
if (newMatches.Count > 0)
{
List<Piece> newCollapsedPieces = CollapseColumns(GetColumns(newMatches), 0.3f);
StartCoroutine(FindMatchRecursively(newCollapsedPieces));
}
yield return null;
}
Detección y ejecución de matches: Ahora, tras colapsar las piezas, se espera un segundo antes de comenzar a verificar y eliminar los nuevos matches detectados con la función GetMatchedByPiece
.
Repetir hasta que no haya más matches: Se repite la revisión y ejecución de matches en la cuadrÃcula mientras continúen generándose nuevas combinaciones, asegurando que todos los posibles combos se detecten durante el turno del jugador.
Una vez implementado el código, es crucial testear el juego dentro de Unity:
Al ponerlo a prueba, deberÃamos ver claramente cómo, al realizar un match, las piezas continúan formando y eliminando matches adicionales sin intervención del jugador, logrando asà una jugabilidad que parece espontánea y encantadora para el jugador. ¿Qué otros juegos podrÃas mejorar utilizando las corrutinas?
¡Comparte tus ideas y continúa explorando las posibilidades infinitas en el desarrollo de videojuegos!
Aportes 1
Preguntas 1
Me pareció asombroso como utilizó el profesor a coroutine para encontrar los nuevos matches
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?