博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发——粒子发射实现雪花下落
阅读量:5084 次
发布时间:2019-06-13

本文共 2722 字,大约阅读时间需要 9 分钟。

// 创建雪花类型的粒子    CAEmitterCell *snowFlake = [CAEmitterCell emitterCell];        // 粒子的名字    snowFlake.name = @"snow";        // 粒子参数的速度乘数因子    snowFlake.birthRate = (_birthRate > 0 ? _birthRate : 1.0f);        // 粒子生命周期    snowFlake.lifetime = (_lifetime > 0 ? _lifetime : 60);        // 粒子速度    snowFlake.velocity = (_speed > 0 ? _speed : 10.0f);        // 粒子的速度范围    snowFlake.velocityRange = (_speedRange > 0 ? _speedRange : 10.f);        // 粒子y方向的加速度分量(可以理解为重力)    snowFlake.yAcceleration = (_gravity != 0 ? _gravity : 2.f);        // 每个发射的粒子的初始时候随机的角度    snowFlake.emissionRange = 0.5 * M_PI;        // 粒子旋转角度    snowFlake.spinRange = 0.25 * M_PI;        // 获取图片    snowFlake.contents = (id)_snowImage.CGImage;        // 设置雪花形状的粒子的颜色    snowFlake.color = (_snowColor == nil ? [[UIColor whiteColor] CGColor] :_snowColor.CGColor);        // 尺寸    snowFlake.scale = 0.5f;        // 尺寸变化范围    snowFlake.scaleRange = 0.3f;        // 添加粒子    self.emitterLayer.emitterCells = @[snowFlake];

/**

 *  CAEmitterLayer参数详解

 

 emitterCells 

 附着在当前layer上的粒子的数组,每一个元素必须是CAEmitterCell对象

 

 [支持动画] birthRate

 每秒钟生成粒子的速率,默认值是1,其作为乘积器影响emitterCells中的对象

 

 [支持动画] lifetime

 粒子的生命周期,默认值为1,其作为乘积器影响emitterCells中的对象

 

 [支持动画] emitterPosition emitterZPosition

 发射器中心位置,默认值为(0, 0, 0)

 

 [支持动画] emitterSize emitterDepth

 发射器尺寸的大小,默认值为(0, 0, 0),根据emitterPosition与emitterZPosition值的不同,会导致部分值失效

 

 [支持动画] velocity

 粒子的速率,默认值为1,其作为乘积器影响emitterCells中的对象

 

 [支持动画] scale

 粒子的尺寸,默认值为1,其作为乘积器影响emitterCells中的对象

 

 [支持动画] spin

 粒子的旋转,默认值为1,其作为乘积器影响emitterCells中的对象

 

 emitterShape

 发射器的形状类型,包括以下这几种'point'(默认值),'line','rectangle','circle','cuboid'与'sphere'

 

 emitterMode

 发射器模式,包括以下几种'points','outline','surface'与'volume'(默认值)

 

 renderMode

 渲染模式

 

 preservesDepth

 景深模式开关,默认为NO

 */

 

 

/*

 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:生命周期范围

 

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

 

 minificatonFilter:减小自己的大小

 

 minificationFilterBias:减小大小的因子

 

 name:粒子的名字

 

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

 

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

 

 scale:缩放比例:

 

 scaleRange:缩放比例范围;

 

 scaleSpeed:缩放比例速度:

 

 spin:子旋转角度

 

 spinrange:子旋转角度范围

 

 style:不是很清楚:

 

 velocity:速度

 

 velocityRange:速度范围

 

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

 

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

 

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

 Class Methods

 

 defauleValueForKey: 更具健获得值;

 

 emitterCell:初始化方法

 

 shouldArchiveValueForKey:是否归档莫键值

 

 */

转载于:https://www.cnblogs.com/qinxiaoguang/p/5680634.html

你可能感兴趣的文章
IO—》Properties类&序列化流与反序列化流
查看>>
测试计划
查看>>
Mysql与Oracle 的对比
查看>>
jquery实现限制textarea输入字数
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
jQuery 自定义函数
查看>>
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>
ActiveMQ与spring整合
查看>>
web服务器
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
EOS生产区块:解析插件producer_plugin
查看>>