png支持

This commit is contained in:
ArchZer0
2026-08-17 10:26:27 +08:00
parent 07aeced2e4
commit 63d97f058a
25 changed files with 893 additions and 261 deletions
+26
View File
@@ -1,10 +1,21 @@
#pragma once
#include <cstddef>
#include <memory>
#include <string>
#include <unordered_map>
namespace boundard {
class Scene;
class Game {
private:
size_t id_cnt;
std::string current_scene_name_;
std::string pending_scene_;
std::unordered_map<std::string, std::shared_ptr<Scene>> scenes_;
std::shared_ptr<Scene> current_scene_;
public:
Game();
@@ -17,5 +28,20 @@ class Game {
static Game& getInstance();
void launch();
size_t new_id();
// 场景注册与查询。
void add_scene(std::shared_ptr<Scene> scene);
std::shared_ptr<Scene> scene(const std::string& name) const;
std::shared_ptr<Scene> current_scene() const;
const std::string& current_scene_name() const;
bool has_scene(const std::string& name) const;
// 引擎在安全时机调用,把目标场景设为当前场景。
void set_current_scene(std::shared_ptr<Scene> scene);
// 供行为函数调用的切换 API。场景会在主循环的安全时机切换。
bool switch_scene(const std::string& name);
void request_scene(const std::string& name);
std::string take_scene_request();
};
} // namespace boundard