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框架.这可以让开发人员 ...
随机推荐
- python中oop
转自 http://www.cnblogs.com/BeginMan/p/3510786.html 本文旨在Python复习和总结: 1.如何创建类和实例? # 创建类 class ClassNam ...
- 使用python和tushare股票交易日历数据,判断节假日周末休市
接口:trade_cal 描述:获取各大交易所交易日历数据,默认提取的是上交所 注:tushare模块下载和安装教程,请查阅我之前的文章 输入参数 名称 | 类型 ...
- 【转】Java程序CPU飙升问题排查方法
windows环境下cpu飙升问题 线上某台runtime机器(windows Server)cpu报警,这种情况初步就是代码里面死循环了,先把机器下线了保证不再有新的任务分配进来,然而cpu使用依然 ...
- java oop第06章_异常处理
一. 异常的概念: 若程序都按我们事先设定的计划运行为正常执行,但通常会出现我们事先预料之外的其他情况,称为程序发生异常, 在java中会对一些可能出现异常的代码进行分类,达到尽量对可能发生的异常进行 ...
- Python基础知识之5——函数基础
函数 函数是一个独立且封闭完成特定功能的代码块,可以在任何地方被调用.Python内置了很多函数,我们可以直接调用,使用的时候,先查询下Python的官方文档即可: http://docs.pytho ...
- HTML加载顺序
一.js执行顺序 //1. 外部引入的js文件,会异步下载并且执行(<script>块中的语句),根据引入的位置会在不同时刻执行 //2.$().ready(function() {}) ...
- kubernetes istio的快速安装和使用例子
安装 [root@master ~]# wget https://github.com/istio/istio/releases/download/1.1.5/istio-1.1.5-linux.ta ...
- [NOI2007]生成树计数环形版
NOI2007这道题人类进化更完全之后出现了新的做法 毕姥爷题解: 于是毕姥爷出了一道环形版的这题(test0814),让我们写这个做法 环形的情况下,k=5的时候是162阶递推. 求这个递推可以用B ...
- (15)python打包
.py文件在没有安装python软件的电脑上是不能被执行的
- Jodd - Java界的瑞士军刀轻量级工具包!
Jodd介绍 Jodd是对于Java开发更便捷的开源迷你框架,包含工具类.实用功能的集合,总包体积不到1.7M. Jodd构建于通用场景使开发变得简单,但Jodd并不简单!它能让你把事情做得更好,实现 ...