iOS实现“下雨下雪”动画效果和“烟花”动画效果
生活随笔
收集整理的这篇文章主要介绍了
iOS实现“下雨下雪”动画效果和“烟花”动画效果
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
“下雨”的动画效果
一、效果展示
二、实现流程
- 设置背景
- 设置发射源
- 设置发射粒子
- 点击事件处理
“烟花”的动画效果
一、效果展示
实现
self.view.backgroundColor = UIColor.black// cell产生在底部,向上移动let fireworkdEmitter = CAEmitterLayer.init()fireworkdEmitter.emitterPosition = CGPoint.init(x: self.view.frame.size.width/2, y: self.view.frame.size.height)fireworkdEmitter.emitterMode = CAEmitterLayerEmitterMode.outlinefireworkdEmitter.emitterShape = CAEmitterLayerEmitterShape.linefireworkdEmitter.renderMode = CAEmitterLayerRenderMode.additivefireworkdEmitter.seed = (arc4random()%100)+1// 创建火箭celllet rocket = CAEmitterCell.init()rocket.birthRate = 1rocket.emissionRange = CGFloat(0.25 * Double.pi);rocket.velocity = 300rocket.velocityRange = 75rocket.lifetime = 1.02rocket.contents = UIImage.init(named: "rain_white")?.cgImagerocket.scale = 0.5rocket.scaleRange = 0.5rocket.color = UIColor.red.cgColorrocket.greenRange = 1.0rocket.redRange = 1.0rocket.blueRange = 1.0rocket.spinRange = CGFloat(Double.pi)// 破裂对象不能被看到,但会产生火花// 这里改变颜色,因为火花继承它的值let fireCell = CAEmitterCell.init()fireCell.birthRate = 1fireCell.velocity = 0fireCell.scale = 1fireCell.redSpeed = -1.5fireCell.blueSpeed = +1.5fireCell.greenSpeed = +1.5fireCell.lifetime = 0.34// and finally, the sparkslet spark = CAEmitterCell.init()// 炸开后产生400个小烟花spark.birthRate = 400// 速度spark.velocity = 125// 360度spark.emissionRange = CGFloat(2 * Double.pi)// 重力spark.yAcceleration = 40spark.lifetime = 3spark.contents = UIImage.init(named: "rain_white")?.cgImagespark.scaleSpeed = -0.2spark.greenSpeed = -0.1spark.redSpeed = +0.1spark.blueSpeed = -0.1spark.alphaSpeed = -0.25spark.spin = CGFloat(2 * Double.pi)spark.spinRange = CGFloat(2 * Double.pi)fireworkdEmitter.emitterCells = [rocket]rocket.emitterCells = [fireCell]fireCell.emitterCells = [spark];self.view.layer.addSublayer(fireworkdEmitter)完整示例
- iOS实现各种粒子的动画效果
总结
以上是生活随笔为你收集整理的iOS实现“下雨下雪”动画效果和“烟花”动画效果的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: iOS之仿QQ点赞按钮粒子效果的实现
- 下一篇: OpenGL ES之GLSL自定义着色器