PROBLEMA: Las pelotas cambiaban bruscamente de color durante transiciones de temas dinámicos en lugar de tener transiciones suaves. CAUSAS IDENTIFICADAS: 1. getInterpolatedColor() interpolaba desde Ball::color_ (obsoleto) en lugar de usar el color del keyframe actual 2. updateDynamicTheme() actualizaba Ball::color_ incorrectamente al final de cada transición SOLUCIÓN: ✅ getInterpolatedColor(): - Ahora interpola desde current_kf.ball_colors[index] - Hasta target_kf.ball_colors[index] - Elimina dependencia de Ball::color_ almacenado ✅ updateDynamicTheme(): - Elimina setColor() redundante al completar transición - getInterpolatedColor() ya calcula color correcto cada frame - Cuando progress=1.0, devuelve exactamente color destino RESULTADO: - Transiciones LERP suaves de 0% a 100% sin saltos bruscos - Interpolación correcta entre keyframes actual y destino - Coherencia entre renderizado y lógica de animación ARCHIVOS MODIFICADOS: - source/engine.cpp (2 funciones corregidas) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
98 KiB
98 KiB