// 创建雪花类型的粒子 CAEmitterCell *snowFlake = [CAEmitterCell emitterCell]; // 粒子的名字 snowFlake.name = @"snow"; // 粒子参数的速度乘数因子 snowFlake.birthRate = (_birthRate > 0 ? _birthRate : 1.0f); // 粒子生命周期 snowFlake.lifetime = (_lifetime > 0 ? _lifetime : 60); // 粒子速度 snowFlake.velocity = (_speed > 0 ? _speed : 10.0f); // 粒子的速度范围 snowFlake.velocityRange = (_speedRange > 0 ? _speedRange : 10.f); // 粒子y方向的加速度分量(可以理解为重力) snowFlake.yAcceleration = (_gravity != 0 ? _gravity : 2.f); // 每个发射的粒子的初始时候随机的角度 snowFlake.emissionRange = 0.5 * M_PI; // 粒子旋转角度 snowFlake.spinRange = 0.25 * M_PI; // 获取图片 snowFlake.contents = (id)_snowImage.CGImage; // 设置雪花形状的粒子的颜色 snowFlake.color = (_snowColor == nil ? [[UIColor whiteColor] CGColor] :_snowColor.CGColor); // 尺寸 snowFlake.scale = 0.5f; // 尺寸变化范围 snowFlake.scaleRange = 0.3f; // 添加粒子 self.emitterLayer.emitterCells = @[snowFlake];
/**
* CAEmitterLayer参数详解
emitterCells
附着在当前layer上的粒子的数组,每一个元素必须是CAEmitterCell对象
[支持动画] birthRate
每秒钟生成粒子的速率,默认值是1,其作为乘积器影响emitterCells中的对象
[支持动画] lifetime
粒子的生命周期,默认值为1,其作为乘积器影响emitterCells中的对象
[支持动画] emitterPosition emitterZPosition
发射器中心位置,默认值为(0, 0, 0)
[支持动画] emitterSize emitterDepth
发射器尺寸的大小,默认值为(0, 0, 0),根据emitterPosition与emitterZPosition值的不同,会导致部分值失效
[支持动画] velocity
粒子的速率,默认值为1,其作为乘积器影响emitterCells中的对象
[支持动画] scale
粒子的尺寸,默认值为1,其作为乘积器影响emitterCells中的对象
[支持动画] spin
粒子的旋转,默认值为1,其作为乘积器影响emitterCells中的对象
emitterShape
发射器的形状类型,包括以下这几种'point'(默认值),'line','rectangle','circle','cuboid'与'sphere'
emitterMode
发射器模式,包括以下几种'points','outline','surface'与'volume'(默认值)
renderMode
渲染模式
preservesDepth
景深模式开关,默认为NO
*/
/*
CAEmitterCell类代从从CAEmitterLayer射出的粒子;
emitter cell定义了粒子发射的方向。
alphaRange: 一个粒子的颜色alpha能改变的范围;
alphaSpeed:粒子透明度在生命周期内的改变速度;
birthrate:粒子参数的速度乘数因子;
blueRange:一个粒子的颜色blue 能改变的范围;
blueSpeed: 粒子blue在生命周期内的改变速度;
color:粒子的颜色
contents:是个CGImageRef的对象,既粒子要展现的图片;
contentsRect:应该画在contents里的子rectangle:
emissionLatitude:发射的z轴方向的角度
emissionLongitude:x-y平面的发射方向
emissionRange;周围发射角度
emitterCells:粒子发射的粒子
enabled:粒子是否被渲染
greenrange: 一个粒子的颜色green 能改变的范围;
greenSpeed: 粒子green在生命周期内的改变速度;
lifetime:生命周期
lifetimeRange:生命周期范围
magnificationFilter:不是很清楚好像增加自己的大小
minificatonFilter:减小自己的大小
minificationFilterBias:减小大小的因子
name:粒子的名字
redRange:一个粒子的颜色red 能改变的范围;
redSpeed; 粒子red在生命周期内的改变速度;
scale:缩放比例:
scaleRange:缩放比例范围;
scaleSpeed:缩放比例速度:
spin:子旋转角度
spinrange:子旋转角度范围
style:不是很清楚:
velocity:速度
velocityRange:速度范围
xAcceleration:粒子x方向的加速度分量
yAcceleration:粒子y方向的加速度分量
zAcceleration:粒子z方向的加速度分量
Class Methods
defauleValueForKey: 更具健获得值;
emitterCell:初始化方法
shouldArchiveValueForKey:是否归档莫键值
*/