jairogarcíarincón

Lógica del juego III: Diálogos


185

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.

62 Bienvenida 1
Fuente: Elaboración propia


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.

63 Bienvenida 2
Fuente: Elaboración propia


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:

  1. Reproducimos un sonido
  2. Eliminamos el libro
  3. Impedimos que el jugador se mueva
  4. Esperamos una respuesta
  5. Cambiamos a la pregunta correspondiente
  6. Mostramos la capa de diálogos (por si el jugador la había ocultado con la tecla Esc)
  7. Escribimos la pregunta
  8. Escribimos las posibles respuestas en los botones
  9. 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:

64 Libro Rojo
Fuente: Elaboración propia


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]."


65 Libro Azul
Fuente: Elaboración propia



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]."


66 Libro Verde
Fuente: Elaboración propia



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:

  1. La variable JuegoCompletado ahora es verdadero
  2. Se ha mostrado el botón UI_BotonReiniciar
  3. Se ha reproducido un sonido diferente, el del archivo finGanar.mp3
  4. Se ha desvanecido la música de fondo


67 Libro Marrón
Fuente: Elaboración propia



En el siguiente apartado y último de la lógica del juego, incluiremos las opciones de Reinicio y fin de juego.


Publicado el 03 de Febrero de 2023

gdeveloprpg2ddigitalizaciónharry potter