#pragma once #include #include "gameobject.hpp" namespace asloengine { typedef std::vector Layer; class Scene { public: std::string name = "nonamescene"; sf::RenderWindow *scene_window; std::vector layers; std::vector fixed_layers; sf::FloatRect camera_2d_rect; bool needs_clean = false; Scene(std::string _name); void draw(); void load(); void start(sf::RenderWindow *window); void update(float delta_time); void clean(); void destroy(); void move_camera(sf::Vector2f _move); // Custom Derived Implementations virtual void on_load(); virtual void on_update(float delta_time); virtual void on_post_update(float delta_time); virtual void on_destroy(); }; }