CAEmitterLayer 粒子发射器
spin:粒子的旋转位置
scale:粒子的缩放大小
seed:初始化随机的粒子种子
lifetime:粒子的存活时间,默认为1s
birthRate:粒子的创建速率,默认为1/s
velocity:粒子的运动速度
emitterCells:粒子单元数组
emitterSize:发射器尺寸大小
emitterDepth:设置发射器的深度,在某些模式下会产生立体效果
emitterPosition:发射器在xy平面的中心位置
emitterZPosition:发射器在z平面的位置
preservesDepth:是否开启三维空间效果
emitterShape:发射器的形状,这个参数的几个系统字符串如下:
kCAEmitterLayerLine:线的形状,粒子从一条线发出
kCAEmitterLayerPoint:点的形状,粒子从一个点发出
kCAEmitterLayerRectangle:矩形形状,粒子从一个矩形发出
kCAEmitterLayerCuboid:立方体形状,会影响z平面的效果
kCAEmitterLayerCircle:圆形形状,粒子会在圆形范围内发出
kCAEmitterLayerSphere:球形
emitterMode:发射器的发射模式,参数如下:
kCAEmitterLayerPoints:从发射器中发出
kCAEmitterLayerOutline:从发射器边缘发出
kCAEmitterLayerSurface:从发射器表面发出
kCAEmitterLayerVolume:从发射器中点发出
renderMode:发射器渲染模式,参数如下:
kCAEmitterLayerUnordered:这种模式下,粒子是无序出现的,多个发射源将混合
kCAEmitterLayerOldestFirst:这种模式下,声明久的粒子会被渲染在最上层
kCAEmitterLayerOldestLast:这种模式下,年轻的粒子会被渲染在最上层
kCAEmitterLayerBackToFront:这种模式下,粒子的渲染按照Z轴的前后顺序进行
kCAEmitterLayerAdditive:这种模式会进行粒子混合
CAEmitterCell 粒子单元
- 设置好了粒子发射器,我们还需要初始化一些粒子单元,设置具体粒子的属性,我们使用到的类是
CAEmitterCell
这个类。
初始化方法
+ (instancetype)emitterCell;
常用属性
name:设置发射单元的名称
enabled:是否允许发射器渲染
birthRate:粒子的创建速率
lifetime:粒子的生存时间
lifetimeRange:粒子的生存时间容差
emissionLatitude:粒子在Z轴方向的发射角度
emissionLongitude:粒子在xy平面的发射角度
emissionRange:粒子发射角度的容差
velocity:粒子的速度
velocityRange:粒子速度的容差
xAcceleration:x方向的加速度
yAcceleration:y方向的加速度
zAcceleration:z方向的加速度
spin:旋转度
spinRange:旋转度容差
contents:渲染粒子,可以设置为一个CGImage的对象
contentsRect:渲染的范围