iOS开发进阶 - CAEmitterLayer,粒子发射系统

原创 2016年04月27日 00:45:45

CAEmitterLayer是ios5中苹果引入了一个新的CALayer子类。CAEmitterLayer是一个高性能的粒子引擎,可以用来做一些绚丽的粒子系统,比如爆炸,雪花火焰等等。

基于CAEmitterLayer做的点赞效果图:
效果图

CAEmitterCell

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

  • 属性列表
属性名 作用
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 子旋转角度范围
velocity 速度
velocityRange 速度范围
xAcceleration 粒子x方向的加速度分量
yAcceleration 粒子y方向的加速度分量
zAcceleration 粒子z方向的加速度分量

- 代码示例

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

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 = false
explosionLayer.position      = CGPointMake(self.frame.size.width/2.0, self.frame.size.height/2.0);
explosionLayer.zPosition     = -1;
layer.addSublayer(explosionLayer)
版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS-直播中粒子效果

转载注明出处: http://blog.csdn.net/qxuewei/article/details/53942647粒子效果的应用场景: 主播房间右下角粒子动画 雪花/下雨/烟花等效果 Q...
  • qiuxuewei2012
  • qiuxuewei2012
  • 2016年12月30日 17:43
  • 1440

iOS动画开发之——炫酷的粒子效果

iOS动画开发之五——炫酷的粒子效果 在上几篇博客中,我们对UIView层的动画以及iOS的核心动画做了介绍,基本已经可以满足iOS应用项目中所有的动画需求,如果你觉得那些都还不够炫...
  • llf03162788
  • llf03162788
  • 2016年02月23日 18:17
  • 1770

ios粒子效果

  • 2014年10月11日 10:02
  • 4.37MB
  • 下载

iOS---使用CAEmitterLayer制作发射粒子的特效

CAEmitterLayer是QuartzCore提供的粒子引擎, 可用于制作美观的粒子特效. 如下图是一个粒子特效的截图, 实际的动态效果会更好, 因为gif制作比较模糊就没有贴出来.CAEmit...
  • icetime17
  • icetime17
  • 2016年06月18日 09:40
  • 1872

iOS---使用CAEmitterLayer制作发射粒子的特效

CAEmitterLayer是QuartzCore提供的粒子引擎, 可用于制作美观的粒子特效. 如下图是一个粒子特效的截图, 实际的动态效果会更好, 因为gif制作比较模糊就没有贴出来.CAEmit...
  • icetime17
  • icetime17
  • 2016年06月18日 09:40
  • 1872

iOS CAEmitterLayer简介,基于CAEmitterLayer实现粒子效果 —— HERO博客

基于CAEmitterLayer实现粒子效果,音符弹出、花瓣飘落、太阳散射。
  • hero_wqb
  • hero_wqb
  • 2016年01月23日 00:44
  • 1585

CAEmitterLayer(粒子系统)学习笔记(含Demo)

分类: iOS-粒子系统2013-05-08 17:35 793人阅读 评论(0) 收藏 举报 粒子系统iOS 目录(?)[+] 一、系统剖析 在UIKit...
  • yongyinmg
  • yongyinmg
  • 2014年08月30日 19:11
  • 8003

IOS 使用 CAEmitterLayer实现粒子效果

在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer。CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果。 CAE...
  • u011646339
  • u011646339
  • 2016年07月08日 11:42
  • 1996

iOS 烟花撒花效果,图层渐变,图层倒影特效。CAEmitterLayer粒子发射器

iOS 烟花撒花效果,图层渐变,图层倒影特效。CAEmitterLayer粒子发射器上一节我写了一个关于视图图层的相关类,有关CALayer这个类的使用和一些用法,具体看这里,就是我们在处理视图的时候...
  • qq_29050533
  • qq_29050533
  • 2016年04月19日 12:56
  • 1793

IOS粒子系统的实现

IOS粒子系统的实现  IOS的CoreGraphic可以实现简单的粒子系统的效果 我们来简单介绍一下,实现粒子系统其实非常简单,比较复杂的是其参数的设置 实现粒子系统主要用到两个类 CAEmit...
  • hahahakonghee
  • hahahakonghee
  • 2015年11月18日 11:43
  • 911
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发进阶 - CAEmitterLayer,粒子发射系统
举报原因:
原因补充:

(最多只允许输入30个字)