粒子效果生成器|粒子效果生成器 CAEmitterLayer
CAEmitterLayer:粒子发射图层,用于控制粒子展现范围,发射位置,发射形状,渲染模式等。
CAEmitterCell:粒子发射单元,对粒子系统中每个粒子做更加精细的控制。如粒子的移动速度,方向,范围。粒子单元都受到 CAEmitterLayer 图层的限制。
【粒子效果生成器|粒子效果生成器 CAEmitterLayer】对于 CAEmitterLayer
和 CAEmitterCell
常用的属性,在下面的代码里有注释。
生成一个烛光火焰
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)
}
文章图片
烛光火焰.gif
推荐阅读
- 急于表达——往往欲速则不达
- 布丽吉特,人生绝对的赢家
- 第三节|第三节 快乐和幸福(12)
- Y房东的后半生14
- 赢在人生六项精进二阶Day3复盘
- 学无止境,人生还很长
- 我错了,余生不再打扰
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 别怪生活,自己作的!
- 人生两件宝(好身体,好心情!)