美文网首页
粒子效果生成器 CAEmitterLayer

粒子效果生成器 CAEmitterLayer

作者: 彡廿 | 来源:发表于2017-05-01 19:18 被阅读71次

    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)
        }
    
    
    烛光火焰.gif

    相关文章

      网友评论

          本文标题:粒子效果生成器 CAEmitterLayer

          本文链接:https://www.haomeiwen.com/subject/drqqtxtx.html