Swift开发之粒子动画的实现
####粒子系统介绍
- 什么是粒子系统?
- 粒子系统是由总体具有相同的表现规律,个体却随机表现出不同的特征的大量显示元素构成的集合。
- 粒子定义有三要素
- 群体性:粒子系统是由“大量显示元素”构成的(例如雪、雨、一团雾等等)
- 统一性:粒子系统的每个元素具有相同的表现规律(例如下雨、下雪,方向都是从上向下)
- 随机性:粒子系统的每个元素又随机表现出不同特征(例如下雪,每个雪花下落的速度会有不同,大小会有不同、方向也会有略微的不同)
####粒子系统应用场景
- 影视行业
- 目前我们经常看的大片,比如沙尘暴、暴风雨、暴雪、烟花 等等,很多都是粒子特效做出来的。很逼真,而且相比真实世界中去实拍,成本要低很多
- 游戏中
- 爆炸、雨、雪、雾、烟花等等。都是粒子系统实现
- 应用中
- 主播房间右下角粒子动画
- 雪花/下雨/烟花等效果
- 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开发之粒子动画的实现相关推荐
- html 页面飘花,HTML5开发实例-ThreeJs实现粒子动画飘花效果代码分享
粒子动画在ThreeJs可以用几种方式实现 本次样例使用Sprite类来构建粒子 大概意思:这个类创建的对象是一个始终面向相机的平面,可以把贴图应用在上面,Sprite对象无法添加阴影 ,所以cast ...
- 带着canvas去流浪系列之九 粒子动画
[摘要] canvas实现粒子动画 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 粒子特效 粒子特效一般指密集点阵效果,它并不是canvas独有 ...
- 【带着canvas去流浪(9)】粒子动画
我的github主页:https://github.com/dashnowords 我的新书上架啦,3天即登京东计算机编程语言类排行榜Top1!!!精选30+JavaScript库,从使用方式,设计原 ...
- egret帧动画与粒子动画_动画基础知识:了解粒子
egret帧动画与粒子动画 Particles are very frequently used in visual effects animation to recreate natural eve ...
- python实现“粒子动画”
python讨论qq群:996113038 导语: 最近浏览网页的时候经常看见一些炫酷的网页,其中影响最深刻的就是粒子动画.每次用鼠标点击一个位置.就会有相应的点和线的变化.虽然是非常简单的几何图形. ...
- Three.js 的 3D 粒子动画:群星送福
"粒子动画" 这个词大家可能经常听到,那什么是粒子动画呢? 粒子是指原子.分子等组成物体的最小单位.在 2D 中,这种最小单位是像素,在 3D 中,最小单位是顶点. 粒子动画不是指 ...
- CSS3实现王者匹配时的粒子动画效果
在码代码的时候会发现,很多东西都是殊途同归的,方法千千万,能解决问题的都是好办法,不一定非要把代码写的特别高深,这样反而后来的人看不懂,维护根据头疼. 所以用最简单通俗的代码,更能利于后期的维护开发. ...
- 使用Xcode13进行Swift开发
使用Xcode13进行Swift开发 1.软件 Xcode 2.快捷键 3.应用功能 3.1 VStack,HStack,ZStack 3.2 frame,foregroundColor,corner ...
- 《Swift开发实战》——第2章,第2.4节函数和闭包
本节书摘来自异步社区<Swift开发实战>一书中的第2章,第2.4节函数和闭包,作者 李宁,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.4 函数和闭包 在本 ...
最新文章
- PCL中的OpenNI点云获取框架(OpenNI Grabber Framework in PCL)
- 快速排序 C++代码实现及其算法思想及时间复杂度分析及优化 恋上数据结构笔记
- python 删除文件或文件夹
- ZOJ 1242 Carbon Dating
- The most impressed error
- ecshop 模板页php,ECSHOP 模板结构说明
- html怎么设置区块隐藏,网页区块隐藏/显示的切换技术
- RadioButtonList功能汇总
- 微信小程序云开发 操作数据库-新增一条数据
- linux nodejs 采集器,前端工程师通过nodejs链接linux,并上传代码进行半自动化更新,省去ssh+ftp的链接工具-前端黑科技-SegmentFault思否...
- 基于S3C2410A的MDB/ICP协议的实现
- SaaS从业者宝典:一文读懂如何衡量与优化SaaS公司的关键指标
- 贸然用string比较的后果
- 如何看待人工智能的现状
- codelite+mingw安装
- 全面解读信创行业 关注国产操作系统
- 百度前端实战训练营第二弹
- Friends number
- 什么是超线程,开启超线程有什么作用
- 智能指针实战讲解--龙之介《Effective C++》实验室