#pragma once #include // for Uint32, Uint8 #include // for unique_ptr, shared_ptr #include // for vector #include "smart_sprite.h" // for SmartSprite #include "writer.h" // for Writer class Text; class Texture; struct JA_Music_t; // lines 11-11 /* Esta clase gestiona un estado del programa. Se encarga de mostrar la secuencia de introducción */ // Clase Intro class Intro { private: // Objetos std::shared_ptr texture_; // Textura con los graficos std::shared_ptr text_; // Textos de la intro std::vector> bitmaps_; // Vector con los sprites inteligentes para los dibujos de la intro std::vector> texts_; // Textos de la intro // Variables Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa Uint8 ticks_speed_; // Velocidad a la que se repiten los bucles del programa JA_Music_t *music_; // Musica para la intro int scene_; // Indica que escena está activa // Actualiza las variables del objeto void update(); // Dibuja el objeto en pantalla void render(); // Comprueba los eventos void checkEvents(); // Comprueba las entradas void checkInput(); // Actualiza las escenas de la intro void updateScenes(); // Recarga todas las texturas void reloadTextures(); public: // Constructor explicit Intro(JA_Music_t *music); // Destructor ~Intro() = default; // Bucle principal void run(); };