Files

55 lines
1.8 KiB
C++

#pragma once
#include <SDL3/SDL.h>
#include <vector> // for vector
class SmartSprite;
class Text;
class Texture;
class Writer;
struct Section;
namespace Ja {
struct Music;
} // namespace Ja
// Clase Intro
class Intro {
public:
Intro(SDL_Renderer *renderer, Section *section); // Constructor
~Intro(); // Destructor
Intro(const Intro &) = delete;
auto operator=(const Intro &) -> Intro & = delete;
void run(); // Bucle principal
void iterate(); // Ejecuta un frame
void handleEvent(const SDL_Event *event); // Procesa un evento
private:
// Objetos y punteros
SDL_Renderer *renderer_; // El renderizador de la ventana
Texture *texture_; // Textura con los graficos
SDL_Event *event_handler_; // Manejador de eventos
std::vector<SmartSprite *> bitmaps_; // Vector con los sprites inteligentes para los dibujos de la intro
std::vector<Writer *> texts_; // Textos de la intro
Text *text_; // Textos de la intro
Section *section_; // Estado del bucle principal para saber si continua o se sale
// Variables
Ja::Music *music_; // Musica para la intro
int scene_; // Indica que escena está activa
void update(float dt_s); // Actualiza las variables del objeto (time-based)
void render(); // Dibuja el objeto en pantalla
void checkInput(); // Comprueba las entradas
void updateScenes(); // Actualiza las escenas de la intro
// Helpers de updateScenes, uno por cada escena
void updateScene1();
void updateScene2();
void updateScene3();
void updateScene4();
void updateScene5();
void updateScene6();
};