feat: Animaciones de logos sincronizadas con retraso + easing en alpha
Implementa sistema de sincronización elegante entre logos con efecto de "seguimiento" y fade suavizado para eliminar desincronización visual. Cambios principales: 1. **Animación sincronizada**: Ambos logos usan la MISMA animación - Eliminadas 4 variables independientes (logo1/logo2 × entry/exit) - Una sola variable `current_animation_` compartida - Misma animación para entrada y salida (simetría) 2. **Retraso de Logo 2**: 0.25 segundos detrás de Logo 1 - Logo 1 empieza en t=0.00s - Logo 2 empieza en t=0.25s - Efecto visual de "eco" o "seguimiento" 3. **Alpha independiente con retraso**: - `logo1_alpha_` y `logo2_alpha_` separados - Logo 2 aparece/desaparece más tarde visualmente 4. **Easing en alpha** (NUEVO): - Aplicado `easeInOutQuad()` al fade de alpha - Elimina problema de "logo deformado esperando a desvanecerse" - Sincronización visual perfecta entre animación y fade - Curva suave: lento al inicio, rápido en medio, lento al final Comportamiento resultante: FADE_IN: - t=0.00s: Logo 1 empieza (alpha con easing) - t=0.25s: Logo 2 empieza (alpha con easing + retraso) - t=0.50s: Logo 1 completamente visible - t=0.75s: Logo 2 completamente visible FADE_OUT: - t=0.00s: Logo 1 empieza a desaparecer (misma animación) - t=0.25s: Logo 2 empieza a desaparecer - t=0.50s: Logo 1 completamente invisible - t=0.75s: Logo 2 completamente invisible Archivos modificados: - source/defines.h: +APPLOGO_LOGO2_DELAY - source/app_logo.h: Reestructuración de variables de animación/alpha - source/app_logo.cpp: Implementación de retraso + easing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -72,13 +72,13 @@ class AppLogo {
|
||||
// ====================================================================
|
||||
AppLogoState state_ = AppLogoState::HIDDEN; // Estado actual de la máquina de estados
|
||||
float timer_ = 0.0f; // Contador de tiempo para estado actual
|
||||
int current_alpha_ = 0; // Alpha actual (0-255)
|
||||
|
||||
// Animaciones INDEPENDIENTES para cada logo
|
||||
AppLogoAnimationType logo1_entry_animation_ = AppLogoAnimationType::ZOOM_ONLY;
|
||||
AppLogoAnimationType logo1_exit_animation_ = AppLogoAnimationType::ZOOM_ONLY;
|
||||
AppLogoAnimationType logo2_entry_animation_ = AppLogoAnimationType::ZOOM_ONLY;
|
||||
AppLogoAnimationType logo2_exit_animation_ = AppLogoAnimationType::ZOOM_ONLY;
|
||||
// Alpha INDEPENDIENTE para cada logo (Logo 2 con retraso)
|
||||
int logo1_alpha_ = 0; // Alpha de Logo 1 (0-255)
|
||||
int logo2_alpha_ = 0; // Alpha de Logo 2 (0-255, con retraso)
|
||||
|
||||
// Animación COMPARTIDA (misma para ambos logos, misma entrada y salida)
|
||||
AppLogoAnimationType current_animation_ = AppLogoAnimationType::ZOOM_ONLY;
|
||||
|
||||
// Variables de deformación INDEPENDIENTES para logo1
|
||||
float logo1_scale_ = 1.0f; // Escala actual de logo1 (1.0 = 100%)
|
||||
|
||||
Reference in New Issue
Block a user