Documentation / Scripting Events

Los scripts de eventos te permiten controlar de forma dinámica partes del juego basadas en interacciones del jugador. Utilízalos, por ejemplo, para conectar escenas, dar diálogos a personajes o crear otras escenas.

Cuando se selecciona una escena, un actor o un trigger en el World Editor, en el Editor Sidebar existirá un botón Add Event en la zona inferior derecha. Haz clic allí para añadir eventos. Si ya existen eventos serán listados en esta zona siendo el primero en ejecutarse el que más arriba esté.

Cuando añades eventos a actores, estos se ejecutarán cuando el personaje esté junto a ellos y pulses el botón de interacción. Los eventos en triggers se ejecutarán cuando el jugador esté sobre ellos. Un uso común, por ejemplo, es usar un trigger para cambiar la escena como si fueran puertas. Como los eventos de las escenas se ejecutan tan pronto como se carga esa escena, es útil configurar la escena en función de variables o para iniciar una escena cinemática.

Añadir eventos

Después de hacer clic en el botón Add Event, un menú te permitirá seleccionar que evento quieres añadir. Si empiezas a escribir puedes filtrar los resultados o puedes desplazarte con el scroll para encontrar el evento que quieres usar. Haz clic en el evento o pulsa la tecla Enter del teclado para añadir el evento que esté seleccionado.

Copiar / Pegar

¿Ves la flecha apuntando hacia abajo al lado del nombre del evento? Si haces clic en esa flecha puedes seleccionar la opción de copiar. Si después pulsas en la flecha de otro eventos puedes pegarlo antes o después del evento seleccionado.

Novedad en la versión 1.2.0

Puedes pulsar la tecla Alt del teclado para convertir todos los botones de Add Event en Paste Event permitiendo pegar eventos en un flujo agrupados.

