iOS CAEmitterLayer 實現粒子效果

demo功能:基於CAEmitterLayer的雪花,煙花,火焰,愛心等效果。


demo說明:基於Core Animation的粒子發射系統,粒子用CAEmitterCell來初始化。 粒子畫在背景層盒邊界上


demo截屏:


1.png


demo代碼說明:

在iOS 5中,蘋果引入了一個新的CALayer子類叫做CAEmitterLayerCAEmitterLayer是一個高性能的粒子引擎,被用來創建實時例子動畫如:煙霧,火,雨等等這些效果


emitterPosition:發射位置


emitterSize:發射源的大小;

emitterMode:發射模式

  1. NSString * const kCAEmitterLayerPoints;
  2. NSString * const kCAEmitterLayerOutline;
  3. NSString * const kCAEmitterLayerSurface;
  4. NSString * const kCAEmitterLayerVolume;
複製代碼
emitterShape:發射源的形狀:
  1. NSString * const kCAEmitterLayerPoint;
  2. NSString * const kCAEmitterLayerLine;
  3. NSString * const kCAEmitterLayerRectangle;
  4. NSString * const kCAEmitterLayerCuboid;
  5. NSString * const kCAEmitterLayerCircle;
  6. NSString * const kCAEmitterLayerSphere;
複製代碼
renderMode:渲染模式:
  1. NSString * const kCAEmitterLayerUnordered;
  2. NSString * const kCAEmitterLayerOldestFirst;
  3. NSString * const kCAEmitterLayerOldestLast;
  4. NSString * const kCAEmitterLayerBackToFront;
  5. NSString * const kCAEmitterLayerAdditive;
複製代碼
Properties:
        
birthRate:粒子產生係數,默認1.0;

emitterCells: 裝着CAEmitterCell對象的數組,被用於把粒子投放到layer上;

emitterDepth:決定粒子形狀的深度聯繫:emitter shape

emitterZposition:發射源的z座標位置;

lifetime:粒子生命週期

preservesDepth:不是多很清楚(粒子是平展在層上)


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:生命週期範圍      lifetime= lifetime(+/-) lifetimeRange

magnificationFilter:不是很清楚好像增加自己的大小

minificatonFilter:減小自己的大小

minificationFilterBias:減小大小的因子

name:粒子的名字

redRange:一個粒子的顏色red 能改變的範圍;

redSpeed; 粒子red在生命週期內的改變速度;

scale:縮放比例:

scaleRange:縮放比例範圍;

scaleSpeed:縮放比例速度:

spin:子旋轉角度

spinrange:子旋轉角度範圍

style:不是很清楚:

velocity:速度

velocityRange:速度範圍

xAcceleration:粒子x方向的加速度分量

yAcceleration:粒子y方向的加速度分量

zAcceleration:粒子z方向的加速度分量


來源:http://blog.csdn.net/donny_zhang/article/details/9096945


demo:https://github.com/lichtschlag/Dazzle


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章