← Volver al Índice

Recycle Sort

Documentación Técnica

1. Ficha Técnica

  • Nombre: Recycle Sort
  • ODS: ODS 12 - Producción y Consumo Responsable
  • Objetivo: Arrastrar los residuos que caen continuamente hacia los cubos de reciclaje del color correcto antes de que toquen el suelo.

2. Mecánica y Flujo de Juego

Fusiona el concepto de Sorting educacional (clasificar pares) con la velocidad frenética de la gravedad que acelera items.

  1. Múltiples cubetas de reciclaje (Papel, Vidrio, Plástico, etc.) están fijas en la base inferior.
  2. Nodos marcados con clases específicas (ej: 'trash-paper') spawnean arriba en posiciones X aleatorias.
  3. Los objetos ganan Y interpolada en bucle hasta que tocan un borde inferior.
  4. El jugador pincha un ítem y usa drag API llevándolo a una papelera de reciclaje y saltándose el proceso gravitatorio.

3. Lógica de Programación

Las iteraciones del Engine deben chequear si un objeto basura está siendo 'sostenido' (dragging) para detener momentáneamente sus cálculos vectoriales de fuerza de gravedad.

El sistema de Validación (Mappings)

Utiliza colecciones de strings simples para empatarlas o usar diccionarios Map object.

const BINS = { paper: ['newspaper', 'cardboard'], glass: ['bottle', 'jar'] }; function isValid(trashData, targetBin) { ... }

Gravedad

Definida en this.fallSpeed escalable basado en el nivel actual. item.y += this.fallSpeed corre infinitamente hasta despawnear visualmente al sobrepasar 100% de altura del Parent.

4. Sistema de Victoria/Derrota

Victoria: Clasificar con acierto una cantidad estipulada de ítems marcados por this.targetTrash dentro del límite de tiempo.

Derrota: Cada ítem suelto equivocadamente (Drop en un cubo de otro color) se marca de rojo, desaparece y el juego resta un fallo permitido oculto. También penaliza el tiempo global general o desencadena derrota automática según el nivel.

5. Consideraciones de Rendimiento

Todos los intervalos y eventos asociados al drag and drop de objetos generados asíncronamente deben destruirse usando element.remove() en el proceso rutinario de Garbage Collection cleanup() predeterminado del BaseGame para evitar memory leaks.