Super Farmer
Documentación Técnica
1. Ficha Técnica
- Nombre: Super Farmer
- ODS: ODS 2 - Hambre Cero
- Objetivo: Usar las teclas WASD o las Flechas para pilotar un tractor agrícola por una grilla/campo obteniendo zanahorias maduras, mientras se eluden brotes de crecimiento prematuro y rocas o accidentes naturales.
2. Mecánica y Flujo de Juego
El juego implementa movimiento multidireccional interactivo en "Top Down View" con input de teclado (keydown / keyup). Asemeja a clásicos como Pac-Man sin estar bloqueado a una grid forzada puramente (se permite moverse libremente con Float Values).
- Un tractor arranca en el centro de la pantalla.
- Nodos (Zanahorias, Rocas, Brotes Verdes) se reparten como estáticos en un mapa asíncrono con `generateMap()`.
- Al mantener WASD, se suman multiplicadores (`this.keys.w`) al Vector del jugador.
- Se escupe sobre los obstaculos para recolectar o perder.
3. Lógica de Programación
Las mecánicas recaen intensamente sobre requestAnimationFrame ejecutando una evaluación permanente de matrices (Arrays de Items) en el método Update.
Multi-Key Movement (Movimiento Teclado Multi-Dimensional)
Esta metodología permite pulsaciones simultáneas como Up-Right para movimientos diagonales interpolados fluidamente sin Input Lag de JS y OS repetido.
Algoritmo de Colisiones Hitboxes
La distancia entre el centro geométrico de todos los ítems de campo contra el reproductor Math.hypot(dx, dy) < Threshold confirma colisiones radiales, un proxy esférico más bondadoso para los jugadores que la cuadrícula dura (AABB Square).
4. Sistema de Victoria/Derrota
Victoria: Acoplar suficientes Zanahorias antes del Timer a meta contada en this.collectedCrops >= this.targetCrops.
Derrota: Contactar con una Roca o pisar excesivos brotes verdes que no estaban preparados para siega.
