import { World } from 'miniplex'; import { EventBus } from './EventBus'; import { System } from './System'; import { Scene, SceneClass } from './Scene'; import { GameEntity } from './Entity'; export interface EngineConfig { /** Canvas 元素或选择器 */ canvas: HTMLCanvasElement | string; /** 设计宽度 */ width?: number; /** 设计高度 */ height?: number; /** 背景颜色 */ backgroundColor?: string; /** 是否自动缩放适配屏幕 */ autoScale?: boolean; /** 目标帧率 */ targetFPS?: number; /** 是否开启调试模式 */ debug?: boolean; } export declare class Engine { /** Canvas 元素 */ readonly canvas: HTMLCanvasElement; /** 2D 渲染上下文 */ readonly ctx: CanvasRenderingContext2D; /** 设计宽度 */ readonly width: number; /** 设计高度 */ readonly height: number; /** 缩放系数 */ scale: number; /** 背景颜色 */ backgroundColor: string; /** 调试模式 */ debug: boolean; /** 事件总线 */ readonly events: EventBus>; /** 实体世界 */ readonly world: World; /** 已注册的系统 */ private systems; private systemMap; /** 已注册的场景 */ private scenes; private sceneClasses; /** 当前场景 */ private currentScene; /** 游戏时间 */ time: number; /** 帧计数 */ frame: number; /** 上一帧时间戳 */ private lastTime; /** 是否正在运行 */ private running; /** 目标帧时间 */ readonly targetFrameTime: number; /** 累积时间(用于固定时间步) */ private accumulator; /** 固定更新步长 (60fps) */ readonly fixedDeltaTime: number; constructor(config: EngineConfig); /** * 设置自动缩放 */ private setupAutoScale; /** * 调整画布大小 */ resize(): void; /** * 注册系统 */ use(SystemClass: new () => T): this; /** * 获取系统 */ system(SystemClass: new () => T): T; /** * 检查系统是否已注册 */ hasSystem(SystemClass: new () => T): boolean; /** * 注册场景 */ addScene(name: string, SceneClass: SceneClass): this; /** * 切换场景 */ goto(name: string): void; /** * 启动游戏 */ start(initialScene?: string): void; /** * 停止游戏 */ stop(): void; /** * 游戏主循环 */ private loop; /** * 更新逻辑 */ private update; /** * 渲染 */ private render; /** * 发送事件 */ emit(event: K, data?: unknown): void; /** * 监听事件 */ on(event: K, callback: (data: unknown) => void): { unsubscribe: () => void; }; /** * 一次性监听事件 */ once(event: K, callback: (data: unknown) => void): { unsubscribe: () => void; }; /** * 创建实体 */ spawn>(components: T): GameEntity & T; /** * 销毁实体 */ despawn(entity: GameEntity): void; /** * 获取当前场景 */ get scene(): Scene | null; } //# sourceMappingURL=Engine.d.ts.map