iOS之CAEmitterLayer粒子引擎
1、CAEmitterCell粒子发射器的相关属性:
/* CoreAnimation - CAEmitterLayer.h Copyright (c) 2007-2017, Apple Inc.
All rights reserved. */
//iOS5中引入的新的子类,粒子引擎!可以实现粒子特效!
ForeverGuard博客园
#import <QuartzCore/CALayer.h> @class CAEmitterCell; NS_ASSUME_NONNULL_BEGIN CA_CLASS_AVAILABLE (10.6, 5.0, 9.0, 2.0)
@interface CAEmitterLayer : CALayer//粒子发射器 @property(nullable, copy) NSArray<CAEmitterCell *> *emitterCells;//CAEmitterCell(粒子) @property float birthRate;//出生率,每秒生成多少个对象,默认1秒一个 @property float lifetime;//对象生存时间默认1秒 @property CGPoint emitterPosition;//发射器在xy平面的位置
@property CGFloat emitterZPosition;//发射器在z平面的位置 @property CGSize emitterSize;//发射源尺寸大小
@property CGFloat emitterDepth;//发射器的深度 @property(copy) NSString *emitterShape;//发射源形状 @property(copy) NSString *emitterMode;//发射模式 @property(copy) NSString *renderMode;//发射器渲染模式 @property BOOL preservesDepth;//是否开启三维效果,默认NO @property float velocity;//每个粒子的运动速度 @property float scale;//每个对象的初始缩放大小 @property float spin;//自旋转速度 @property unsigned int seed;//初始化随机数产生的种子 @end /** `emitterShape' values. **/ CA_EXTERN NSString * const kCAEmitterLayerPoint //点,粒子从一点发出!
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerLine //线,粒子从一条线发出
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerRectangle //矩形,粒子从一个矩形中发出
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerCuboid //立方体,z屏幕有效果
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerCircle //圆形,粒子从圆形发出
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerSphere //球形--ForeverGuard博客园
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0); /** `emitterMode' values. **/ CA_EXTERN NSString * const kCAEmitterLayerPoints //从发射器中发出
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerOutline //从发射器边缘发出
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerSurface //从发射器表面发出
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerVolume //从发射器中心发出
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0); /** `renderMode' values. **/ CA_EXTERN NSString * const kCAEmitterLayerUnordered //粒子无序出现
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerOldestFirst //先声明的粒子渲染在最上层
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerOldestLast //后声明的粒子渲染在最上层
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerBackToFront //按照Z轴的前后顺序渲染
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0);
CA_EXTERN NSString * const kCAEmitterLayerAdditive //粒子混合
CA_AVAILABLE_STARTING (10.6, 5.0, 9.0, 2.0); NS_ASSUME_NONNULL_END
2、CAEmitterCell粒子的相关属性:
#import <QuartzCore/CALayer.h> NS_ASSUME_NONNULL_BEGIN CA_CLASS_AVAILABLE (10.6, 5.0, 9.0, 2.0)
@interface CAEmitterCell : NSObject <NSSecureCoding, CAMediaTiming>
{
@private
void *_attr[];
void *_state;
uint32_t _flags;
} + (instancetype)emitterCell;//初始化方法 @property(nullable, copy) NSString *name;//粒子的名字 @property(getter=isEnabled) BOOL enabled;//粒子的颜色 @property float birthRate;//粒子出生率 @property float lifetime;//生命周期
@property float lifetimeRange;//生命周期增减范围 @property CGFloat emissionLatitude;//粒子z轴方向的发射角度
@property CGFloat emissionLongitude;//粒子在xy平面的发射角度 @property CGFloat emissionRange;//粒子发射角度范围 @property CGFloat velocity;//粒子运动速度
@property CGFloat velocityRange;//粒子速度增减范围 @property CGFloat xAcceleration;//粒子x方向的加速度
@property CGFloat yAcceleration;//粒子y方向的加速度
@property CGFloat zAcceleration;//粒子z方向的加速度 @property CGFloat scale;//粒子缩放比例
@property CGFloat scaleRange;//粒子缩放比例范围
@property CGFloat scaleSpeed;//粒子缩放比例速度 @property CGFloat spin;//粒子自旋转
@property CGFloat spinRange;//粒子自旋转范围 @property(nullable) CGColorRef color;//粒子的颜色 @property float redRange;//粒子颜色red改变范围
@property float greenRange;//粒子颜色green改变范围
@property float blueRange;//粒子颜色blue改变范围
@property float alphaRange;//粒子透明度alpha改变范围 @property float redSpeed;//粒子颜色red在生命周期里改变速度
@property float greenSpeed;//粒子颜色green在生命周期里改变速度
@property float blueSpeed;//粒子颜色blue在生命周期里改变速度
@property float alphaSpeed;//粒子透明度alpha在生命周期里改变速度 @property(nullable, strong) id contents;//渲染粒子是个图片 @property CGRect contentsRect;//渲染范围 @property CGFloat contentsScale;//渲染区域缩放 @property(copy) NSString *minificationFilter;//缩小
@property(copy) NSString *magnificationFilter;//放大
@property float minificationFilterBias;//缩小因子
//默认值都是kCAFilterLinear即‘linear’
//有3中设置:kCAFilterLinear,kCAFilterNearest,kCAFilterTrilinear
//kCAFilterLinear:默认值,缩放平滑,但容易产生模糊效果
//kCAFilterTrilinear:基本和kCAFilterLinear相同
//kCAFilterNearest:速度快不会产生模糊,但会降低质量并像素化图像 @property(nullable, copy) NSArray<CAEmitterCell *> *emitterCells;//粒子发射的粒子(粒子也可以发射粒子,多层嵌套,烟花效果就是如此) @property(nullable, copy) NSDictionary *style; @end
iOS之CAEmitterLayer粒子引擎的更多相关文章
- iOS 烟花撒花效果,图层渐变,图层倒影特效。CAEmitterLayer粒子发射器
iOS 烟花撒花效果,图层渐变,图层倒影特效.CAEmitterLayer粒子发射器 上一节我写了一个关于视图图层的相关类,有关CALayer这个类的使用和一些使用方法,详细看这里,就是我们在处理视图 ...
- iOS CALayer之CAEmitterLayer粒子发射器的神奇效果
https://www.jianshu.com/p/c54ffd7412e7 想必以前QQ空间的点赞效果大家都知道吧,点赞之后按钮周围会有一圈爆裂的小圆点:还有微信的红包雨表情动画等,以及烟花,火焰效 ...
- CAEmitterLayer 粒子发射器
在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer.CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果. CAEm ...
- 雪花降落CAEmitterLayer粒子效果
CAEmitterLayer 实现雪花效果 首先需要导入#import <QuartzCore/QuartzCore.h> /**在iOS 5中,苹果引入了一个新的CALayer子 ...
- 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎
Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...
- 一起用HTML5 canvas做一个简单又骚气的粒子引擎
前言 好吧,说是"粒子引擎"还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看demo 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单 ...
- iOS 开发之粒子效果
本文由糖炒小虾.Benna翻译 ,校对:sai.u0u0.iven.子龙山人 iOS 5中的UIKit粒子系统教程 Ray的话:这是第15篇.也是最后一篇<iOS 5 盛宴>中的iOS 5 ...
- iOS:使用模板引擎渲染HTML界面
在实际开发中,UIWebView控件接受一个HTML内容,用于相应的界面,下面是该API的接口: - (void)loadHTMLString:(NSString *)string baseURL:( ...
- iOS中的物理引擎
目前知名的2D物理引擎有 Box2d,和Chipmunk,这些是跨平台的.但苹果本身也封装了一个物理引擎, UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架.这可以让开发人员 ...
随机推荐
- 【2018ACM/ICPC网络赛】焦作赛区
A Magic Mirror 题目链接:https://nanti.jisuanke.com/t/31710 题意:输入字符串,如果是“Jessy”就输出“Good Guy!",否则输出“D ...
- pip修改官方源为豆瓣源
参考地址: https://www.jianshu.com/p/10a23d6a93c6 1.临时修改 pip install pythonModuleName -i https://pypi.dou ...
- Oracle学习01-Oracle的基本查询和过滤排序
- HTML_案例(注册案例CSS版)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 无法解析的外部符号 jpeg_std_error
1>dlib.lib(png_loader.obj) : error LNK2001: 无法解析的外部符号 png_set_sig_bytes 1>dlib.lib(png_loader. ...
- [笔记]Laravel TDD 胡乱记录
TDD: 测试驱动开发(Test-Driven Development),TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码. -- 载自TDD百度百科 参考 ...
- git连接gitee笔记
#首先参照 https://blog.csdn.net/zhangyu4863/article/details/80427289 #然后需要注意,在办公室无法使用 git remote add ori ...
- LR调试脚本的时候报错Error -27796:(已解决)
LR调试bbs脚本的时候报错: 1.Error -27796: Failed to connect to server "192.168.211.128:80": [10060] ...
- matlab中乘法和点乘以及除法和点除的联系是什么?
一,*和.*的联系和区别. 1,在进行数值运行和数值乘矩阵,这两种没有区别,例如:a*b=a.*b; a*B=a.*B; B*a=B.*a (其中小写字母表示数值,大写字母表示矩阵,下同). 2,在处 ...
- thinkphp 标签库
内置的模板引擎除了支持普通变量的输出之外,更强大的地方在于标签库功能. 标签库类似于Java的Struts中的JSP标签库,每一个标签库是一个独立的标签库文件,标签库中的每一个标签完成某个功能,采用X ...