Platzi Team
hasta aquí, bastante complejo, la iteración con el script.js no me sale... Seguiré intentado.
Daniel Aguilar
no es necesario transcribir todo, el profe deja el script actualizado en el drive en recursos de la clase :)
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:
¿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:
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?
Platzi Team
hasta aquí, bastante complejo, la iteración con el script.js no me sale... Seguiré intentado.
Daniel Aguilar
no es necesario transcribir todo, el profe deja el script actualizado en el drive en recursos de la clase :)
Juan Felipe López Tafur
Tengo un problema que espero puedan ayudarme a solucionar. Cuándo conecto el nodo "inicio" a los dos contadores entonces el game over ya no aparece. Sólo empieza a descontar negativamente y no a restar las vidas. Pero si vuelvo a conectar un nodo de screen tap al segundo contador entonces ya funciona normal. ¿Alguien me podría ayudar diciéndome qué pasa?
Rolando GA
Profesorcompartenos un screenshot de tu código para podr monitorearlo y te ayudo
Oscar Ortega Cabello
CUANDO LE DOY PLAY LOS "FANTASMAS" YA APARECEN POR EL MEDIO, ALGUNA SOLUCIÓN??
Oscar Ortega Cabello
ENTRE EN EL ARCHIVO DE LA CLASE Y TIENE EL MISMO PROBLEMA 🙁
Rafael Robles Colinas
Me gustaría ayudarte, pero no entiendo muy bien tu problema, podrías explicarme mejor?
Andrés David Loaiza Zamudio
mezclando esta info con la experiencia que ye tenemos en spark es una gran combinación