關於粒子發射(CAEmitterLayer)

來源:互聯網
上載者:User

標籤:

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

 

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.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

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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.