美文网首页
CAEmitterLayer,粒子发射系统

CAEmitterLayer,粒子发射系统

作者: F麦子 | 来源:发表于2017-03-24 11:31 被阅读61次

转载:http://blog.csdn.net/wang631106979/article/details/51258020

基于CAEmitterLayer做的点赞效果图:

CAEmitterCell

CAEmitterCell: CAEmitterCell是粒子发射系统里的粒子,用CAEmitterCell来定义你所需要的粒子的样式,图片,颜色,方向,运动,缩放比例和生命周期等等。

属性列表

属性名作用

alphaRange一个粒子的颜色alpha能改变的范围

alphaSpeed粒子透明度在生命周期内的改变速度

birthrate每秒发射的粒子数量

blueRange一个粒子的颜色blue 能改变的范围

blueSpeed粒子blue在生命周期内的改变速度

color粒子的颜色

contents是个CGImageRef的对象,既粒子要展现的图片

contentsRect应该画在contents里的子rectangle

emissionLatitude发射的z轴方向的角度

emissionLongitudex-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子旋转角度范围

velocity速度

velocityRange速度范围

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

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

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

- 代码示例

let explosionCell          = CAEmitterCell()explosionCell.name="explosion"explosionCell.alphaRange=0.10explosionCell.alphaSpeed= -1.0explosionCell.lifetime=0.7explosionCell.lifetimeRange=0.3explosionCell.birthRate=0explosionCell.velocity=40.00explosionCell.velocityRange=10.00explosionCell.scale=0.03explosionCell.scaleRange=0.02explosionCell.contents= UIImage(named:"Sparkle")?.CGImage

1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

CAEmitterLayer

CAEmitterLayer:CAEmitterLayer类提供了一个粒子发射器系统为核心的动画。这些粒子是由CAEmitterCell组成的实例,它相当于一个管理者,来管理 CAEmitterCell的发射的一些细节,比如发射的位置,发射形状等等。

属性列表

属性名做用

emitterPosition发射位置

emitterSize发射源的大小

emitterMode发射模式

emitterShape发射源的形状

renderMode渲染模式

birthRate粒子产生系数,默认1.0

emitterCells装着CAEmitterCell对象的数组,被用于把粒子投放到layer上

emitterDepth决定粒子形状的深度联系

emitterZposition发射源的z坐标位置

lifetime粒子生命周期

scale粒子的缩放比例

seed用于初始化随机数产生的种子

spin自旋转速度

velocity粒子速度

代码示例

explosionLayer = CAEmitterLayer()explosionLayer.name="emitterLayer"explosionLayer.emitterShape= kCAEmitterLayerCircle;explosionLayer.emitterMode= kCAEmitterLayerOutline;explosionLayer.emitterSize= CGSizeMake(10,0);explosionLayer.emitterCells= [explosionCell]explosionLayer.renderMode= kCAEmitterLayerOldestFirst;explosionLayer.masksToBounds= falseexplosionLayer.position= CGPointMake(self.frame.size.width/2.0, self.frame.size.height/2.0);explosionLayer.zPosition= -1;layer.addSublayer(explosionLayer)

相关文章

网友评论

      本文标题:CAEmitterLayer,粒子发射系统

      本文链接:https://www.haomeiwen.com/subject/owoxottx.html