#pragma once #include // for shared_ptr, unique_ptr #include // for string #include // for vector class AnimatedSprite; class Texture; struct ExplosionTexture { std::shared_ptr texture; // Textura para la explosión std::vector *animation; // Animación para la textura int size; // Tamaño de la explosión }; // Clase explosions class Explosions { private: // Variables std::vector textures_; // Vector con las texturas a utilizar std::vector> explosions_; // Lista con todas las explosiones // Vacia el vector de elementos finalizados void freeExplosions(); // Busca una textura a partir del tamaño int getIndexBySize(int size); public: // Constructor Explosions(); // Destructor ~Explosions(); // Actualiza la lógica de la clase void update(); // Dibuja el objeto en pantalla void render(); // Añade texturas al objeto void addTexture(int size, std::shared_ptr texture, std::vector *animation); // Añade una explosión void add(int x, int y, int size); };