import { System } from '../core/System'; import { GameEntity } from '../core/Entity'; export interface CameraConfig { /** 摄像机 X 位置 */ x: number; /** 摄像机 Y 位置 */ y: number; /** 缩放 */ zoom: number; /** 旋转(弧度) */ rotation: number; } export declare class CameraSystem extends System { static priority: number; /** 摄像机位置 */ x: number; y: number; /** 目标位置(用于平滑跟随) */ targetX: number; targetY: number; /** 缩放 */ zoom: number; targetZoom: number; /** 旋转 */ rotation: number; /** 震屏强度 */ private shakeIntensity; private shakeX; private shakeY; private shakeDecay; /** 跟随目标 */ private followTarget; private followSmoothing; private followOffsetX; private followOffsetY; /** 闪屏效果 */ private flashColor; private flashAlpha; private flashDuration; private flashTimer; /** 边界限制 */ bounds: { minX: number; minY: number; maxX: number; maxY: number; } | null; onUpdate(dt: number): void; onPreRender(ctx: CanvasRenderingContext2D): void; onPostRender(ctx: CanvasRenderingContext2D): void; /** * 震屏效果 */ shake(options?: { intensity?: number; decay?: number; }): void; /** * 闪屏效果 */ flash(options?: { color?: string; duration?: number; alpha?: number; }): void; /** * 缩放到指定值 */ zoomTo(zoom: number, _options?: { duration?: number; }): void; /** * 移动到指定位置 */ moveTo(x: number, y: number): void; /** * 立即设置位置 */ setPosition(x: number, y: number): void; /** * 跟随实体 */ follow(target: GameEntity | null, options?: { smoothing?: number; offsetX?: number; offsetY?: number; }): void; /** * 停止跟随 */ unfollow(): void; /** * 设置边界 */ setBounds(minX: number, minY: number, maxX: number, maxY: number): void; /** * 清除边界 */ clearBounds(): void; /** * 将屏幕坐标转换为世界坐标 */ screenToWorld(screenX: number, screenY: number): { x: number; y: number; }; /** * 将世界坐标转换为屏幕坐标 */ worldToScreen(worldX: number, worldY: number): { x: number; y: number; }; /** * 检查点是否在视口内 */ isInView(x: number, y: number, margin?: number): boolean; /** * 获取视口边界 */ getViewBounds(): { left: number; right: number; top: number; bottom: number; }; /** * 重置摄像机 */ reset(): void; } //# sourceMappingURL=CameraSystem.d.ts.map