Eventos de texto

  • Text: Display Dialogue
    Muestra un cuadro de dialogo distribuido en tres líneas con 18 carácteres por línea (52 caráscteres en total), en la parte inferior de la pantalla. Este será el evento que más se utilice para interactuar con actores en el juego.
    El cuadro con el texto aparecerá desde abajo y desaparecerá hacia abajo.

    • Si utilizas el bóton + puedes crear secuencias de diálogo y solo desaparecerá el cuadro de texto con el último diálogo.
      Novedad en la versión 1.2.0
    • Puedes mostrar el valor de cualquier variable usando el identificador de dicha variable (por ejemplo ‘$L0$’ sería la variable local 0 y `'182$’ sería la variable global 182).
    • Puedes mostrar si quieres un avatar en la parte izquierda del cuadro de diálogo haciendo clic en el botón Add Avatar. Puedes seleccionar cualquier sprite que tenga un único frame (16px x 16px). Usar un avatar reducirá la cantidad de caracteres por línea a 16 en cada línea.
  • Text: Display Multiple Choice
    Muestra una selección de dos opciones, haciendo que una variable específica sea_true_ si se selecciona la primera opción y _false_ si se selecciona la segunda.

  • Text: Display Menu Novedad en la versión 1.2.0
    Muestra un menú con varias opciones, haciendo que una variable específica reciba el valor de la opción seleccionada. Cada elemento tiene una longitud máxima de ‘6’ caracteres.
    Se proporcionan varios diseños. El ‘Menú’ (que se muestra a continuación) sería una sola columna en el lado derecho de la pantalla y el ‘Diálogo’ muestra un cuadro de diálogo de ancho completo con dos columnas. Puedes configurar el botón ‘B’ para cerrar el menú y la variable pasará al valor ‘0’ y también puede hacer que el último elemento del menú también sea ‘0’.

  • Text: Set Animation Speed
    Configura la velocidad con la que aparece y desaparece un cuadro de dialogo y lo rápido que el texto aparecerá dentro.

Eventos sobre escenas

  • Scene: Change Scene
    Es la transición a una nueva escena configurando al jugador en una posición y una dirección específica. Se dibujará una línea que conecta el evento con la escena de destino y un icono como el siguiente . Es posible arrastrar el icono entre escenas para modificar el evento.

  • Scene: Store Current On Stack
    Almacena la escena actual y el estado del jugador en una pila de escenas. Esto te permite regresar a ese punto exacto usando el evento Scene Restore. Se puede usar, por ejemplo, para incluir un script justo antes de un evento Change Scene para abrir un menú, donde esperar a que el jugador interactue y regresar con el evento Restore Previous From Stack.

  • Scene: Restore Previous From Stack
    Es una transición a la última escena almacenada de la pila de escenas, especificando una velocidad.

  • Scene: Restore First From Stack
    Es una transición a la primera escena almacenada de la pila de escenas. Por ejemplo si tienes varios niveles de escenas de menú podrías usar este evento para volver al juego. Este evento vaciará la pila de escenas.

  • Scene: Empty Scene Stack
    Limpia la pila de escenas y ninguna escena podrá ser restaurada.

Eventos sobre variables

Tu juego tiene 512 variables que pueden ser compartidas por todos los scripts. Novedad en la versión 1.2.0 Además cada Actor, Trigger y Scene tiene 4 variables locales únicas.

  • Variable: Set To ‘True’
    Da el valor true a una variable.

  • Variable: Set To ‘False’
    Da el valor false a una variable.

  • Variable: Set To Value
    Da el valor a una variable.

  • Variable: Increment By 1
    Incrementa el valor de una variable en uno, como máximo hasta 255. Si el valor era false se convertirá en 1 (o true), y si antes era true ya se convertirá en 2 y será numérico sucesivo.

  • Variable: Decrement By 1
    Decrementa el valor de una variable en uno, como mínimo hasta 0. Si el valor era true se convertirá en 0 (o false).

  • Variable: Math Functions
    Te permite realizar varias operaciones matemáticas con variables. Nota: Las variables tienen un valor máximo de 255 y mínimo de 0. Si se supera el máximo se quedará en 255 y si cae por debajo de 0 se quedará en 0.

  • Variable: Set Flags Novedad en la versión 1.2.0
    Permite establecer 8 valores individuales verdadero/falso en una sola variable. Si se configura así, cualquier valor anterior de la variable se perderá.

  • Variable: Add Flags Novedad en la versión 1.2.0
    Convierte los flags seleccionados de una variable a verdadero. Los flags no seleccionados mantendrán su valor anterior.

  • Variable: Clear Flags Novedad en la versión 1.2.0
    Convierte los flags seleccionados de una variable a falso. Los flags no seleccionados mantendrán su valor anterior.

  • Variable: Reset All Variables To ‘False’
    Resetea todas las variables de tu proyecto a false.

Eventos de control de flujo

  • If Variable Is ‘True’
    Condicional que ejecuta una parte del script si la variable especificada es verdadera.

  • If Variable Is ‘False’
    Condicional que ejecuta una parte del script si la variable especificada es falsa.

  • If Variable Compare With Value
    Condicional que ejecuta una parte del script si la variable especificada coincide con una comparación con otro valor que puede ser “Igual a”, “Mayor que” o “Menor que” ella.

  • If Variable Compare With Variable
    Condicional que ejecuta una parte del script si la variable especificada coincide con una comparación con otra variable que puede ser “Igual a”, “Mayor que” o “Menor que” ella.

  • If Variable Has Flag Novedad en la versión 1.2.0
    Condicional que ejecuta una parte del script si la variable especificada tiene un flag específico como verdadero.

  • If Joypad Input Pressed
    Condicional que ejecuta una parte del script si se pulsa un botón específico. No funciona con la pulsación del jugador y se debe usar inmediatamente después del evento Joypad Input: Pause Script Until Pressed si se necesita un tiempo de espera. Este evento solo se ejecutará una vez, por lo que si necesitas que se ejecute cada vez que se pulse un botón específico debes usar el evento Joypad Input: Attach Script To Button.

  • If Actor At Position
    Condicional que ejecuta una parte del script si el actor está en una posición específica.

  • If Actor Facing Direction
    Condicional que ejecuta una parte del script si el actor está mirando hacia una dirección específica.

  • If Game Data Saved
    Condicional que ejecuta una parte del script si hay disponible un juego guardado.

  • Switch Novedad en la versión 1.2.0
    Condicional que ejecuta una parte del script dependiendo del valor de una variable entre varias opciones. Primero elegimos cuántas opciones vamos a tener y luego establecemos los valores para comparar y que script ejecutar cuando el valor coincida.

  • Loop Forever
    Ejecuta una parte del script en bucle. Recuerda romper el bucle con los eventos Stop Script o Switch Scene o el juego podría no continuar.

  • Label: Define / Label: Goto Novedad en la versión 1.2.0
    Crea marcadores en tu script usando Label: Define dando nombres a esos marcadores y saltando a ellos con Label: Goto.
    Nota: El nombre debe coincidir exacto para que funcione. ¡Úsalo con cuidado!

  • Event Group
    Permite agrupar eventos bajo una etiqueta y organizarlos en un único bloque.

  • Script: Stop
    Detiene la ejecución de un script.

  • Disable Else Novedad en la versión 1.2.0
    Si no necesitas un bloque Else en las estructuras de control de flujo, ahora puedes deshabilitarlas directamente seleccionando Disable Else del menú desplegable del evento. De la misma manera puedes volver a habilitarlo si lo necesitas más tarde.

Eventos de cámara

  • Camera: Move To
    Mueve la cámara a una posición específica de la escena.

  • Camera: Lock To Player
    Mueve la cámara usando como punto central la posición del player. La cámara se mueve también cuando lo hace el player.

  • Camera: Shake
    Crea un efecto de sacudida de hasta 10 segundos.

Eventos de pantalla

  • Screen: Fade In
    Funde la escena a color blanco.

  • Screen: Fade Out
    Funde la escena desde color blanco a su imagen original.

Eventos de actores

  • Actor: Set Direction
    Establece la dirección donde mira un actor.

  • Actor: Set Direction Using Variable Novedad en la versión 1.2.0
    Establece la dirección donde mira un actor tomando como referencia el valor de una variable.

  • Actor: Set Position
    Establece la posición en la escena de un actor.

  • Actor: Set Position Using Variables
    Establece la posición en la escena de un actor usando como valores dos variables.

  • Actor: Set Relative Position
    Establece la posición en la escena de un actor respecto a su posición actual.

  • Actor: Move To
    Hace que un actor camine hasta una determinada posición. Se ignorarán las colisiones, por lo que se necesitan varios eventos agrupados para que el actor siga un camino específico simulándolas.

  • Actor: Move Relative
    Hace que un actor camine hasta una determinada posición respecto a su posición actual.

  • Actor: Move To Using Variables
    Hace que un actor camine hasta una determinada posición usando como valores dos variables.

  • Actor: Store Position In Variables
    Almacena la posición actual de un actor en dos variables.

  • Actor: Store Direction In Variable Novedad en la versión 1.2.0
    Almacena la dirección donde mira un actor en una variable.

  • Actor: Push Away From Player
    Empuja a un actor en la dirección donde esté mirando el que empuja. Por defecto se mueve una posición, pero se puede activar que se empuje hasta encontrar una colisión.

  • Actor: Emote Bubble
    Muestra una burbuja sobre un actor con los estados emocionales: Shock, Question, Love, Pause, Anger, Sweat, Music y Sleep. Puedes cambiar los gráficos de estas emociones editando los UI Elements de tu juego.

  • Actor: Set Animation Frame
    Establece el frame de un actor.

  • Actor: Set Animation Frame Using Variable Novedad en la versión 1.2.0
    Establece el frame de un actor tomando el valor de una variable.

  • Actor: Set Animation Speed
    Establece la velocidad de animación de un actor.

  • Actor: Set Movement Speed
    Establece la velocidad de movimiento de un actor.

  • Actor: Set Player Sprite Sheet
    Cambia la sprite sheet del player. Los cambios serán permanentes entre las escenas, así que debes asegurarte de volver a cambiarla.

  • Actor: Collisions Disable Novedad en la versión 1.2.0
    Evita que las colisiones afecten a un actor y el jugador podrá atravesarlo. Si se selecciona al jugador, es él que que podrá atravesar a todos los actores.
    Nota: Aunque las colisiones estén deshabilitadas todavía se podrá interactuar con los actores.

  • Actor: Collisions Enable Novedad en la versión 1.2.0
    Habilita las colisiones del actor seleccionado.

  • Actor: Invoke Script
    Ejecuta un script en otro actor de la escena como si el player hubiera interactuado con él.

  • Actor: Hide
    Oculta a un actor. Los actores ocultos no causarán colisión ni se podrá interactuar con ellos. Por ejemplo, puedes ocultar al player si quieres hacer una escena de menú o de título.

  • Actor: Show
    Muestra a un actor oculto.

Eventos de sprite

  • Sprites: Hide All
    Oculta todos los sprites de una escena. Puede ser útil, por ejemplo, para ocultar lo que no haga falta si haces una escena intermedia o una cutscene.

  • Sprites: Show All
    Muestra todos los sprites de una escena previamente ocultos.

Eventos de superposición

  • Overlay: Show
    Muestra una ventana blanca o negra por encima de la pantalla del juego actual. Puede usarse para ocultar y luego revelar partes del fondo de la escena, por ejemplo, en la pantalla de título.

  • Overlay: Hide
    Oculta una ventana superpuesta.

  • Overlay: Move To
    Mueve una ventana superpuesta a una nueva posición de la pantalla.

Eventos de pulsación

  • Joypad Input: Pause Script Until Pressed
    Detiene el script hasta que se pulse un botón.

  • Joypad Input: Attach Script To Button
    Asocia un script cuando se pulsa un botón. Si usas este evento con las fleches de dirección o el botón A, se sobrescribirán las acciones por defecto del juego.

  • Joypad Input: Remove Attached Script
    Elimina un script asociado a un botón restaurando su comportamiento por defecto.

Eventos de música

  • Music: Play Track
    Reproduce un fichero de sonido, pudiendo configurar que se repita cuando termine.

  • Music: Stop
    Detiene cualquier sonido que esté sonando.

Eventos de sonido

  • Sound: Play Effect Novedad en la versión 1.2.0
    Reproduce un efecto de sonido, que puede ser un pitido o un tono con una frecuencia determinada o un choque de timbales. Usando Custom Events puedes combinar varios efectos para hacer musiquillas.

Eventos de control de tiempo

  • Wait
    Detiene el script hasta un máximo de 10 segundos.

  • Timer: Set Timer Script Novedad en la versión 1.2.0
    Ejecuta un script repetidamente después de un intervalo de tiempo. El script se mantendrá en segundo plano hasta que se llame al evento Disable Timer Script o se use el evento Change Scene.

  • Timer: Restart Timer Novedad en la versión 1.2.0
    Resetea la cuenta atrás a 0. El script volverá a repetirse las veces que estaba configurado de forma inicial.

  • Timer: Disable Timer Script Novedad en la versión 1.2.0
    Deshabilita el script para que no se pueda volver a ejecutar.

Eventos de datos

  • Game Data: Save
    Guarda los datos del juego.

  • Game Data: Load
    Carga los datos del juego guardados previamente.

  • Game Data: Clear
    Elimina cualquier dato del juego guardado previamente.

Eventos de miscelanea

  • Comment Novedad en la versión 1.2.0
    No tiene funcionalidad en el juego pero te permite dejar comentarios en los scripts. El texto que escribas se coloca automáticamente en el título del evento para que puedas contraer el comentario y seguir leyendo su contenido.
    También puedes usar el menú desplegable de eventos para deshabilitar y volver a habilitar cualquier evento. Los eventos deshabilitados se omitirán cuando se ejecute en el juego.