#pragma once #include // Para unique_ptr, shared_ptr #include // Para string #include // Para vector #include "animated_sprite.h" // Para AnimatedSprite class Texture; // lines 7-7 struct ExplosionTexture { int size; // Tamaño de la explosión std::shared_ptr texture; // Textura para la explosión std::vector animation; // Animación para la textura // Constructor ExplosionTexture(int sz, std::shared_ptr tex, const std::vector &anim) : size(sz), texture(tex), animation(anim) {} }; // 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() = default; // Destructor ~Explosions() = default; // 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, const std::vector &animation); // Añade una explosión void add(int x, int y, int size); };