Files
logo_02/source/logo.h
2025-04-08 08:23:18 +02:00

28 lines
1.5 KiB
C++

#pragma once // Evita inclusiones múltiples del archivo de encabezado
#include <SDL3/SDL_stdinc.h> // Incluye definiciones estándar de SDL, como Uint64
#include <memory> // Proporciona soporte para punteros inteligentes (shared_ptr, unique_ptr)
#include "s_sprite.h" // Declara la clase SSprite, utilizada para manejar sprites
class Surface; // Declaración adelantada de la clase Surface
// Clase Logo: Maneja la lógica principal de un logotipo animado o interactivo
class Logo
{
private:
Uint64 ticks = 0; // Contador de ticks para medir el tiempo o controlar animaciones
std::shared_ptr<Surface> logo_surface = nullptr; // Superficie del logotipo, compartida entre múltiples objetos
std::unique_ptr<SSprite> logo_sprite = nullptr; // Sprite del logotipo, propiedad exclusiva de esta clase
// Métodos privados para manejar el ciclo de vida y la lógica del logotipo
void init(); // Inicializa los recursos necesarios para el logotipo
void close(); // Libera los recursos utilizados por el logotipo
void checkEvents(); // Maneja los eventos de entrada (teclado, ratón, etc.)
void update(); // Actualiza el estado del logotipo (animaciones, lógica, etc.)
void render(); // Renderiza el logotipo en pantalla
public:
Logo(); // Constructor: Inicializa la clase Logo
~Logo(); // Destructor: Limpia los recursos utilizados por la clase Logo
int run(); // Método principal que ejecuta el ciclo de vida del logotipo
};