標籤:
技術是條長而遠的路,只有不斷學習豐富自己的技能才能讓自己行走在路上!
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)