转载自:http://blog.csdn.net/mad2man/article/details/16898369

分类: cocoa SDK2013-11-23 11:52 388人阅读 评论(0) 收藏 举报

demo功能:基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果。

demo说明:基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。 粒子画在背景层盒边界上

demo截屏:

emitterPosition:发射位置

emitterSize:发射源的大小;

emitterMode:发射模式

  1. NSString * const kCAEmitterLayerPoints;
  2. NSString * const kCAEmitterLayerOutline;
  3. NSString * const kCAEmitterLayerSurface;
  4. NSString * const kCAEmitterLayerVolume;

复制代码

emitterShape:发射源的形状:

  1. NSString * const kCAEmitterLayerPoint;
  2. NSString * const kCAEmitterLayerLine;
  3. NSString * const kCAEmitterLayerRectangle;
  4. NSString * const kCAEmitterLayerCuboid;
  5. NSString * const kCAEmitterLayerCircle;
  6. NSString * const kCAEmitterLayerSphere;

复制代码

renderMode:渲染模式:

  1. NSString * const kCAEmitterLayerUnordered;
  2. NSString * const kCAEmitterLayerOldestFirst;
  3. NSString * const kCAEmitterLayerOldestLast;
  4. NSString * const kCAEmitterLayerBackToFront;
  5. NSString * const kCAEmitterLayerAdditive;

复制代码

Properties:
        
birthRate:粒子产生系数,默认1.0;

emitterCells: 装着CAEmitterCell对象的数组,被用于把粒子投放到layer上;

emitterDepth:决定粒子形状的深度联系:emitter shape

emitterZposition:发射源的z坐标位置;

lifetime:粒子生命周期

preservesDepth:不是多很清楚(粒子是平展在层上)

scale:粒子的缩放比例:

seed:用于初始化随机数产生的种子

spin:自旋转速度

velocity:粒子速度
  
CAEmitterCell

CAEmitterCell类代从从CAEmitterLayer射出的粒子;emitter cell定义了粒子发射的方向。

alphaRange:  一个粒子的颜色alpha能改变的范围;

alphaSpeed:粒子透明度在生命周期内的改变速度;

birthrate:粒子参数的速度乘数因子;每秒发射的粒子数量

blueRange:一个粒子的颜色blue 能改变的范围;

blueSpeed: 粒子blue在生命周期内的改变速度;

color:粒子的颜色

contents:是个CGImageRef的对象,既粒子要展现的图片;

contentsRect:应该画在contents里的子rectangle:

emissionLatitude:发射的z轴方向的角度

emissionLongitude:x-y平面的发射方向

emissionRange;周围发射角度

emitterCells:粒子发射的粒子

enabled:粒子是否被渲染

greenrange: 一个粒子的颜色green 能改变的范围;

greenSpeed: 粒子green在生命周期内的改变速度;

lifetime:生命周期

lifetimeRange:生命周期范围      lifetime= lifetime(+/-) lifetimeRange

magnificationFilter:不是很清楚好像增加自己的大小

minificatonFilter:减小自己的大小

minificationFilterBias:减小大小的因子

name:粒子的名字

redRange:一个粒子的颜色red 能改变的范围;

redSpeed; 粒子red在生命周期内的改变速度;

scale:缩放比例:

scaleRange:缩放比例范围;

scaleSpeed:缩放比例速度:

spin:子旋转角度

spinrange:子旋转角度范围

style:不是很清楚:

velocity:速度

velocityRange:速度范围

xAcceleration:粒子x方向的加速度分量

yAcceleration:粒子y方向的加速度分量

zAcceleration:粒子z方向的加速度分量

- (void)viewDidLoad

