#pragma once #include #include // Para shared_ptr class SSprite; // lines 7-7 class Surface; // lines 8-8 class LoadingScreen { private: // Objetos y punteros std::shared_ptr mono_loading_screen_surface_; // Surface con la pantalla de carga en blanco y negro std::shared_ptr color_loading_screen_surface_; // Surface con la pantalla de carga en color std::shared_ptr mono_loading_screen_sprite_; // SSprite para manejar la textura loadingScreenTexture1 std::shared_ptr color_loading_screen_sprite_; // SSprite para manejar la textura loadingScreenTexture2 std::shared_ptr screen_surface_; // Surface para dibujar la pantalla de carga // Variables int pre_counter_ = 0; // Contador previo para realizar una pausa inicial int counter_ = 0; // Contador Uint32 ticks_ = 0; // Contador de ticks para ajustar la velocidad del programa int load_counter_ = 0; // Contador para controlar las cargas bool loading_first_part_ = true; // Para saber en que parte de la carga se encuentra int line_index_[192]; // El orden en el que se procesan las 192 lineas de la pantalla de carga SDL_FRect load_rect_ = {0, 0, 52, 1}; // Rectangulo para dibujar la pantalla de carga // Actualiza las variables void update(); // Dibuja en pantalla void render(); // Comprueba el manejador de eventos void checkEvents(); // Comprueba las entradas void checkInput(); // Gestiona el contador interno void updateCounter(); // Gestiona el contador de carga void updateLoad(); // Dibuja la pantalla de carga void renderLoad(); // Dibuja el efecto de carga en el borde void renderBorder(); public: // Constructor LoadingScreen(); // Destructor ~LoadingScreen(); // Bucle principal void run(); };