#pragma once #include #include // Para shared_ptr #include // Para string #include // Para vector class SurfaceAnimatedSprite; // lines 11-11 class Surface; class Credits { public: // --- Constructor y Destructor --- Credits(); ~Credits() = default; // --- Bucle principal --- void run(); private: struct Captions { std::string label; // Texto a escribir Uint8 color; // Color del texto }; // --- Objetos y punteros --- std::shared_ptr text_surface_; // Textura para dibujar el texto std::shared_ptr cover_surface_; // Textura para cubrir el texto std::shared_ptr shining_sprite_; // Sprite para el brillo del corazón // --- Variables --- int counter_ = 0; // Contador bool counter_enabled_ = true; // Indica si esta activo el contador int sub_counter_ = 0; // Contador secundario Uint32 ticks_ = 0; // Contador de ticks para ajustar la velocidad del programa std::vector texts_; // Vector con los textos // --- Funciones --- void update(); // Actualiza las variables void render(); // Dibuja en pantalla static void checkEvents(); // Comprueba el manejador de eventos static void checkInput(); // Comprueba las entradas void updateCounter(); // Actualiza el contador void iniTexts(); // Inicializa los textos void fillTexture(); // Escribe el texto en la textura };