一、屬性及含義
1、CAEmitterLayer: 粒子發射器
birthRate: 每秒發射粒子的數量
emitterShape: 按什麼樣式發射
/** `emitterShape' values. **/
//發射源是一個點
@available(iOS 5.0, *)
public let kCAEmitterLayerPoint: String
//發射源是一條線
@available(iOS 5.0, *)
public let kCAEmitterLayerLine: String
//發射源是方形的四角
@available(iOS 5.0, *)
public let kCAEmitterLayerRectangle: String
//發射源是立方體的,需要設置z座標zPosition
@available(iOS 5.0, *)
public let kCAEmitterLayerCuboid: String
//發射源是圓形的
@available(iOS 5.0, *)
public let kCAEmitterLayerCircle: String
//發射源是球體的,需要設置z座標
@available(iOS 5.0, *)
public let kCAEmitterLayerSphere: String
emitterMode: 發射的樣式
/** `emitterMode' values. **/
// 以點的樣式發射
CA_EXTERN NSString * const kCAEmitterLayerPoints
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
//以輪廓(線)的樣式發射
CA_EXTERN NSString * const kCAEmitterLayerOutline
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
//以面的樣式發射
CA_EXTERN NSString * const kCAEmitterLayerSurface
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
/以團的樣式發射
CA_EXTERN NSString * const kCAEmitterLayerVolume
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
renderMode: 渲染的模式
/** `renderMode' values. **/
//無序的
@available(iOS 5.0, *)
public let kCAEmitterLayerUnordered: String
//最後一個粒子放在第一個
@available(iOS 5.0, *)
public let kCAEmitterLayerOldestFirst: String
//最後一個粒子放在最後一個
@available(iOS 5.0, *)
public let kCAEmitterLayerOldestLast: String
//後面的粒子放在前面
@available(iOS 5.0, *)
public let kCAEmitterLayerBackToFront: String
//疊加效果
@available(iOS 5.0, *)
public let kCAEmitterLayerAdditive: String
2、emitterCells
表示的是發射的粒子,不是一個圖層
contents: 粒子的內容
lifetime: 存活時間
lifetimeRange: 存活時間的範圍,每一個layer 都有自己的隨機數發生器,粒子的屬性大部分都被定義爲一個平均值和一個範圍值,如粒子的速度,這個屬性的值分佈的區間:[M - R /2, M + R/2]
然後,這個公式裏面
M:均值(emitterCell.lifetime)
R:範圍值
birthRate: 每秒粒子的產生
emissionLatitude: 散發的維度他表示的是一個弧度(上下)
emissionLongitude: 散發的經度(左右)
velocityRange: 發送速度的範圍
xAcceleration,yAcceleration,zAcceleration,x,y,軸的速度慣性動力
emissionRange: 散發的範圍
name: 粒子的名字可以通過名字找到粒子
//可參考:https://www.cnblogs.com/densefog/p/5424155.html