Swift 粒子发射器

 

 

        let emitter = CAEmitterLayer()

        emitter.frame = view.frame

        view.layer.addSublayer(emitter)

        emitter.emitterPosition = CGPoint(x: 100, y: 100)

        emitter.renderMode = kCAEmitterLayerOldestFirst

 

        let sun = CAEmitterCell()

        sun.contents = UIImage(named: "sun-icon")?.cgImage

        sun.color = UIColor(red: 1 , green: 0.5, blue: 1, alpha: 1).cgColor

        sun.birthRate = 500

        sun.lifetime = 0.5;

        

        sun.velocity = 50;

        sun.velocityRange = 10;

        sun.emissionRange = CGFloat(Double.pi) ;

        emitter.emitterCells = [sun];

 

 

 


CAEmitterLayer属性:

 

  • emitterCells:CAEmitterCell对象的数组,用于把粒子投放到layer上。
  • birthRate:粒子产生速度,默认1个每秒。
  • lifetime:粒子纯在时间,默认1秒。
  • emitterPosition:发射器在xy平面的中心位置。
  • emitterZPosition:发射器在z平面的位置。
  • preservesDepth:是否开启三维效果。
  • velocity:粒子运动速度。
  • scale:粒子的缩放比例。
  • spin:自旋转速度。
  • seed:用于初始化随机数产生的种子。
  • emitterSize:发射器的尺寸。
  • emitterDepth:发射器的深度。
  • emitterShape:发射器的形状
  • kCAEmitterLayerPoint;//点的形状,粒子从一个点发出
  • kCAEmitterLayerLine;//线的形状,粒子从一条线发出
  • kCAEmitterLayerRectangle;//矩形形状,粒子从一个矩形中发出
  • kCAEmitterLayerCuboid;//立方体形状,会影响Z平面的效果
  • kCAEmitterLayerCircle;//圆形,粒子会在圆形范围发射
  • kCAEmitterLayerSphere;//球型
  • emitterMode:发射器发射模式
  • kCAEmitterLayerPoints;//从发射器中发出
  • kCAEmitterLayerOutline;//从发射器边缘发出
  •  kCAEmitterLayerSurface;//从发射器表面发出
  •  kCAEmitterLayerVolume;//从发射器中点发出
  • renderMode:发射器渲染模式
  • kCAEmitterLayerUnordered;//粒子无序出现
  • kCAEmitterLayerOldestFirst;//声明久的粒子会被渲染在最上层
  • kCAEmitterLayerOldestLast;//年轻的粒子会被渲染在最上层
  • kCAEmitterLayerBackToFront;//粒子的渲染按照Z轴的前后顺序进行
  • kCAEmitterLayerAdditive;//粒子混合

 

 

CAEmitterCell属性:

 

    • emitterCell:初始化方法。
    • name:粒子的名字。
    • color:粒子的颜色。
    • enabled:粒子是否渲染。
    • contents:渲染粒子,是个CGImageRef的对象,即粒子要展示的图片。
    • contentsRect:渲染范围。
    • birthRate:粒子产生速度。

    • lifetime:生命周期。
    • lifetimeRange:生命周期增减范围。
    • velocity:粒子运动速度。
    • velocityRange:速度范围。
    • spin:粒子旋转角度。
    • spinrange:粒子旋转角度范围。
    • scale:缩放比例。
    • scaleRange:缩放比例范围。
    • scaleSpeed:缩放比例速度。
    • alphaRange::一个粒子的颜色alpha能改变的范围。
    • alphaSpeed::粒子透明度在生命周期内的改变速度。
    • redRange:一个粒子的颜色red能改变的范围。
    • redSpeed:粒子red在生命周期内的改变速度。
    • blueRange:一个粒子的颜色blue能改变的范围。
    • blueSpeed:粒子blue在生命周期内的改变速度。
    • greenRange:一个粒子的颜色green能改变的范围。
    • greenSpeed:粒子green在生命周期内的改变速度。
    • xAcceleration:粒子x方向的加速度分量。
    • yAcceleration:粒子y方向的加速度分量。
    • zAcceleration:粒子z方向的加速度分量。
    • emissionRange:粒子发射角度范围。
    • emissionLongitude:粒子在xy平面的发射角度。
    • emissionLatitude:发射的z轴方向的发射角度。
posted @ 2017-11-14 15:40  小炮陈  阅读(691)  评论(0编辑  收藏  举报