Reiniciando el juego
Clase 31 de 34 • Curso de Desarrollo de Videojuegos Móviles con Unity
Contenido del curso
- 8

Creando la cuadrícula
08:00 - 9

Ajustando la cámara
13:06 - 10

Sistema de coordenadas para instanciar las piezas
05:16 - 11

Instanciando las piezas en la cuadrícula
13:39 - 12

Moviendo las piezas
07:53 - 13

Intercambiando las piezas de lugar
14:45 - 14

Permitiendo solo ciertos tipos de movimientos
05:38 - 15

Creando las funciones del match 3
16:13 - 16

Usando el match 3 en nuestro juego
10:21 - 17

Eliminando los matches por defecto
12:31 - 18

Colapsando las piezas
17:31 - 19

Match 3 combo
07:47 - 20

Rellenando las piezas
07:36 - 21

Mejorando la animación de las piezas
07:37
- 24

Hablemos de diseño
01:34 - 25

Agregando un sistema de puntos
16:45 - 26

Sistema de tiempo
07:05 - 27

Interfaz para el sistema de tiempo
09:26 - 28

Creando sistema de UI
06:26 - 29

Pantalla de game over
14:37 - 30

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

Reiniciando el juego
08:40 - 32

Agregando audio
10:05 - 33

Terminando el juego
07:39
¿Cómo reiniciar el estado de juego en Unity?
Reiniciar el estado de juego es esencial para asegurar una experiencia fluida a los jugadores, especialmente si planeas ofrecer partidas consecutivas. Este proceso garantiza que, al tomar decisiones como "jugar de nuevo", todos los elementos de la partida previa, como los puntos obtenidos y las piezas en el tablero, se reinicien correctamente. Aquí profundizaremos en cómo lograrlo dentro del entorno de desarrollo de Unity.
¿Cómo destruir y recrear el tablero de juego?
Para garantizar que el tablero de juego se destruya y recree con cada nueva partida, debes implementar una lógica específica en la clase del tablero.
-
Condiciones de Creación de Piezas: Agrega una condición para que las piezas solo se creen cuando el estado del juego esté configurado a "in game". Esta lógica puede implementarse en la corrutina
SetOfPieces:if (gameManager.instance.gameState == gameManager.gameState.IN_GAME) { StartCoroutine(SetOfPieces()); } -
Suscripción a la Actualización del Estado del Juego: Es fundamental suscribirse al evento
onGameStateUpdatedpara saber cuándo cambiar el estado del juego. Esto te permitirá realizar acciones específicas, como destruir piezas cuando el estado del juego cambie a "Game Over". -
Función para Destruir Piezas: Cuando el juego entra en el estado de "Game Over", se debe llamar a una función que elimine todas las piezas actuales:
void ClearOutPieces() { for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { ClearPieceAt(x, y); } } }Esta función utiliza dos bucles
forpara recorrer las coordenadas del tablero y eliminar cada pieza.
¿Cómo reiniciar el contador de puntos?
Para reiniciar el contador de puntos al iniciar una nueva partida, es crucial modificar la clase PointsUI para que reaccione al cambio de estado del juego.
-
Suscripción al evento de Actualización del Estado del Juego: Necesitas suscribirte a
gameStateUpdatedpara detectar cuando el juego llega a "Game Over" y resetear el contador de puntos:AddListener(GameStateUpdated); -
Implementación de la Función de Reinicio: Al agregar la función
GameStateUpdated, verifica si el nuevo estado es "Game Over". Si es así, reinicia los puntos visibles a cero y actualiza la etiqueta:void GameStateUpdated(GameState newState) { if (newState == GameManager.GameState.GAME_OVER) { displayedPoints = 0; pointsLabel.text = displayedPoints.ToString(); } } -
Desuscribirse en
OnDestroy: Es una buena práctica eliminar las suscripciones para evitar posibles errores cuando el objeto sea destruido:RemoveListener(GameStateUpdated);
¿Qué pasos seguir para probar las implementaciones?
Una vez realizadas las modificaciones anteriores, es recomendable probar los cambios para asegurarse de que todo funcione correctamente en Unity.
-
Cambiar Estados Manualmente: Durante las pruebas, puedes configurar manualmente el estado del juego a
IDLEpara verificar que el tablero no se inicializa antes de tiempo. -
Revisión Visual: Asegúrate de que, al cambiar al estado
IN_GAME, el tablero se organice correctamente y, al llegar aGame Over, tanto el tablero como los puntos se reinicien apropiadamente al jugar de nuevo. -
Feedback y Mejoras: Invita a otros desarrolladores o testers a probar el juego y proporcionar retroalimentación que pueda ayudar a mejorar el flujo de reinicio.
Este enfoque para reiniciar un juego en Unity asegura que cada nueva partida sea una experiencia fresca y permita a los jugadores disfrutar sin problemas de los elementos activos o puntajes acumulados de partidas anteriores. Implementar esto robustamente genera una experiencia de usuario más pulida y profesional. ¡Sigue practicando y refinando tus habilidades en Unity!