adrigm
11/29/2013 - 11:15 AM

scene.hpp

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