#pragma once #include #include #include namespace boundard::render { class InputMap; } namespace boundard { class Actor; // 运行时场景:持有场景名和其中的 Actor,并统一驱动 Actor 的 init/tick。 class Scene { public: explicit Scene(std::string name = {}); ~Scene(); Scene(const Scene&) = delete; Scene& operator=(const Scene&) = delete; Scene(Scene&&) noexcept = delete; Scene& operator=(Scene&&) noexcept = delete; const std::string& name() const; void set_name(std::string name); void add_actor(std::shared_ptr actor); void set_actors(std::vector> actors); void clear(); const std::vector& actors() const; std::vector& actors(); void initialize(); void process(float dt, const render::InputMap& input); private: std::string name_; std::vector> actor_storage_; std::vector actors_; }; } // namespace boundard