####粒子系统介绍

  • 什么是粒子系统?

    • 粒子系统是由总体具有相同的表现规律,个体却随机表现出不同的特征的大量显示元素构成的集合。
  • 粒子定义有三要素
    • 群体性:粒子系统是由“大量显示元素”构成的(例如雪、雨、一团雾等等)
    • 统一性:粒子系统的每个元素具有相同的表现规律(例如下雨、下雪,方向都是从上向下)
    • 随机性:粒子系统的每个元素又随机表现出不同特征(例如下雪,每个雪花下落的速度会有不同,大小会有不同、方向也会有略微的不同)

####粒子系统应用场景

  • 影视行业

    • 目前我们经常看的大片,比如沙尘暴、暴风雨、暴雪、烟花 等等,很多都是粒子特效做出来的。很逼真,而且相比真实世界中去实拍,成本要低很多
  • 游戏中
    • 爆炸、雨、雪、雾、烟花等等。都是粒子系统实现
  • 应用中
    • 主播房间右下角粒子动画
    • 雪花/下雨/烟花等效果
    • QQ生日快乐一堆表情的跳动

####iOS粒子动画的使用

  • 步骤

    • 创建发射器
    • 创建粒子, 设置粒子属性
  • swift核心代码
       // 1.创建发射器let emitter = CAEmitterLayer()// 2.设置发射器的位置emitter.emitterPosition = point// 3.开启三维效果emitter.preservesDepth = true// 4.创建例子, 并且设置例子相关的属性var cells = [CAEmitterCell]()for i in 0..<10 {// 4.1.创建例子Celllet cell = CAEmitterCell()// 4.2.设置粒子速度cell.velocity = 150cell.velocityRange = 100// 4.3.设置例子的大小cell.scale = 0.7cell.scaleRange = 0.3// 4.4.设置粒子方向cell.emissionLongitude = CGFloat(-Double.pi/2)cell.emissionRange = CGFloat(Double.pi/2 / 6)// 4.5.设置例子的存活时间cell.lifetime = 3cell.lifetimeRange = 1.5// 4.6.设置粒子旋转cell.spin = CGFloat(Double.pi/2)cell.spinRange = CGFloat(Double.pi/2 / 2)// 4.6.设置例子每秒弹出的个数cell.birthRate = 2// 4.7.设置粒子展示的图片cell.contents = UIImage(named: "good\(i)_30x30")?.cgImage// 4.8.添加到数组中cells.append(cell)}// 5.将粒子设置到发射器中emitter.emitterCells = cells// 6.将发射器的layer添加到父layer中view.layer.addSublayer(emitter)复制代码

####粒子动画效果展示

####源码 GitHub地址:ParticleAnimationDemo

转载于:https://juejin.im/post/5a3348336fb9a0452341ef2d

Swift开发之粒子动画的实现相关推荐

  1. html 页面飘花,HTML5开发实例-ThreeJs实现粒子动画飘花效果代码分享

    粒子动画在ThreeJs可以用几种方式实现 本次样例使用Sprite类来构建粒子 大概意思:这个类创建的对象是一个始终面向相机的平面,可以把贴图应用在上面,Sprite对象无法添加阴影 ,所以cast ...

  2. 带着canvas去流浪系列之九 粒子动画

    [摘要] canvas实现粒子动画 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 粒子特效 粒子特效一般指密集点阵效果,它并不是canvas独有 ...

  3. 【带着canvas去流浪(9)】粒子动画

    我的github主页:https://github.com/dashnowords 我的新书上架啦,3天即登京东计算机编程语言类排行榜Top1!!!精选30+JavaScript库,从使用方式,设计原 ...

  4. egret帧动画与粒子动画_动画基础知识:了解粒子

    egret帧动画与粒子动画 Particles are very frequently used in visual effects animation to recreate natural eve ...

  5. python实现“粒子动画”

    python讨论qq群:996113038 导语: 最近浏览网页的时候经常看见一些炫酷的网页,其中影响最深刻的就是粒子动画.每次用鼠标点击一个位置.就会有相应的点和线的变化.虽然是非常简单的几何图形. ...

  6. Three.js 的 3D 粒子动画:群星送福

    "粒子动画" 这个词大家可能经常听到,那什么是粒子动画呢? 粒子是指原子.分子等组成物体的最小单位.在 2D 中,这种最小单位是像素,在 3D 中,最小单位是顶点. 粒子动画不是指 ...

  7. CSS3实现王者匹配时的粒子动画效果

    在码代码的时候会发现,很多东西都是殊途同归的,方法千千万,能解决问题的都是好办法,不一定非要把代码写的特别高深,这样反而后来的人看不懂,维护根据头疼. 所以用最简单通俗的代码,更能利于后期的维护开发. ...

  8. 使用Xcode13进行Swift开发

    使用Xcode13进行Swift开发 1.软件 Xcode 2.快捷键 3.应用功能 3.1 VStack,HStack,ZStack 3.2 frame,foregroundColor,corner ...

  9. 《Swift开发实战》——第2章,第2.4节函数和闭包

    本节书摘来自异步社区<Swift开发实战>一书中的第2章,第2.4节函数和闭包,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.4 函数和闭包 在本 ...

最新文章

  1. PCL中的OpenNI点云获取框架(OpenNI Grabber Framework in PCL)
  2. 快速排序 C++代码实现及其算法思想及时间复杂度分析及优化 恋上数据结构笔记
  3. python 删除文件或文件夹
  4. ZOJ 1242 Carbon Dating
  5. The most impressed error
  6. ecshop 模板页php,ECSHOP 模板结构说明
  7. html怎么设置区块隐藏,网页区块隐藏/显示的切换技术
  8. RadioButtonList功能汇总
  9. 微信小程序云开发 操作数据库-新增一条数据
  10. linux nodejs 采集器,前端工程师通过nodejs链接linux,并上传代码进行半自动化更新,省去ssh+ftp的链接工具-前端黑科技-SegmentFault思否...
  11. 基于S3C2410A的MDB/ICP协议的实现
  12. SaaS从业者宝典:一文读懂如何衡量与优化SaaS公司的关键指标
  13. 贸然用string比较的后果
  14. 如何看待人工智能的现状
  15. codelite+mingw安装
  16. 全面解读信创行业 关注国产操作系统
  17. 百度前端实战训练营第二弹
  18. Friends number
  19. 什么是超线程,开启超线程有什么作用
  20. 智能指针实战讲解--龙之介《Effective C++》实验室

热门文章

  1. Unity Js与C#脚本通信
  2. ios 应用程序证书安装以及发布
  3. 企业呼吁更多关注网络安全
  4. Red Hat Enterprice Linux 5测试 Qt 4.7 Qt Creator(二)
  5. Stm32CubeMx lwip+freeRTOS TCP 服务
  6. 运维宝典 | 数据千万条,备份第一条,数据找不回,老板两行泪
  7. MapReduce简介和过程浅析
  8. ArcGIS for qml -添加自由文本
  9. SpringBoot整合Jersey2.x实现文件上传API
  10. 优秀程序员必学的开发工具教程!