粒子效果生成器 CAEmitterLayer

CAEmitterLayer:粒子发射图层,用于控制粒子展现范围,发射位置,发射形状,渲染模式等。

CAEmitterCell:粒子发射单元,对粒子系统中每个粒子做更加精细的控制。如粒子的移动速度,方向,范围。粒子单元都受到 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")?.cgImage

        let 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_第1张图片
烛光火焰.gif

你可能感兴趣的:(粒子效果生成器 CAEmitterLayer)