Sergio Valor
9a6cfdaaeb
Implementar Temas Dinámicos (Keyframe Sequence System)
✨ NUEVAS CARACTERÍSTICAS:
**Sistema de Temas Dinámicos Animados:**
- 3 temas dinámicos predefinidos con transiciones automáticas
- Keyframe sequence: múltiples estados intermedios con duraciones configurables
- Interpolación LERP entre keyframes (fondo + colores de pelotas)
- Loop infinito automático
**Temas Implementados:**
1. **SUNRISE (Numpad 8)** - Amanecer: Noche → Alba → Día
- 4 keyframes: Azul nocturno → Naranja-rosa alba → Amarillo brillante día → Loop
- Duraciones: 0s → 4s → 3s → 5s (total: 12s por ciclo)
2. **OCEAN WAVES (Numpad 9)** - Olas Oceánicas: Profundidad ↔ Superficie
- 3 keyframes: Azul marino oscuro ↔ Turquesa brillante
- Duraciones: 0s → 4s → 4s (total: 8s por ciclo)
3. **NEON PULSE (Numpad 0)** - Pulso Neón: Apagado ↔ Encendido
- 3 keyframes: Negro apagado ↔ Cian-magenta vibrante
- Duraciones: 0s → 1.5s → 1.5s (total: 3s ping-pong rápido)
**Controles:**
- Numpad 8/9/0: Activar tema dinámico SUNRISE/OCEAN WAVES/NEON PULSE
- Shift+D: Pausar/reanudar animación de tema dinámico activo
- Temas estáticos (1-7) desactivan modo dinámico automáticamente
**Arquitectura:**
- defines.h: Estructuras DynamicThemeKeyframe + DynamicTheme
- engine.h: Estado dinámico (keyframes, progress, pausa)
- engine.cpp:
- initializeDynamicThemes(): 3 temas predefinidos con keyframes
- updateDynamicTheme(): Motor de animación (avance keyframes + loop)
- activateDynamicTheme(): Iniciar tema dinámico
- pauseDynamicTheme(): Toggle pausa con Shift+D
- renderGradientBackground(): Soporte interpolación keyframes
- getInterpolatedColor(): Soporte colores dinámicos
**Detalles Técnicos:**
- Transiciones suaves independientes del framerate (delta_time)
- Compatibilidad total con sistema LERP estático existente
- Desactivación mutua: tema estático desactiva dinámico (y viceversa)
- Velocidades variables por transición (1.5s - 5s configurables)
- Display automático de nombre de tema al activar
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 20:09:49 +02:00
..
2025-10-05 09:50:19 +02:00
2025-10-05 00:56:22 +02:00
2025-10-05 01:25:55 +02:00
2025-10-05 01:25:55 +02:00
2025-10-05 20:09:49 +02:00
2025-10-05 20:09:49 +02:00
2025-10-05 20:09:49 +02:00
2025-10-05 10:17:46 +02:00
2025-10-05 09:30:27 +02:00
2025-10-05 09:18:54 +02:00