ios粒子

http://guxiaojje.blog.163.com/blog/static/1409422912012813104917788/
CAEmitterLayer提供了一个基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。粒子画在背景层盒边界上
 
Properties:

birthRate:粒子产生系数,默认1.0;
 
emitterCells: 装着CAEmitterCell对象的数组,被用于把粒子投放到layer上;
 
emitterDepth:决定粒子形状的深度联系:emitter shape
 
emitterMode:发射模式
NSString * const kCAEmitterLayerPoints;
NSString * const kCAEmitterLayerOutline;
NSString * const kCAEmitterLayerSurface;
NSString * const kCAEmitterLayerVolume;

emitterPosition:发射位置
 
emitterShape:发射源的形状:
NSString * const kCAEmitterLayerPoint;
NSString * const kCAEmitterLayerLine;
NSString * const kCAEmitterLayerRectangle;
NSString * const kCAEmitterLayerCuboid;
NSString * const kCAEmitterLayerCircle;
NSString * const kCAEmitterLayerSphere;
 
emitterSize:发射源的尺寸大;
 
emitterZposition:发射源的z坐标位置;
 
lifetime:粒子生命周期
 
preservesDepth:不是多很清楚(粒子是平展在层上)
 
renderMode:渲染模式:
NSString * const kCAEmitterLayerUnordered;
NSString * const kCAEmitterLayerOldestFirst;
NSString * const kCAEmitterLayerOldestLast;
NSString * const kCAEmitterLayerBackToFront;
NSString * const kCAEmitterLayerAdditive;
 
scale:粒子的缩放比例:
 
seed:用于初始化随机数产生的种子
 
spin:自旋转速度
 
velocity:粒子速度
 
 
CAEmitterCell
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:是否归档莫键值
+++++++++++++++++++++++++++++++++++++
http://www.cnblogs.com/davidxie/archive/2012/08/18/2645020.html

做一个UIView的子类

 

1.设一个私有instance variable关于CAEmitterLayer的。这里如:caeEmitter

2.打开awakeFromNib功能,把caeEmitter设为该UIView CALayer的默认Layer。

  具体可以这么写 caeEmitter = (CAEmitterLayer *)self.layer

  同时也要在.m文件中写一个返回类类型的方法,不然使用者(viewController)还是会认为这只是CALayer

  + (class)layerClass

  {

    return [CAEmitter Class];

  }

3.然后可以设caeEmitter的默认大小以及在屏幕中的位置

4.最重要的一步到来了,那就是CAEmitterCell。创建一个CAEmitterCell的子类,可以这么创建

  CAEmitterCell *effectCell = [CAEmitterCell emitterCell];

 effectCell 有几个重要属性这里务必要介绍一下,

  1.birthRate 顾名思义没有这个也就没有effectCell,这个必须要设置,具体含义是每秒某个点产生的effectCell数量

  2.lifetime & lifetimeRange 表示effectCell的生命周期,既在屏幕上的显示时间要多长。

  3.contents 这个和CALayer一样,只是用来设置图片

  4.name 这个是当effectCell存在caeEmitter 的emitterCells 中用来辨认的。用到setValue forKeyPath比较有用

  5.velocity & velocityRange & emissionRange 表示cell向屏幕右边飞行的速度 & 在右边什么范围内飞行 & +- 角度扩散

5.把cell做成array放进caeEmitter.emitterCells里去。caeEmitter.renderMode有个效果很不错,能变成火的就是kCAEmitterLayerAdditive



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值