✨ 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>
9.7 KiB
9.7 KiB