粒子效果生成器|粒子效果生成器 CAEmitterLayer

CAEmitterLayer:粒子发射图层,用于控制粒子展现范围,发射位置,发射形状,渲染模式等。
CAEmitterCell:粒子发射单元,对粒子系统中每个粒子做更加精细的控制。如粒子的移动速度,方向,范围。粒子单元都受到 CAEmitterLayer 图层的限制。
【粒子效果生成器|粒子效果生成器 CAEmitterLayer】对于 CAEmitterLayerCAEmitterCell 常用的属性,在下面的代码里有注释。
生成一个烛光火焰

func Createfire() { let emitterCell = CAEmitterCell() // xy 平面的发射角度 emitterCell.emissionLongitude = CGFloat(Double.pi) // 每秒粒子创建的个数 emitterCell.birthRate = 50 // 粒子的生命周期 emitterCell.lifetime = 6.0 // 粒子的速度 emitterCell.velocity = -1 // 粒子的速度范围 emitterCell.velocityRange = 3 // 周围发射角度 emitterCell.emissionRange = 1.1 // y 轴加速度方向 emitterCell.yAcceleration = -1 // 缩放比例 emitterCell.scaleSpeed = 0.3 // 可以混合图片内容颜色的混合色 emitterCell.color = UIColor(red: 0.8, green: 0.4, blue: 0.2, alpha: 0.1).cgColor // 粒子单元的内容 emitterCell.contents = UIImage(named: "fire")?.cgImagelet emitterLayer = CAEmitterLayer() // 图层 frame emitterLayer.frame = view.bounds // 发射源位置 emitterLayer.emitterPosition = view.center // 发射源大小 emitterLayer.emitterSize = CGSize(width: 3, height: 5) // 渲染模式 emitterLayer.renderMode = kCAEmitterLayerAdditive // 相对emitterShape粒子是如何创建的 emitterLayer.emitterMode = kCAEmitterLayerOutline // 发射的形状 emitterLayer.emitterShape = kCAEmitterLayerLine // 粒子单元 emitterLayer.emitterCells = [emitterCell] view.layer.addSublayer(emitterLayer) }

粒子效果生成器|粒子效果生成器 CAEmitterLayer
文章图片
烛光火焰.gif

    推荐阅读