scoreboard.cpp: treballant en transicio de ENTER_NAME a SHOW_NAME

This commit is contained in:
2025-10-01 19:11:58 +02:00
parent 6ad34eaf57
commit 7bd7ba84e0
2 changed files with 59 additions and 7 deletions

View File

@@ -90,6 +90,9 @@ class Scoreboard {
std::array<float, static_cast<int>(Id::SIZE)> carousel_position_ = {}; // Posición actual del carrusel (índice en character_list_)
std::array<float, static_cast<int>(Id::SIZE)> carousel_target_ = {}; // Posición objetivo del carrusel
std::array<int, static_cast<int>(Id::SIZE)> carousel_prev_index_ = {}; // Índice previo para detectar cambios
std::array<Mode, static_cast<int>(Id::SIZE)> previous_mode_ = {}; // Modo anterior para detectar transiciones
std::array<float, static_cast<int>(Id::SIZE)> text_slide_offset_ = {}; // Offset Y de animación de deslizamiento de texto
std::array<bool, static_cast<int>(Id::SIZE)> is_sliding_ = {}; // Indica si el panel está animando deslizamiento
std::array<Panel, static_cast<int>(Id::SIZE)> panel_ = {}; // Lista con todos los paneles del marcador
Colors::Cycle name_color_cycle_; // Ciclo de colores para destacar el nombre una vez introducido
Color animated_color_; // Color actual animado (ciclo automático cada 100ms)
@@ -110,6 +113,7 @@ class Scoreboard {
// --- Constantes ---
static constexpr int CAROUSEL_VISIBLE_LETTERS = 9;
static constexpr float TEXT_SLIDE_DURATION = 0.5f; // Duración de la animación de deslizamiento en segundos
// --- Variables de aspecto ---
Color text_color1_, text_color2_; // Colores para los marcadores del texto;
@@ -128,6 +132,7 @@ class Scoreboard {
void updateTimeCounter(); // Actualiza el contador
void updateNameColorIndex(); // Actualiza el índice del color animado del nombre
void updateCarouselAnimation(float deltaTime); // Actualiza la animación del carrusel
void updateTextSlideAnimation(float deltaTime); // Actualiza la animación de deslizamiento de texto
void renderSeparator(); // Dibuja la línea que separa la zona de juego del marcador
void renderPanelContent(size_t panel_index);
void renderScoreMode(size_t panel_index);