import { World } from 'miniplex'; import { Engine } from './Engine'; import { GameEntity } from './Entity'; export declare abstract class Scene { /** 场景名称 */ name: string; /** 引擎引用 */ protected engine: Engine; /** 实体世界 */ protected world: World; /** 场景是否激活 */ active: boolean; /** * 场景创建时调用 */ onCreate?(): void; /** * 场景进入时调用 */ onEnter?(): void; /** * 每帧更新 */ onUpdate?(dt: number): void; /** * 渲染 */ onRender?(ctx: CanvasRenderingContext2D): void; /** * 场景退出时调用 */ onExit?(): void; /** * 场景销毁时调用 */ onDestroy?(): void; /** * 创建实体 */ spawn>(components: T): GameEntity & T; /** * 销毁实体 */ despawn(entity: GameEntity): void; /** * 查询实体 */ query(...components: T[]): import('miniplex').Query>; /** * 获取系统 */ protected getSystem(SystemClass: new () => T): T; /** * 发送事件 */ protected emit(event: K, data?: unknown): void; /** * 监听事件 */ protected on(event: K, callback: (data: unknown) => void): { unsubscribe: () => void; }; /** * 切换场景 */ protected goto(sceneName: string): void; } export type SceneClass = new () => Scene; //# sourceMappingURL=Scene.d.ts.map