class GDE_API Scene : sf::NonCopyable
{
public:
virtual ~Scene();
virtual void init() = 0;
/**
* @brief Actualiza la lógica de la escena, se llama una vez por ciclo
* en el game loop.
*/
virtual void update() = 0;
/**
* @brief Recibe un evento de la aplicación, es llamado una vez por
* cada evento.
*/
virtual void event(sf::Event theEvent) = 0;
/**
* @brief Dibuja la escena, llamado una vez por ciclo en el game loop.
*/
virtual void draw() = 0;
/**
* @brief Se ejecuta antes de eliminar la escena, acciones de limpieza
* deben ir aquí.
*/
virtual void cleanup() = 0;
protected:
/**
* @brief Constructor de Scene.
*
* @param theID Identificador único de la escena.
*/
Scene(sceneID theID);
private:
/// ID único de la escena
sceneID id;
}; // class Scene