CAEmitterLayer实现雪花效果
CAEmitterLayer 简介
在iOS5.0中,Apple引入了CAEmitterLayer层,CAEmitterLayer是一个高性能的粒子效果引擎,被用来创建实时粒子动画,如:烟雾,火,雨等效果。CAEmitterLayer其实是一个粒子容器,负责按照开发者的设定,成产出一个或者多个粒子样式,然后将其模板化并大量生产。
实例:雪花效果
如果大家突然需要一个雪花效果,我相信大部分人的第一反应是使用定时器创建大量的ImageView对象,然后给每个ImageView对象添加动画。这种做法一方面操作复杂,一方面性能方面堪忧.既然现在大家都了解了CAEmitterLayer引擎,因此下面使用CAEmitterLayer引擎实现这个效果,看下其的便捷性和性能方面的优势。
1.创建一个CAEmitterLayer对象
CAEmitterLayer *emitter = [CAEmitterLayer layer];
emitter.frame = self.view.bounds;
[self.containerView.layer addSublayer:emitter];
emitter.renderMode = kCAEmitterLayerAdditive;
emitter.emitterPosition = CGPointMake(emitter.frame.size.width / 3.0, -75);
该layer的创建方式与基本CALayer层没什么区别,区别在于属性,下面将会简要介绍:
- rederMode:控制着在视觉上粒子图片是如何混合的。我们在实例中设置为了KCAEmitterLayerAdditive,它表示这:合并粒子重叠部分的亮度使其更加明亮,其他效果可以尝试下。
- emitterPosition:表示粒子发射器的中心位置
注意:CAEmitterLayer的属性控制着整个粒子系统的位置和形状,一些属性比如birthRate在粒子模板中也有。这些属性会以相乘的方式作用在一起。
2.创建一个粒子模板
CAEmitterCell *cell = [[CAEmitterCell alloc] init];
cell.contents = (__bridge id)[UIImage imageNamed:@"面板_雪花"].CGImage;
cell.birthRate = 5;
cell.lifetime =7.0 ;
cell.alphaSpeed = 0;
cell.velocity = 150;
cell.velocityRange = 100;
cell.emissionLongitude = M_PI / 2;
cell.emissionRange = M_PI /2 ;
emitter.emitterCells = @[cell];
值得一提的属性如下介绍:
- birthRate:表示粒子的生产速度,值越大,生产的速度越大
- lifetime:表示粒子的生命周期,在该范围内,粒子不会消失(当然,透明度可能也会让粒子显示出消失的效果)
- alphaSpeed:粒子透明度的变化速度,为负值时说明透明度慢慢变低
- velocity:表示粒子的位移加速度
- velocityRange:表示粒子的位移加速范围 与上一个参数配合使用
- emissionLongitude:粒子发射中心方向
- emissionRange:粒子发射范围
其他配置
我们按照上面的方法创建两个发射源,放在视图的顶部,设置雪花飘落的范围与方向,然后给视图配置一个美感的背景图,就可以实现一个雪花效果了。而且,我们做的工作其实很少,性能也有大大的提高。不多说,看效果

CAEmitterLayer实现雪花效果的更多相关文章
- ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo(转)
转载自:http://blog.csdn.net/mad2man/article/details/16898369 分类: cocoa SDK2013-11-23 11:52 388人阅读 评论(0) ...
- ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo
demo功能:基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果. demo说明:基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化. 粒子画在背景层 ...
- CAEmitterLayer实现粒子效果
在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer.CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果. CAEm ...
- Html页面雪花效果的实现
简单介绍 昨天修改了一下博客所用的模板,冬天来了,给自己的博客加点雪花,感觉更有意境. 百度找到了非常多的结果,最终还是选用了cfs.snow.js,很赞压缩之后只有1kb左右,而且不会影响页面使用, ...
- 6 cocos2dx粒子效果,类图关系,系统原生粒子和自己定义粒子效果,粒子编译器软件,爆炸粒子效果,烟花效果,火焰效果,流星效果,漩涡粒子效果,雪花效果,烟雾效果,太阳效果,下雨效果
1 粒子 演示样例 2 类图关系 3 系统原生粒子 CCParticleSystem 全部粒子系统的父类 CCParticleSystemPoint. CCParticleSystemQuad ...
- 使用CAEmitterLayer实现下雪效果
效果图: 代码部分: #import "ViewController.h" @interface ViewController () @end @implementation Vi ...
- 使用CAEmitterLayer产生粒子效果
ViewController.m #import "ViewController.h" @implementation ViewController - (void)viewDid ...
- 天气渐热,来片雪花降降温——Android自定义SurfaceView实现雪花效果
实现雪花的效果其实也可以通过自定义View的方式来实现的(SurfaceView也是继承自View的),而且操作上也相对简单一些,当然也有一些不足啦... 相对于View,SurfaceView有如下 ...
- JS实现雪花效果
演示效果 http://www.9696e.com/demo/snow/ 春节之前新一博客也会一直挂着的. 加载链接 <script src="http://www.9696e.com ...
随机推荐
- 备忘:maven 中指定版本
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- 1323 union解题报告
http://codeup.cn/problem.php?id=1323 1323: 算法2-1:集合union 时间限制: 1 Sec 内存限制: 32 MB 提交: 2884 解决: 688 题目 ...
- 还原数据库:The backup set holds a backup of a database other than the existing database……
还原数据库时报以上错误,解决办法是: 1.删除新建的DB 2.直接右键Databases-->Restore Database 3.在弹出窗口中的To database栏位填写需要新建的DB名称 ...
- jquery 将disabled的元素置为enabled的三种方法
转--http://www.jb51.net/article/19342.htm 在jquery中可以通过jqueryObj.attr("disabled","disab ...
- ES6新特性:使用新方法定义javascript的Class
ES6中定义类的方式, 就是ES3和ES5中定义类的语法糖,虽然也有些区别,但是整体定义类的方式更加简洁,类的继承更加方便, 如果想对ES6中的继承更加熟悉, 最好了解ES5中原型继承的方式, 博客园 ...
- 安装zookeeper遇到的问题以及解决方案
伪分布式安装基本思想 zookeeper的安装包保存一份,但是zoo.cfg配置多份,启动zookeeper服务器的时候指定不同的zoo.cfg即可.即启动时这样启动:zkServer.sh star ...
- oracle---触发器总结
一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行.因此触发器不需要人为的去调用,也不能调用.然后,触发器的触发条件其实在你定义的时候就已经设定好了.这里面需 ...
- (转)为什么所有浏览器的userAgent都带Mozilla
转自:http://www.eamonning.com/blog/view/289 以下是全文 最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windo ...
- Node.js入门笔记(6):web开发方法
使用node进行web开发 用户上网流程: 表面上看:打开浏览器--输入网址--跳转--上网. 背后的过程是什么呢? http请求网址到指定的主机--服务器接收请求--服务器响应内容到用户浏览器--浏 ...
- Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点
开发一个简单的BBS论坛 项目需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可被 ...