diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index baa35e54..4cda3a34 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -314,8 +314,8 @@ import { Core, WorldManager } from '@esengine/ecs-framework'; // 初始化Core Core.create({ debug: true }); -// 创建世界管理器(手动管理) -const worldManager = new WorldManager(); +// 从服务容器获取 WorldManager(Core 已自动创建并注册) +const worldManager = Core.services.resolve(WorldManager); // 创建多个独立的游戏世界 const room1 = worldManager.createWorld('room_001'); diff --git a/docs/guide/scene.md b/docs/guide/scene.md index 34e007e1..a263a392 100644 --- a/docs/guide/scene.md +++ b/docs/guide/scene.md @@ -296,13 +296,13 @@ ECS Framework 提供了灵活的场景管理架构,适用于不同规模的应 适用于 95% 的游戏应用(单人游戏、简单多人游戏、移动游戏等): ```typescript -import { Core, SceneManager } from '@esengine/ecs-framework'; +import { Core, Scene, SceneManager } from '@esengine/ecs-framework'; // 初始化Core(全局服务) Core.create({ debug: true }); -// 创建场景管理器 -const sceneManager = new SceneManager(); +// 从服务容器获取 SceneManager(Core 已自动创建并注册) +const sceneManager = Core.services.resolve(SceneManager); // 创建游戏场景 class GameScene extends Scene { @@ -355,8 +355,8 @@ import { Core, WorldManager } from '@esengine/ecs-framework'; // 初始化Core(全局服务) Core.create({ debug: true }); -// 创建世界管理器 -const worldManager = new WorldManager(); +// 从服务容器获取 WorldManager(Core 已自动创建并注册) +const worldManager = Core.services.resolve(WorldManager); // 创建多个独立的游戏世界 const gameWorld = worldManager.createWorld('game', { @@ -435,7 +435,7 @@ ECS Framework 的架构层次清晰,职责分明: import { Core, SceneManager } from '@esengine/ecs-framework'; Core.create({ debug: true }); -const sceneManager = new SceneManager(); +const sceneManager = Core.services.resolve(SceneManager); sceneManager.setScene(new GameScene()); // 游戏循环 @@ -448,7 +448,7 @@ function gameLoop(deltaTime: number) { import { Core, WorldManager } from '@esengine/ecs-framework'; Core.create({ debug: true }); -const worldManager = new WorldManager(); +const worldManager = Core.services.resolve(WorldManager); const world = worldManager.createWorld('gameWorld'); const scene = world.createScene('mainScene', new GameScene()); world.setSceneActive('mainScene', true); diff --git a/docs/guide/service-container.md b/docs/guide/service-container.md index 8e9675e3..512cb135 100644 --- a/docs/guide/service-container.md +++ b/docs/guide/service-container.md @@ -196,15 +196,49 @@ const fps = monitor.getFPS(); ### SceneManager -场景管理器,管理场景的生命周期: +场景管理器,管理单场景应用的场景生命周期: ```typescript const sceneManager = Core.services.resolve(SceneManager); +// 设置当前场景 +sceneManager.setScene(new GameScene()); + // 获取当前场景 const currentScene = sceneManager.currentScene; + +// 延迟切换场景 +sceneManager.loadScene(new MenuScene()); + +// 更新场景 +sceneManager.update(); ``` +### WorldManager + +世界管理器,管理多个独立的 World 实例(高级用例): + +```typescript +const worldManager = Core.services.resolve(WorldManager); + +// 创建独立的游戏世界 +const gameWorld = worldManager.createWorld('game_room_001', { + name: 'GameRoom', + maxScenes: 5 +}); + +// 在World中创建场景 +const scene = gameWorld.createScene('battle', new BattleScene()); +gameWorld.setSceneActive('battle', true); + +// 更新所有World +worldManager.updateAll(); +``` + +**适用场景**: +- SceneManager: 适用于 95% 的游戏(单人游戏、简单多人游戏) +- WorldManager: 适用于 MMO 服务器、游戏房间系统等需要完全隔离的多世界应用 + ### PoolManager 对象池管理器,管理所有对象池: