Skip to content

ECS Framework API v2.1.50


ECS Framework API / World

Class: World

Defined in: ECS/World.ts:85

World类 - ECS世界管理器

World是Scene的容器,每个World可以管理多个Scene。 这种设计允许创建独立的游戏世界,如:

  • 游戏房间(每个房间一个World)
  • 不同的游戏模式
  • 独立的模拟环境

Example

typescript
// 创建游戏房间的World
const roomWorld = new World({ name: 'Room_001' });

// 在World中创建Scene
const gameScene = roomWorld.createScene('game', new Scene());
const uiScene = roomWorld.createScene('ui', new Scene());

// 更新整个World
roomWorld.update(deltaTime);

Constructors

Constructor

new World(config): World

Defined in: ECS/World.ts:94

Parameters

config

IWorldConfig = {}

Returns

World

Properties

name

readonly name: string

Defined in: ECS/World.ts:86

Accessors

isActive

Get Signature

get isActive(): boolean

Defined in: ECS/World.ts:487

检查World是否激活

Returns

boolean


sceneCount

Get Signature

get sceneCount(): number

Defined in: ECS/World.ts:494

获取Scene数量

Returns

number


createdAt

Get Signature

get createdAt(): number

Defined in: ECS/World.ts:501

获取创建时间

Returns

number

Methods

createScene()

createScene<T>(sceneId, sceneInstance?): T

Defined in: ECS/World.ts:114

创建并添加Scene到World

Type Parameters

T

T extends IScene

Parameters

sceneId

string

sceneInstance?

T

Returns

T


removeScene()

removeScene(sceneId): boolean

Defined in: ECS/World.ts:146

移除Scene

Parameters

sceneId

string

Returns

boolean


getScene()

getScene<T>(sceneId): null | T

Defined in: ECS/World.ts:168

获取Scene

Type Parameters

T

T extends IScene

Parameters

sceneId

string

Returns

null | T


getSceneIds()

getSceneIds(): string[]

Defined in: ECS/World.ts:175

获取所有Scene ID

Returns

string[]


getAllScenes()

getAllScenes(): IScene[]

Defined in: ECS/World.ts:182

获取所有Scene

Returns

IScene[]


setSceneActive()

setSceneActive(sceneId, active): void

Defined in: ECS/World.ts:189

设置Scene激活状态

Parameters

sceneId

string

active

boolean

Returns

void


isSceneActive()

isSceneActive(sceneId): boolean

Defined in: ECS/World.ts:213

检查Scene是否激活

Parameters

sceneId

string

Returns

boolean


getActiveSceneCount()

getActiveSceneCount(): number

Defined in: ECS/World.ts:220

获取活跃Scene数量

Returns

number


addGlobalSystem()

addGlobalSystem<T>(system): T

Defined in: ECS/World.ts:230

添加全局System 全局System会在所有激活Scene之前更新

Type Parameters

T

T extends IGlobalSystem

Parameters

system

T

Returns

T


removeGlobalSystem()

removeGlobalSystem(system): boolean

Defined in: ECS/World.ts:247

移除全局System

Parameters

system

IGlobalSystem

Returns

boolean


getGlobalSystem()

getGlobalSystem<T>(type): null | T

Defined in: ECS/World.ts:265

获取全局System

Type Parameters

T

T extends IGlobalSystem

Parameters

type

(...args) => T

Returns

null | T


start()

start(): void

Defined in: ECS/World.ts:279

启动World

Returns

void


stop()

stop(): void

Defined in: ECS/World.ts:299

停止World

Returns

void


updateGlobalSystems()

updateGlobalSystems(): void

Defined in: ECS/World.ts:324

更新World中的全局System 注意:此方法由Core.update()调用,不应直接调用

Returns

void


updateScenes()

updateScenes(): void

Defined in: ECS/World.ts:341

更新World中的所有激活Scene 注意:此方法由Core.update()调用,不应直接调用

Returns

void


destroy()

destroy(): void

Defined in: ECS/World.ts:363

销毁World

Returns

void


getStatus()

getStatus(): object

Defined in: ECS/World.ts:394

获取World状态

Returns

object

name

name: string

isActive

isActive: boolean

sceneCount

sceneCount: number

activeSceneCount

activeSceneCount: number

globalSystemCount

globalSystemCount: number

createdAt

createdAt: number

config

config: object

config.name?

optional name: string

World名称

config.debug?

optional debug: boolean

是否启用调试模式

config.maxScenes?

optional maxScenes: number

最大Scene数量限制

config.autoCleanup?

optional autoCleanup: boolean

是否自动清理空Scene

scenes

scenes: object[]


getStats()

getStats(): object

Defined in: ECS/World.ts:414

获取World统计信息

Returns

object

totalEntities

totalEntities: number = 0

totalSystems

totalSystems: number

memoryUsage

memoryUsage: number = 0

performance

performance: object

performance.averageUpdateTime

averageUpdateTime: number = 0

performance.maxUpdateTime

maxUpdateTime: number = 0

Released under the MIT License.