import { System } from '../core/System'; /** 粒子数据 */ export interface Particle { /** 位置 */ x: number; y: number; /** 速度 */ vx: number; vy: number; /** 生命周期 */ life: number; maxLife: number; /** 大小 */ size: number; startSize: number; endSize: number; /** 颜色 */ color: string; startColor: [number, number, number, number]; endColor: [number, number, number, number]; /** 旋转 */ rotation: number; angularVelocity: number; /** 透明度 */ alpha: number; /** 重力影响 */ gravity: number; /** 阻力 */ drag: number; /** 所属发射器 */ emitter: ParticleEmitter | null; } /** 发射器配置 */ export interface EmitterConfig { /** 位置 */ x?: number; y?: number; /** 发射区域(相对于位置) */ area?: { width: number; height: number; } | { radius: number; }; /** 每秒发射数量 */ rate?: number; /** 一次性发射数量(burst 模式) */ burst?: number; /** 最大粒子数 */ maxParticles?: number; /** 发射持续时间(毫秒,0 为持续发射) */ duration?: number; /** 是否循环 */ loop?: boolean; /** 生命周期(毫秒) */ life?: number | [number, number]; /** 初始速度 */ speed?: number | [number, number]; /** 发射角度(弧度) */ angle?: number | [number, number]; /** 初始大小 */ startSize?: number | [number, number]; /** 结束大小 */ endSize?: number | [number, number]; /** 初始颜色 (支持 '#fff', 'rgb()', 'rgba()' 格式) */ startColor?: string | string[]; /** 结束颜色 */ endColor?: string | string[]; /** 角速度 */ angularVelocity?: number | [number, number]; /** 重力 */ gravity?: number; /** 阻力 (0-1) */ drag?: number; /** 混合模式 */ blendMode?: GlobalCompositeOperation; } /** 发射器 */ export interface ParticleEmitter { /** 配置 */ config: Required; /** 活跃粒子 */ particles: Particle[]; /** 是否活跃 */ active: boolean; /** 累积时间(用于发射控制) */ accumulator: number; /** 已运行时间 */ elapsed: number; /** 是否完成 */ finished: boolean; } export declare class ParticleSystem extends System { static priority: number; /** 所有发射器 */ private emitters; /** 粒子池 */ private particlePool; /** 全局重力 */ gravity: { x: number; y: number; }; onUpdate(dt: number): void; onRender(ctx: CanvasRenderingContext2D): void; /** * 创建发射器 */ createEmitter(config: EmitterConfig): ParticleEmitter; /** * 发射单个粒子 */ private emitParticle; /** * 停止发射器 */ stopEmitter(emitter: ParticleEmitter, immediate?: boolean): void; /** * 移除所有发射器 */ clear(): void; /** * 获取活跃粒子总数 */ getParticleCount(): number; /** * 获取发射器数量 */ getEmitterCount(): number; /** * 爆炸效果 */ explode(x: number, y: number, options?: Partial): ParticleEmitter; /** * 烟雾效果 */ smoke(x: number, y: number, options?: Partial): ParticleEmitter; /** * 火焰效果 */ fire(x: number, y: number, options?: Partial): ParticleEmitter; /** * 星星/闪光效果 */ sparkle(x: number, y: number, options?: Partial): ParticleEmitter; /** * 轨迹效果 */ trail(x: number, y: number, options?: Partial): ParticleEmitter; private createParticle; private getValue; private getArrayValue; private parseColor; } //# sourceMappingURL=ParticleSystem.d.ts.map