Contenido del curso
Empezando Nuestro Proyecto
Teoría de Gameplay
Mecánica Principal
- 8

Crea la cuadrícula del juego en Unity
07:59 min - 9

Cámara ortográfica automática en Unity
13:06 min - 10

Sistema de coordenadas para piezas en Unity
05:16 min - 11

Piezas aleatorias en la cuadrícula Unity
13:39 min - 12

Mover piezas en Unity con DOTween
07:52 min - 13

Intercambio de piezas con arrays 2D en Unity
14:45 min - 14

Permitiendo solo ciertos tipos de movimientos
Viendo ahora - 15

Lógica de Match 3 en cuatro direcciones
16:11 min - 16

Detectar Match 3 con corrutinas en Unity
10:21 min - 17

Evitar matches por defecto en Match 3
12:29 min - 18

Colapso de columnas en un Match 3
17:31 min - 19

Combos automáticos en Match 3 con corrutinas
07:46 min - 20

Corrutinas para animar piezas en Match 3
07:35 min - 21

Mejorando la animación de las piezas
07:37 min
Publicacion
Diseño del juego
- 24

Hablemos de diseño
01:34 min - 25

Agregando un sistema de puntos
16:45 min - 26

Sistema de tiempo
07:05 min - 27

Interfaz para el sistema de tiempo
09:26 min - 28

Creando sistema de UI
06:26 min - 29

Sistema de UI reactivo al estado del juego
14:36 min - 30

Agregando funcionalidad a la pantalla de game over
09:16 min - 31

Cómo reiniciar board y puntos en Unity
08:39 min - 32

Agregando audio
10:05 min - 33

Terminando el juego
07:38 min
Conclusiones
Permitiendo solo ciertos tipos de movimientos
Resumen
¿Cómo podemos controlar el movimiento de las piezas en el tablero?
Para mejorar nuestro proyecto de juego, es esencial asegurarnos de que las piezas solo se muevan a espacios permitidos, es decir, a posiciones adyacentes y compatibles. Esto ayudará a mantener la lógica del juego y prevenir movimientos ilógicos que puedan romper las reglas establecidas. Para lograr esto, primero debemos entender lo que significa un "espacio permitido" tanto en el eje horizontal como en el vertical.
¿Cuál es la lógica detrás de los espacios permitidos?
La idea de "espacios permitidos" radica en moverse una sola unidad hacia un lado en el mismo eje o en cambiar una sola unidad de coordenadas, manteniendo constante la otra. Aquí profundizamos en cómo funciona:
-
Eje Horizontal:
- Las piezas deben compartir la misma coordenada en Y.
- La diferencia en la coordenada X debería ser exactamente 1.
-
Eje Vertical:
- Las piezas deben compartir la misma coordenada en X.
- La diferencia en la coordenada Y debería ser exactamente 1.
En suma, estos criterios aseguran que las piezas solo se muevan a espacios directamente adyacentes, ya sea horizontal o verticalmente.
¿Cómo implementamos esto en código?
Para poner en práctica esta lógica, crearemos una función que verifique si dos espacios están suficientemente cerca como para permitir un movimiento:
public bool isClosedTo(Tile start, Tile end) { // Verificación en el eje X if (Math.Abs(start.x - end.x) == 1 && start.y == end.y) { return true; } // Verificación en el eje Y if (Math.Abs(start.y - end.y) == 1 && start.x == end.x) { return true; } // Si no cumple ninguna condición, retorno falso return false; }
Este fragmento de código introduce una función isClosedTo que evalúa si dos espacios (representados por Tile) son adyacentes. Utilizamos la función Math.Abs para calcular la diferencia absoluta entre las coordenadas y luego validamos las condiciones mencionadas anteriormente.
¿Cómo integramos la función en nuestro juego?
Una vez creada la función isClosedTo, es crucial integrarla con el resto de la lógica que maneja los movimientos del juego. Así, verificaremos que las piezas no solo tengan puntos de inicio y fin válidos, sino que también estén adecuadamente cerca.
public void TileUp(Tile startTile, Tile endTile) { if (startTile != null && endTile != null && isClosedTo(startTile, endTile)) { // Código para mover las piezas } }
Al añadir este chequeo adicional, aseguramos que el movimiento solo se realice cuando los espacios son adyacentes. El resultado es una experiencia de juego más precisa y acorde a las reglas establecidas.
Ahora, ve a Unity y comprueba el funcionamiento. Reinicia y observa cómo las piezas se mueven únicamente a espacios vecinos, reforzando así la lógica y jugabilidad deseadas. ¡Todo un avance para nuestra mecánica del juego!