Implementar tema MONOCHROME (6º tema visual) - Tecla KP_6

- Fondo negro degradado (similar a NEON)
- 8 tonos de gris: blanco puro a gris muy oscuro
- Estética minimalista monocromática
- Ciclo con tecla B incluye nuevo tema
- Actualizado README con documentación

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-04 06:58:39 +02:00
parent 5391e0cddf
commit 95ab6dea46
7 changed files with 143 additions and 8 deletions

111
ROADMAP.md Normal file
View File

@@ -0,0 +1,111 @@
# ROADMAP - ViBe3 Physics
## Estado Actual ✅
### Figuras 3D (8/8 Completadas)
- ✅ Q - SPHERE (Esfera Fibonacci)
- ✅ W - WAVE_GRID (Malla ondeante)
- ✅ E - HELIX (Espiral helicoidal)
- ✅ R - TORUS (Toroide/donut)
- ✅ T - CUBE (Cubo rotante)
- ✅ Y - CYLINDER (Cilindro)
- ✅ U - ICOSAHEDRON (Icosaedro D20)
- ✅ I - ATOM (Núcleo + órbitas)
### Temas Visuales (5/6)
- ✅ SUNSET (Atardecer)
- ✅ OCEAN (Océano)
- ✅ NEON (Neón vibrante)
- ✅ FOREST (Bosque)
- ✅ RGB (Círculo cromático matemático)
- ⏳ MONOCHROME (Monocromo - próximo)
---
## Mejoras de Presentación 🎨
### 1. ⏳ Tema MONOCHROME
**Descripción:** Tema monocromo con fondo negro degradado y sprites blancos sin colorear
**Prioridad:** Alta
**Estimación:** 30 minutos
**Detalles:**
- Fondo negro degradado (similar a NEON)
- Sprites base color blanco (255, 255, 255)
- Solo modulación de depth (brillo), sin cambio de hue
- Tecla KP_6 para selección directa
### 2. ⏳ Cambio de Tema con LERP
**Descripción:** Transición suave entre temas sin reiniciar escenario
**Prioridad:** Alta
**Estimación:** 1 hora
**Detalles:**
- Interpolación lineal (LERP) de colores RGB
- Transición gradual de 0.5-1.0 segundos
- Mantener pelotas existentes, solo cambiar colores
- Fondo degradado también con LERP
- No llamar a `initBalls()`, solo actualizar colores
### 3. ⏳ Cambio de Textura en Caliente
**Descripción:** Cambiar sprite/textura sin resetear física
**Prioridad:** Media
**Estimación:** 1 hora
**Detalles:**
- Sistema de gestión de múltiples texturas
- Cargar texturas al inicio (ball.png, ball_small.png, etc.)
- Actualizar collision box dinámicamente según tamaño
- Tecla dedicada (ej: `N`) para ciclar texturas
- Mantener física actual, solo cambiar render
### 4. ⏳ Modo DEMO (Auto-play)
**Descripción:** Modo demostración automática con acciones aleatorias
**Prioridad:** Alta
**Estimación:** 1.5 horas
**Detalles:**
- Toggle con tecla `D`
- Timer que ejecuta acciones cada 3-8 segundos
- Acciones: cambiar gravedad, activar figura, cambiar tema, impulso
- Secuencia pseudo-aleatoria pero visualmente coherente
- Pausable con cualquier tecla de usuario
- Indicador visual "DEMO MODE" en pantalla
### 5. ⏳ Sistema de Release
**Descripción:** Empaquetado para distribución standalone
**Prioridad:** Media
**Estimación:** 30 minutos
**Detalles:**
- Crear carpeta `release/`
- Script Python `pack_resources.py` para empaquetar
- Incluir SDL3.dll
- Incluir icon.png (si existe)
- Empaquetar `data/` en archivo .dat o .zip
- Target `make release` en Makefile
- README.txt con instrucciones
---
## Futuras Mejoras (Ideas)
### Performance
- [ ] Spatial partitioning para colisiones ball-to-ball
- [ ] Level-of-detail para 100K+ pelotas
- [ ] GPU compute shaders para física masiva
### Efectos Visuales
- [ ] Trails (estelas de movimiento)
- [ ] Heatmaps de velocidad/energía
- [ ] Bloom/glow para sprites
### Física Avanzada
- [ ] Colisiones entre partículas
- [ ] Viento (fuerza horizontal)
- [ ] Campos magnéticos (atracción/repulsión)
- [ ] Turbulencia
### Interactividad
- [ ] Mouse: click para aplicar fuerzas
- [ ] Mouse: drag para crear campos
- [ ] Mouse wheel: ajustar intensidad
---
**Última actualización:** 2025-10-04