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 粒子效果的更多相关文章

  1. swift 实现漂亮的粒子效果CAEmitterLayer

    一些粒子效果 我们经常会在一些游戏或者应用中看到一些炫酷的粒子效果,我们在iOS中也能很轻松的搞一些粒子效果 我们本次做得是一个下雪的效果,看下效果图 源码地址: https://github.com ...

  2. (三)宇宙大战 Space Battle -- 场景SCENE切换、UserDefaults统计分数、Particle粒子效果

    此<宇宙大战 Space Battle>SpirteKit手机游戏教程共分为三系列: (一)宇宙大战 Space Battle -- 新建场景Scene.精灵节点.Particle粒子及背 ...

  3. 超炫的HTML5粒子效果进度条 VS 如何规范而优雅地code

    最近瞎逛的时候发现了一个超炫的粒子进度效果,有多炫呢?请擦亮眼镜!   // _this.ch){ _this.particles.splice(i, 1); } }; this.Particle.p ...

  4. 简直要逆天!超炫的 HTML5 粒子效果进度条

    我喜欢粒子效果作品,特别是那些能够应用于实际的,例如这个由 Jack Rugile 基于 HTML5 Cavnas 编写的进度条效果.看着这么炫的 Loading 效果,即使让我多等一会也无妨:)你呢 ...

  5. CodePen 作品秀:Canvas 粒子效果文本动画

    作品名称——Shape Shifter,基于 Canvas 的粒子图形变换实验.在页面下方的输入框输入文本,上面就会进行变换出对应的粒子效果文本动画. CodePen 作品秀系列向大家展示来自 Cod ...

  6. iOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果

    一.转盘(裁剪图片.自定义按钮.旋转) 1.裁剪图片 将一张大图片裁剪为多张 // CGImageCreateWithImageInRect:用来裁剪图片 // image:需要裁剪的图片 // re ...

  7. 能产生粒子效果的CAEmitterLayer

    能产生粒子效果的CAEmitterLayer 下雪效果: // // RootViewController.m // Cell // // Copyright (c) 2014年 Y.X. All r ...

  8. cocos基础教程(8)粒子效果

    简介 粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象.物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸.烟花.水流)提供了方便. 粒子属性 一 ...

  9. 用仿ActionScript的语法来编写html5——第八篇,图片处理+粒子效果

    用仿ActionScript的语法来编写html5系列开发到现在,应该可以做出一些东西了,下面先来研究下图片的各种效果预览各种效果看下图效果和代码看这里,看不到效果的请下载支持html5的浏览器 ht ...

随机推荐

  1. atom插件

    1.Sync Settings 搭配github,同步你的atom插件信息,配置信息,让你轻松实现一台电脑配置,多台电脑共享. 2.Emmet 能够基于Emmet语法产生HTML,做过前段开发的不会不 ...

  2. c++界面库方案

    最近的开发需要向java以及c++方向转向:看了些java和c++的东西 最近研究了下,最后觉得使用ogre+mygui来实现c++界面,这样用比较方便: 当前ogre,mygui都可以实现界面,可以 ...

  3. [论文阅读]Object detection at 200 Frames Per Second

    本文提出了一个有效且快速的目标检测器,该目标检测器得速度可以达到200+fps,在Pascal VOC-2007上的mAP比Tiny-Yolo-v2高出14. 本文从以下三个方面对网络进行改进. 网络 ...

  4. hash加密

    hash import hashlib content = 'its so coll'.encode('utf8') o = hashlib.sha1() # 创建一个hash对象 o.update( ...

  5. Nagios Email告警 发不了,可能是 /var/spool/mqueue nagios用户没权限

    Nagios邮件报警   Nagios邮件报警 准备 yum - y install ntp        ntpdate time.windows.com   同步时间,否则无法发送邮件 yum - ...

  6. sbt 学习

    一.基础 1.工程根目录 包含build.sbt的目录是工程的根目录.注意,就算在一个空目录下面执行sbt about,也会生成project文件夹 2.源文件目录结构 SBT有固定的文件组织结构 s ...

  7. blade 学习

    一.目录构造样式 . └── workspace ├── BLADE_ROOT ├── build64_release ├── client │   ├── BUILD │   └── client. ...

  8. QTP测试.NET程序的时候,ComboBox下拉框控件选择后,运行时对象不可见解决方案

    解决方法: 录制时,选择下拉框数据的时候,不要鼠标单击选择,而是要用ENTER(回车键)来选择,才能完成选择,这样录制就OK了.

  9. 开窗函数over

    select   id,sum(je) over() as je from dt

  10. fdisk 分区及 swap

    使用虚拟机创建挂载点 一,创建 windows 硬盘        创建