swift 粒子效果
1.
override func viewDidLoad() {
super.viewDidLoad()
let rect = CGRect(x: 0.0, y: -70.0, width: view.bounds.width,
height: 50.0)
let emitter = CAEmitterLayer()
emitter.frame = rect
view.layer.addSublayer(emitter)
emitter.emitterShape = CAEmitterLayerEmitterShape.rectangle
//kCAEmitterLayerPoint
//kCAEmitterLayerLine
//kCAEmitterLayerRectangle
emitter.emitterPosition = CGPoint(x: rect.width/, y: rect.height/)
emitter.emitterSize = rect.size
let emitterCell = CAEmitterCell()
emitterCell.contents = UIImage(named: "appLogo")!.scaleImageToWidth().cgImage
emitterCell.birthRate = //每秒产生120个粒子
emitterCell.lifetime = //存活1秒
emitterCell.lifetimeRange = 3.0
emitter.emitterCells = [emitterCell] //这里可以设置多种粒子 我们以一种为粒子
emitterCell.yAcceleration = 70.0 //给Y方向一个加速度
emitterCell.xAcceleration = 20.0 //x方向一个加速度
emitterCell.velocity = 20.0 //初始速度
emitterCell.emissionLongitude = CGFloat(-Double.pi) //向左
emitterCell.velocityRange = 200.0 //随机速度 -200+20 --- 200+20
emitterCell.emissionRange = CGFloat(Double.pi/) //随机方向 -pi/2 --- pi/2
//emitterCell.color = UIColor(red: 0.9, green: 1.0, blue: 1.0,
// alpha: 1.0).CGColor //指定颜色
emitterCell.redRange = 0.3
emitterCell.greenRange = 0.3
emitterCell.blueRange = 0.3 //三个随机颜色
emitterCell.scale = 0.8
emitterCell.scaleRange = 0.8 //0 - 1.6
emitterCell.scaleSpeed = -0.15 //逐渐变小
emitterCell.alphaRange = 0.75 //随机透明度
emitterCell.alphaSpeed = -0.15 //逐渐消失
}
2. UIimage拓展
extension UIImage {
/// 将当前图片缩放到指定宽度
///
/// - parameter width: 指定宽度
///
/// - returns: UIImage,如果本身比指定的宽度小,直接返回
func scaleImageToWidth(_ width: CGFloat) -> UIImage {
// 1. 判断宽度,如果小于指定宽度直接返回当前图像
if size.width < width {
return self
}
// 2. 计算等比例缩放的高度
let height = width * size.height / size.width
// 3. 图像的上下文
let s = CGSize(width: width, height: height)
// 提示:一旦开启上下文,所有的绘图都在当前上下文中
UIGraphicsBeginImageContext(s)
// 在制定区域中缩放绘制完整图像
draw(in: CGRect(origin: CGPoint.zero, size: s))
// 4. 获取绘制结果
let result = UIGraphicsGetImageFromCurrentImageContext()
// 5. 关闭上下文
UIGraphicsEndImageContext()
// 6. 返回结果
return result!
}
}
swift 粒子效果的更多相关文章
- swift 实现漂亮的粒子效果CAEmitterLayer
一些粒子效果 我们经常会在一些游戏或者应用中看到一些炫酷的粒子效果,我们在iOS中也能很轻松的搞一些粒子效果 我们本次做得是一个下雪的效果,看下效果图 源码地址: https://github.com ...
- (三)宇宙大战 Space Battle -- 场景SCENE切换、UserDefaults统计分数、Particle粒子效果
此<宇宙大战 Space Battle>SpirteKit手机游戏教程共分为三系列: (一)宇宙大战 Space Battle -- 新建场景Scene.精灵节点.Particle粒子及背 ...
- 超炫的HTML5粒子效果进度条 VS 如何规范而优雅地code
最近瞎逛的时候发现了一个超炫的粒子进度效果,有多炫呢?请擦亮眼镜! // _this.ch){ _this.particles.splice(i, 1); } }; this.Particle.p ...
- 简直要逆天!超炫的 HTML5 粒子效果进度条
我喜欢粒子效果作品,特别是那些能够应用于实际的,例如这个由 Jack Rugile 基于 HTML5 Cavnas 编写的进度条效果.看着这么炫的 Loading 效果,即使让我多等一会也无妨:)你呢 ...
- CodePen 作品秀:Canvas 粒子效果文本动画
作品名称——Shape Shifter,基于 Canvas 的粒子图形变换实验.在页面下方的输入框输入文本,上面就会进行变换出对应的粒子效果文本动画. CodePen 作品秀系列向大家展示来自 Cod ...
- iOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果
一.转盘(裁剪图片.自定义按钮.旋转) 1.裁剪图片 将一张大图片裁剪为多张 // CGImageCreateWithImageInRect:用来裁剪图片 // image:需要裁剪的图片 // re ...
- 能产生粒子效果的CAEmitterLayer
能产生粒子效果的CAEmitterLayer 下雪效果: // // RootViewController.m // Cell // // Copyright (c) 2014年 Y.X. All r ...
- cocos基础教程(8)粒子效果
简介 粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象.物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸.烟花.水流)提供了方便. 粒子属性 一 ...
- 用仿ActionScript的语法来编写html5——第八篇,图片处理+粒子效果
用仿ActionScript的语法来编写html5系列开发到现在,应该可以做出一些东西了,下面先来研究下图片的各种效果预览各种效果看下图效果和代码看这里,看不到效果的请下载支持html5的浏览器 ht ...
随机推荐
- 错误 88 error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明) c:\program files (x86)\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h 590
最近接收了以前新公司遗留的代码,一个函数动不动就少的一千行,多的几千行,真是受不了这编码风格! 于是便使用了VS自带的重构工具,选择代码后右键-重构-提取方法,提取完方法就编译不过,想了好久原因,原来 ...
- bs4源码
Beautiful源码: """Beautiful Soup Elixir and Tonic "The Screen-Scraper's Friend&quo ...
- 七、Python-正则表达式
一.正则式表达式语法 正则表达式是一种用来匹配字符串的强有力的武器,设计思想是一种描述性的语言来给字符串定义一个规则,烦死符合规则的字符串,就认为它匹配,否则不匹配 行定位符:用来描述字符串的边界 ^ ...
- HTTPS的内网访问和访问外网
https://launchpad.support.sap.com/#/notes/2461900 https://wiki.scn.sap.com/wiki/display/Security/Tro ...
- 【学习】如何安装GraphLab Create 【转载】
前人走过的路不用再走,慢慢加上一些工具的链接 GraphLab Create安装,链接地址: http://www.imooc.com/article/18094?block_id=tuijian_w ...
- H5使用codovar插件实现微信支付(微信APP支付模式,前端)
H5打包的app实现微信支付及支付宝支付,本章主要详解微信支付,支付宝支付请查看另一篇“H5使用codovar插件实现支付宝支付(支付宝APP支付模式,前端)” ps:本文只试用H5开发的,微信 AP ...
- mysql添加外键无法成功的原因
最近很忙,碰到很多问题都忘了发上来做个记录,现在又忘了,FUCK,现在碰到一个问题, 就是mysql添加外键总是无法成功,我什么都试了,就是没注意signed和unsigned,FUCK,因为我用my ...
- nginx出现404和403错误
配置文件的路径usr/local/nginx/conf/nginx.conf
- 40_redux_counter应用_redux完善版本
项目结构: 代码: import React from 'react'; import ReactDOM from 'react-dom'; import store from './redux/st ...
- 每日一练之排序算法(P1097 统计数字)
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5×10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果. ...