← Volver al Índice

Eco Run

Documentación Técnica

1. Ficha Técnica

  • Nombre: Eco Run
  • ODS: ODS 14 - Vida Submarina / ODS 15 - Vida de Ecosistemas Terrestres
  • Objetivo: Hacer clic de forma rápida en la basura que aparece en localizaciones aleatorias de la pantalla antes de que desaparezca o el reloj marque cero.

2. Mecánica y Flujo de Juego

Pertenece a la familia de los juegos "Reaction Clicker". La naturaleza procedimental del juego depende del bucle central que invoca objetos asíncronamente.

  1. El estado inicia con contador de basura en 0.
  2. El setInterval global (`spawnInterval`) inyecta un Div simulando basura cada "x" milisegundos.
  3. El jugador hace clic y suma puntos. Si ignora la basura, un setTimeout interno puede destruirla y penalizar.
  4. A un número definido de clicks exitosos, el juego acaba y ganas.

3. Lógica de Programación

El juego utiliza coordenadas CSS absolutas (left y top con valores en porcentaje) instanciadas mediante Math.random() * 80 + 10 + '%' para asegurar que el nodo permanezca jugable dentro de los márgenes y no desborde.

Eventos Principales

  • click: Agregado dinámicamente a cada Div de basura que es generado. Enlaza con una función callback para ocultar el nodo y sumar progreso. Incluye e.stopPropagation() para evitar clics accidentales subyacentes.

Variables Importantes

this.collectedTrash = 0; this.targetTrash = 10 + (this.level * 2); this.spawnRate = Math.max(300, 1000 - (this.level * 100)); // Spawn en ms progresivo

4. Sistema de Victoria/Derrota

Victoria: El bucle del intervalo comprueba siempre if (this.collectedTrash >= this.targetTrash) this.finish(true). Las metas escalan exponencialmente según el nivel.

Derrota: BaseGame monitorea el tiempo en milisegundos restado por Frame. Si finaliza sin que the collectedTrash empate con target, es Game Over.

5. Posibles Mejoras Futuras

  • El contenedor genera acumulación en el DOM si el Timeout de expiración natural no la remueve, lo mejor sería almacenar los nodos en un Array global y limpiar el recolector de basura (Garbage Collector real de JS).
  • Incluir distractores como animales que si haces clic restan puntos.