Modo de juego y espera en Spark AR

Resumen

Diseñar un juego en realidad aumentada exige separar dos estados claros: cuándo el usuario está jugando y cuándo está esperando para empezar. En Spark AR puedes lograrlo con un switch que controle el modo de juego, active los contadores y muestre instrucciones al usuario sin saturar la pantalla.

Esta guía te muestra cómo estructurar esa lógica con nodos visuales, pulsos y senders, pensada para creadores que ya tienen un prototipo y quieren pulir la experiencia.

¿Cómo activar el inicio del juego con un texto interactivo?

El primer paso es darle al usuario una señal visible para empezar. Sobre el canvas se agrega un texto 2D llamado Jugar, centrado, que ocupe toda la pantalla con un tamaño aproximado de 100 puntos en color blanco [02:00].

A ese texto le conectas una interacción de tipo object tap. Cuando el usuario toca el texto, se dispara un sender llamado Inicio, que funciona como un pulso. Ese pulso es el que avisa al resto del patch que la partida arrancó.

¿Qué es un sender en Spark AR? Es un nodo que emite un aviso (pulso o valor) para que otros nodos lo reciban sin necesidad de cables visibles. Sirve para mantener el patch ordenado.

¿Cómo unir inicio y fin con un switch de modo de juego?

Aquí está el corazón de la lógica. Un switch recibe dos pulsos: el de Inicio lo enciende y el de fin (cuando se acaban las vidas) lo apaga [04:30]. Ese switch representa un booleano: encendido equivale a jugar, apagado equivale a esperar.

Ese estado se transmite con otro sender llamado modo de juego, disponible para cualquier nodo que necesite saber si la partida está activa.

Con eso ya puedes conectar varias cosas:

  • El pulso Inicio se conecta a un jump en los contadores para resetear puntos a cero y vidas a cinco.
  • El switch modo de juego se conecta a la visibilidad de los objetos del juego.
  • El mismo switch sirve como condición para que los puntos solo se sumen durante la partida.

¿Cómo agrupar objetos para mostrarlos solo durante la partida?

Cuando hay puntero, fantasmas y textos al mismo tiempo, la pantalla se vuelve ruidosa. La solución es usar un Null Object llamado objetos de juego que actúe como carpeta y meter ahí dentro todos los elementos jugables [07:15].

Luego conectas la propiedad de visibilidad de ese null object al sender modo de juego. Resultado: cuando el usuario toca Jugar, aparecen los objetos; cuando pierde, desaparecen automáticamente.

¿Cuándo debe aparecer el texto Jugar?

El texto Jugar tiene que mostrarse en dos momentos: al abrir el efecto por primera vez y después de un Game Over. Para el segundo caso, conectas el parámetro completed de la animación de Game Over a la visibilidad del texto, y un receiver de Inicio lo apaga cuando empieza la partida.

Para el primer caso entra en juego un nodo clave: Runtime, dentro de la categoría Device. Runtime devuelve cuántos segundos lleva activa la experiencia, y suele usarse para mostrar instrucciones iniciales [10:40].

¿Para qué sirve Runtime en Spark AR? Mide el tiempo transcurrido desde que se abrió el efecto. Sirve para mostrar instrucciones, animaciones de bienvenida o tutoriales durante los primeros segundos.

La condición es: si Runtime es menor a cinco segundos, enciende la visibilidad del texto Jugar. Pero al haber dos disparadores (Runtime y fin de Game Over), aparece el clásico problema de pulsos múltiples.

¿Cómo combinar dos pulsos con Pulse Merge?

Cuando necesitas que dos avisos disparen la misma acción, el Pulse Merge es la herramienta directa. A diferencia del multiplexer, el Pulse Merge toma dos pulsos y los convierte en uno solo: cuando cualquiera de los dos sucede, el valor se enciende.

Esto te permite que el texto Jugar aparezca tanto al abrir el efecto como tras el Game Over, sin conflictos.

¿Cómo evitar que se sigan sumando puntos en modo de espera?

Un detalle fácil de pasar por alto: aunque escondas los objetos, los fantasmas pueden seguir generando avisos de puntos. La corrección se hace en el multiplexer que recibe los puntos.

Agregas un nodo if de tipo pulso con esta condición: solo deja pasar el aviso si modo de juego está activo [13:50]. Lo replicas también para el contador de vidas con el decrease. Así, fuera de partida, los pulsos existen pero no afectan los marcadores.

Los pasos finales para validar el flujo completo son:

  1. Reiniciar el efecto y comprobar que aparece el texto Jugar.
  2. Dar tap y verificar que las vidas vuelven a cinco y los puntos a cero.
  3. Dejar perder al usuario hasta el Game Over.
  4. Confirmar que los puntos dejan de contarse y que Jugar reaparece.

Con esta estructura puedes sumar capas adicionales al modo de espera, como un face filter exclusivo de bienvenida o una animación celebratoria al iniciar la partida. La base está lista para escalar.

¿Qué tipo de animación pondrías en tu modo de espera para enganchar al usuario antes de tocar Jugar?