關於粒子發射(CAEmitterLayer)

技術是條長而遠的路,只有不斷學習豐富本身的技能才能讓本身行走在路上!git

 

CAEmitterCell

CAEmitterCell: CAEmitterCell是粒子發射系統裏的粒子,用CAEmitterCell來定義你所須要的粒子的樣式,圖片,顏色,方向,運動,縮放比例和生命週期等等。swift

  • 屬性列表
屬性名 做用
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)
相關文章
相關標籤/搜索