ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo(转)

 

转载自:http://blog.csdn.net/mad2man/article/details/16898369

分类: cocoa SDK

 

demo功能:基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果。

 

demo说明:基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。 粒子画在背景层盒边界上

 

demo截屏:

 

ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo(转)


 

 

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方向的加速度分量

 

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    

    CAEmitterLayer *snowemitter = [CAEmitterLayer layer];

    snowemitter.emitterPosition = CGPointMake(self.view.bounds.size.width / 2.0,  -30);

    snowemitter.emitterSize   = CGSizeMake(self.view.bounds.size.width ,  0.0);

    snowemitter.emitterMode   = kCAEmitterLayerOutline;

    snowemitter.emitterShape  = kCAEmitterLayerLine;

    CAEmitterCell *snowflake  = [CAEmitterCell emitterCell];

    

    snowflake.birthRate       = 2.0;

    snowflake.lifetime        = 120.0;

    snowflake.velocity        = -10;

    snowflake.velocityRange   = 10;

    snowflake.yAcceleration   = 2;

    snowflake.emissionRange   = 0.5 * M_PI;

    snowflake.spinRange       = 0.25 * M_PI;

    snowflake.contents        = (id) [[UIImage imageNamed:@"DazFlake"] CGImage];

    snowflake.color           = [[UIColor colorWithRed:0.600 green:0.658 blue:0.743 alpha:1.000] CGColor];

 

    snowemitter.shadowOpacity = 1.0;

    snowemitter.shadowRadius  = 0.0;

    snowemitter.shadowOffset  = CGSizeMake(0.0, 1.0);

    snowemitter.shadowColor   = [[UIColor blackColor] CGColor];

    snowemitter.emitterCells  = [NSArray arrayWithObject:snowflake];

    [self.view.layer insertSublayer:snowemitter above:0];

    // Do any additional setup after loading the view.

}

 

ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo(转),布布扣,bubuko.com

ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo(转)

上一篇:Android -- 资源使用和总结经验分享


下一篇:第一篇:Unity3d游戏开发之移动端完整包更新方案