zoukankan      html  css  js  c++  java
  • ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo(转)

     

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

    分类: cocoa SDK

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

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

    demo截屏:

    1.png


    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.

    }

  • 相关阅读:
    shell 操作钉钉机器人实现告警提醒
    谨慎 mongodb 关于数字操作可能导致类型及精度变化
    数据库如何应对保障大促活动
    SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -1(服务器视角)
    通过 Telegraf + InfluxDB + Grafana 快速搭建监控体系的详细步骤
    MySQL数据库Inception工具学习与测试 笔记
    MongoDB 中数据的替换方法实现 --类Replace()函数功能
    MongoDB 中的【加减乘除】运算
    MySQL索引设计需要考虑哪些因素?
    关于SQL Server 数据库归档的一些思考和改进
  • 原文地址:https://www.cnblogs.com/lingzeng/p/3876663.html
Copyright © 2011-2022 走看看