{

[super viewDidLoad];

CAEmitterLayer *snowemitter = [CAEmitterLayer layer];

snowemitter.emitterPosition = CGPointMake(self.view.bounds.size.width / 2.0,  -30);

snowemitter.emitterSize   = CGSizeMake(self.view.bounds.size.width ,  0.0);

snowemitter.emitterMode   = kCAEmitterLayerOutline;

snowemitter.emitterShape  = kCAEmitterLayerLine;

CAEmitterCell *snowflake  = [CAEmitterCell emitterCell];

snowflake.birthRate       = 2.0;

snowflake.lifetime        = 120.0;

snowflake.velocity        = -10;

snowflake.velocityRange   = 10;

snowflake.yAcceleration   = 2;

snowflake.emissionRange   = 0.5 * M_PI;

snowflake.spinRange       = 0.25 * M_PI;

snowflake.contents        = (id) [[UIImage imageNamed:@"DazFlake"] CGImage];

snowflake.color           = [[UIColor colorWithRed:0.600 green:0.658 blue:0.743 alpha:1.000] CGColor];

snowemitter.shadowOpacity = 1.0;

snowemitter.shadowRadius  = 0.0;

snowemitter.shadowOffset  = CGSizeMake(0.0, 1.0);

snowemitter.shadowColor   = [[UIColor blackColor] CGColor];

snowemitter.emitterCells  = [NSArray arrayWithObject:snowflake];

[self.view.layer insertSublayer:snowemitter above:0];

// Do any additional setup after loading the view.

}

ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo(转)的更多相关文章

  1. ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo

    demo功能:基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果. demo说明:基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化. 粒子画在背景层 ...

  2. iOS 基于MVC设计模式的基类设计

    iOS 基于MVC设计模式的基类设计 https://www.jianshu.com/p/3b580ffdae00

  3. IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识

    最近蘑菇街团队的TT的开源,使我对im产生了兴趣,然后在网上找到了XMPPFramework进行学习研究, 并写了以下系列教程供大家参考,有写的不对的地方,请大家多多包涵指正. 目录索引 IOS基于X ...

  4. 手淘架构组最新实践 | iOS基于静态库插桩的⼆进制重排启动优化 抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 编译期插桩

    抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 原创 Leo 字节跳动技术团队 2019-08-09 https://mp.weixin.qq.com/s/Drmmx5JtjG ...

  5. iOS基于AVFoundation实现朗读文字

    iOS基于AVFoundation实现朗读文字 1.心理建设 众所周知AVFoundation的朗读是个智障语气,所以想不花钱就只能忍着. 2.speechManager @import AVFoun ...

  6. 【转】swift实现ios类似微信输入框跟随键盘弹出的效果

    swift实现ios类似微信输入框跟随键盘弹出的效果 为什么要做这个效果 在聊天app,例如微信中,你会注意到一个效果,就是在你点击输入框时输入框会跟随键盘一起向上弹出,当你点击其他地方时,输入框又会 ...

  7. 基于 jQuery 实现的精致作品集图片导航效果

    今天,我们要用 jQuery 来创建一个作品集图像的导航模板.我们的想法是,以分组的方式显示一组作品集,并通过二维的方式(水平/垂直)来浏览.任一箭头或当前图像下方的小盒子可以作为导航使用. 在线演示 ...

  8. C++实现水波纹、火焰和血浆效果

    点击这里查看原文 Code Project着火了! 整个工程有三个类,它们可以让你在图象上添加一些很酷的效果. 我把这些文件都放到我的代码压缩包里面了,并且做了一个小工程来让一些人使用起来更方便,但是 ...

  9. JS组件系列——基于Bootstrap Ace模板的菜单Tab页效果优化

    前言:之前发表过一篇  JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有) ,收到很多园友的反馈,当然也包括很多诟病,因为上篇只是将功能实现了,很多细节都没有处理 ...

随机推荐

  1. 基于BaseHTTPServer的简单存储服务器

    服务器代码: from BaseHTTPServer import BaseHTTPRequestHandler from BaseHTTPServer import HTTPServer impor ...

  2. 关于简明Vim练级攻略

    本文装载于:http://coolshell.cn/articles/5426.html vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你 ...

  3. 用Gradle 构建android程序

    前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目 ...

  4. [译]脱离jQuery,使用原生Ajax

    脱离jQuery,使用原生Ajax 标签: Ajax translate 英文出处:<A Guide to Vanilla Ajax Without jQuery> 翻译: 刘健超 J.c ...

  5. 一个简单的XML与数组之间的转换

    xml是网络使用最多的数据交换格式,所以,不掌握怎么操作它,又有蛋疼的了. php中可以操作xml的类/函数很多,个人认为最简单的是SimpleXMLElement这个类,它的使用就跟其名字一样:简单 ...

  6. PS基础学习 2---图层蒙版

    1,蒙版,字面意思上的理解就是:把底层图片上面加上一层图层蒙着,通过画笔工具控制底层图片和上面一层图层的显示效果.常用于图层的无缝隙合成. 我们可以先看一下下面的这个小例子,这个就是蒙版的一个小应用: ...

  7. MyBatis(3.2.3) - Paginated ResultSets using RowBounds

    Sometimes, we may need to work with huge volumes of data, such as with tables with millions of recor ...

  8. Linux 命令 - kill: 向进程发送信号

    kill 命令通常用来 “杀死”(终止)进程,它可以用来终止运行不正常的程序或者反过来拒绝终止的程序.kill 命令准确地说并不是 “杀死” 进程,而是给进程发送信号(signal). 和文件一样,进 ...

  9. ASP常用函数

    取得IP地址 '******************************************************************* Function Userip() Dim Ge ...

  10. .net System.Net.Mail 之用SmtpClient发送邮件 Demo

    private static bool sendMail() { try { //接收人邮箱 string SendTo = "XXXXX@163.com"; //抄送人邮箱 st ...