跳到主要内容

粒子与叠加:金币、星光和环境效果

依据:Cocos Creator 3.8 粒子与 UI 合批文档;示例为浏览器原理演示,微信真机未验证。

粒子不是一种神奇图片​

一个粒子通常有位置、速度、出生时间、寿命、尺寸、颜色和纹理引用。发射器持续创建粒子,更新器推进它们,渲染器把存活粒子画出来,寿命结束后回收。雪花、闪光和烟雾可以共用这一模型,但运动方程、纹理和混合方式不同。

粒子从发射到回收的生命周期,以及大小和透明度随年龄变化

在 奖励与粒子实验台 中分别调整数量、寿命和速度。持续发射时,平均存活数量近似受“每秒发射量 × 平均寿命”影响,因此只延长寿命也可能增加画面中的粒子。爆发式效果则由一次生成量和后续补发控制。

金币飞行与随机烟雾的区别​

飞向右上角货币栏的金币有明确终点,适合使用路径插值;环境星光更适合随机初值加简单运动。金币可以先散开再汇聚,增强视觉层次,但到账应由业务结果决定。即使用户跳过动画或切到后台,奖励数量也应保持正确。

展开:与帧率无关的粒子更新思路
function advance(p: {x: number; y: number; vx: number; vy: number; age: number}, dt: number) {
p.age += dt;
p.x += p.vx * dt;
p.y += p.vy * dt;
}

dt 使用秒。实际实现还应处理后台返回后的大时间间隔、寿命结束和回收;不要让一次长暂停变成无限补发。

为什么同样的数量成本不同​

小颗粒与大透明光斑的覆盖区域比较,重叠次数不同

一百个小星点与一百张覆盖半屏的光斑,不是同样的渲染负担。透明区域即使看起来很淡,也可能占用像素处理;多层重叠会重复处理同一区域。合批可以降低部分提交开销,却不能让所有像素计算消失。画面过亮时也先检查粒子尺寸和混合方式,而非只减低发射数量。

常见失败:暂停后突然喷出一大片​

如果发射器根据“距离上次更新过去多久”补齐所有遗漏,后台恢复可能瞬间创建大量对象。制定明确策略:装饰效果可以跳过离屏时间,必须连续的演出按时间轴恢复到当前状态;业务进度单独管理。

选择更便宜的表达​

固定形态的小型光效可用少量序列帧;需要附着按钮轮廓的流光可考虑 Shader;需要可交互路径的金币用程序曲线。只有确实需要随机群体运动时才使用完整粒子系统。系统参数再多,也无法替代对节奏、轮廓和焦点的设计。

浏览器原理演示录制:奖励粒子运动与透明叠加浏览器原理演示录制 · 循环 GIF

动图来源:本站浏览器示例录制,性能不能外推至微信真机。完整案例见 奖励特效。

官方来源与适用范围​

资料核查日期:2026-10-30。文中的案例参数与图解用于教学;目标项目应按所用版本及平台重新验证。