jairogarcíarincón
29/12/2022
Contenidos
- Casos de éxito
- El desarrollo de videojuegos
- Recursos
- Configuración del proyecto
- Fondo
- Jugador
- Movimiento
- Resto de animaciones
- Eventos
- Colisiones
- Interfaz de usuario
- Diálogos
- Pasillo
- Coleccionables
- Lógica del juego I: Variables e Inicio
- Lógica del juego II: Interfaz, Movimiento y Teclas
- Lógica del juego III: Diálogos
- Lógica del juego IV: Reinicio y Fin de Juego
- Exportar el juego
- Conclusiones
Introducción
Una vez establecida toda la lógica relativa a la configuración e interfaz del juego, vamos a crear en este apartado la lógica relativa a los diálogos, separándolos también por grupos de eventos para una mayor organización.
Bienvenida
El primero de ellos será el grupo de eventos llamado Bienvenida, que consistirá en preguntarle su nombre para guardarlo en la variable Usuario y poder mostrarla en el texto correspondiente.
Para ello, recogeremos el valor de la caja de entrada de texto UI_Input cuando el jugador haga clic en Aceptar y, si no está vacío:
- Cambiaremos el texto de la caja UI_Nombre_Usuario
- Asignaremos el valor introducido a la variable Usuario
- Ocultaremos UI_Input
- Ocultaremos UI_Boton_Aceptar
- Mostraremos el LibroRojo (el primero)
- Escribiremos en UI_Texto las instrucciones, que se adjuntan a continuación.
"Hola [b]" + GlobalVariableString(Usuario) + "[/b].
Busca los 4 libros repartidos por la biblioteca en menos de [b]3 minutos[/b]. Con cada uno, te haré una pregunta. Si la aciertas te daré una poción, pero si fallas, perderás una vida. Para comenzar, busca el [b]libro rojo[/b].
[i]Ayuda: Pulsa [b]Z[/b] para ver el nivel completo. Pulsa [b]R[/b] para ver el texto sin animación de escritura. Pulsa [b]Esc[/b] para mostrar u ocultar los diálogos.[/i]"
NOTA: Los caracteres entre corchetes son parte del lenguaje de marcado que nos permite formatear el texto, de modo que, por ejemplo, la b es negrita y la i es cursiva.
Observa que, si el usuario no escribe su nombre, se le vuelve a pedir.
Para finalizar este diálogo y antes de que el jugador pueda empezar a buscar el libro, debemos permitir que se mueva, ya que inicialmente no le dejamos hacerlo.
Esto lo conseguimos utilizando la condición When UI_Texto finished auto typing, de tal manera que, mientras no haya terminado (invirtiendo la condición) el jugador no puede moverse, pero cuando haya terminado ya se puede mover.
Fíjate que además en este último caso hay varias condiciones más, necesarias para que luego, en los sucesivos diálogos, no se produzcan comportamientos extraños que hagan que el jugador se pueda mover cuando no debe.
En este punto, ya deberías poder iniciar el juego, realizar la acción de bienvenida y buscar el libro rojo. Si no llegas a este punto, es mejor no continuar y repasar las acciones anteriores.
Libro Rojo
Cada vez que el jugador recoja (colisione con) un libro:
- Reproducimos un sonido
- Eliminamos el libro
- Impedimos que el jugador se mueva
- Esperamos una respuesta
- Cambiamos a la pregunta correspondiente
- Mostramos la capa de diálogos (por si el jugador la había ocultado con la tecla Esc)
- Escribimos la pregunta
- Escribimos las posibles respuestas en los botones
- Mostramos los botones (cuando haya terminado de escribirse la respuesta)
- Si responde correctamente (Botón C en este caso), le damos la poción, le mostramos el siguiente libro y continua el juego
- Si se equivoca, le quitamos una vida y vuelve a intentarlo.
- Si pierde todas las vidas, se acaba el juego, pero de eso nos encargaremos más tarde.
El texto de la pregunta para que no tengas que escribirlo es:
"Muy bien [b]" + GlobalVariableString(Usuario) + "[/b].
Para obtener la [b]poción roja[/b], resuelve la siguiente ecuación: [b]3x - 14 = 22[/b]. ¿Cuánto vale [b]x[/b]?"
Igualmente, el texto de la respuesta correcta es:
"Muy bien [b]" + GlobalVariableString(Usuario) + "[/b].
Has conseguido la [b]poción roja[/b]. Busca ahora el [b]libro azul[/b]."
Toda esta lógica la puedes ver en la siguiente captura:
IMPORTANTE: Puede que las rutas o los nombres de los sonidos difieran un poco de las de tu proyecto.
Libro Azul
El libro azul es similar al rojo, aunque en este caso la respuesta correcta es la B y los textos de la pregunta y la solución correcta son:
"Genial [b]" + GlobalVariableString(Usuario) + "[/b].
Para obtener la [b]poción azul[/b], responde a la siguiente pregunta. ¿Quién escribió 'El Quijote'?"
"Muy bien [b]" + GlobalVariableString(Usuario) + "[/b].
Has conseguido también la [b]poción azul[/b]. Busca ahora el [b]libro verde[/b]."
Libro Verde
El libro verde también es similar al rojo, aunque en este caso la respuesta correcta es la A y los textos de la pregunta y la solución correcta son:
"You're almost finished [b]" + GlobalVariableString(Usuario) + "[/b].
To get the [b]green potion[/b], please answer the following question. ¿Which is the past participle of the verb fly?"
"Great [b]" + GlobalVariableString(Usuario) + "[/b]!.
You've achieved the [b]green potion[/b] and there is only one left. Find now the [b]brown book[/b]."
Libro Marrón
El libro marrón difiere un poco de los anteriores, puesto que al conseguir la última poción finaliza el juego. En cualquier caso, al principio es similar, siendo la respuesta correcta la D y los textos de la pregunta y la solución correcta:
"Has encontrado todos los libros, [b]" + GlobalVariableString(Usuario) + "[/b].
Para conseguir la [b]poción amarilla[/b] y completar el juego, responde a la última pregunta. ¿Quién formuló la Ley de la Gravitación Universal?"
"¡¡¡ENHORABUENA [b]" + GlobalVariableString(Usuario) + "[/b]!!!.
Has completado el juego en [b]" + GlobalVariableString(Tiempo) + "[/b].
Pulsa en el botón para volver a jugar."
Como verás a continuación, en la lógica del libro marrón, al responder correctamente a la pregunta y debido a que finaliza el juego, se han incorporado varias acciones nuevas:
- La variable JuegoCompletado ahora es verdadero
- Se ha mostrado el botón UI_BotonReiniciar
- Se ha reproducido un sonido diferente, el del archivo finGanar.mp3
- Se ha desvanecido la música de fondo
En el siguiente apartado y último de la lógica del juego, incluiremos las opciones de Reinicio y fin de juego.
Publicado el 05 de Febrero de 2025
gdeveloprpg2ddigitalizaciónharry potter