用途:在 Phaser 4 游戏中添加粒子特效,适用于爆炸、命中火花、烟雾、火焰、雨雪、尘埃轨迹等场景。
主要能力:用 this.add.particles(x, y, 'texture', config) 创建发射器,它是普通游戏对象,具有 depth、scrollFactor、alpha,可放入容器。配置字段支持 speed/angle 范围、gravityY、accelerationX、scale/alpha/rotate 的 { start, end } 插值、tint 数组、blendMode(如 ADD)、lifespan、frequency、quantity、maxParticles、emitting。
两种发射模式:爆发式用 emitting: false 配合 explode(count, x, y);持续式用 frequency 配合 start()/stop()/pause()/resume(),注意 stop() 让现存粒子自然消散,pause() 会冻结包括存活粒子在内的一切。用 startFollow(target, offsetX, offsetY) 跟随移动对象,优于在 update() 里设位置。
区域能力:addEmitZone 支持 'edge'(沿形状边缘,如圆环)与 'random'(形状内随机,如顶部降雨);addDeathZone 支持 'onEnter'/'onLeave' 销毁粒子;createGravityWell 可吸引或排斥。
性能与限制:务必设置 maxParticles,否则在高频发射下会耗尽帧预算;稳态数量约为 lifespan / frequency * quantity。其他手段包括缩短 lifespan、用 onLeave 消亡区移除屏幕外粒子、少而大的粒子、复用一个发射器、缩小纹理(一般不超过 32×32)、移动端避免 ADD、使用 stopAfter。移动端预算为全局几百个同时粒子,而非每个特效。大量同类精灵应改用 SpriteGPULayer。
排错:粒子不显示常见原因有 emitting: false 未调用 start()/explode()、纹理键不存在、frequency: -1 且未 explode()、depth 被背景遮盖、alpha 起始值为 0、lifespan 过短、容器内坐标为局部、未用 startFollow。
资料未提供官方收费、价格与平台信息。