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粒子引擎的更多相关文章

  1. iOS 烟花撒花效果,图层渐变,图层倒影特效。CAEmitterLayer粒子发射器

    iOS 烟花撒花效果,图层渐变,图层倒影特效.CAEmitterLayer粒子发射器 上一节我写了一个关于视图图层的相关类,有关CALayer这个类的使用和一些使用方法,详细看这里,就是我们在处理视图 ...

  2. iOS CALayer之CAEmitterLayer粒子发射器的神奇效果

    https://www.jianshu.com/p/c54ffd7412e7 想必以前QQ空间的点赞效果大家都知道吧,点赞之后按钮周围会有一圈爆裂的小圆点:还有微信的红包雨表情动画等,以及烟花,火焰效 ...

  3. CAEmitterLayer 粒子发射器

    在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer.CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果. CAEm ...

  4. 雪花降落CAEmitterLayer粒子效果

    CAEmitterLayer 实现雪花效果   首先需要导入#import <QuartzCore/QuartzCore.h>   /**在iOS 5中,苹果引入了一个新的CALayer子 ...

  5. 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎

    Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...

  6. 一起用HTML5 canvas做一个简单又骚气的粒子引擎

    前言 好吧,说是"粒子引擎"还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看demo 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单 ...

  7. iOS 开发之粒子效果

    本文由糖炒小虾.Benna翻译 ,校对:sai.u0u0.iven.子龙山人 iOS 5中的UIKit粒子系统教程 Ray的话:这是第15篇.也是最后一篇<iOS 5 盛宴>中的iOS 5 ...

  8. iOS:使用模板引擎渲染HTML界面

    在实际开发中,UIWebView控件接受一个HTML内容,用于相应的界面,下面是该API的接口: - (void)loadHTMLString:(NSString *)string baseURL:( ...

  9. iOS中的物理引擎

    目前知名的2D物理引擎有 Box2d,和Chipmunk,这些是跨平台的.但苹果本身也封装了一个物理引擎, UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架.这可以让开发人员 ...

随机推荐

  1. spring boot 项目打成war,丢入tomcat独立运行

    小插曲:通过cmd运行startup.bat,cmd界面显示乱码 解决方法:进入tomcat目录,conf文件夹,用编辑器打开logging.properties 将java.util.logging ...

  2. 【POJ】2236 Wireless Network

    题目链接:http://poj.org/problem?id=2236 题意:给你n台计算机的坐标.d是可通信的最大距离.有两个操作. 1.O p 表示修复计算机p. 2.S p q表示询问pq是否能 ...

  3. Error resolving template,template might not exist or might not be accessible by any of the configured Template Resolvers

    template might not exist or might not be accessible by any of the configured Template Resolvers at o ...

  4. 与960 Grid System相关的那些问题

    为什么是960px? 一直以来,网页设计师都希望寻找一个理想的页面宽度值,既能适应大部分屏幕,又尽可能的在一行显示更多的信息. 我们首先会考虑的是全屏自适应,但这并非一个好的解决方案.一方面,需要做一 ...

  5. java oop第07章_集合框架

    一. 什么是集合: 在Java中提供了一些可以保存同一数据类型的数据集称为集合,就是规定了一些集合的规范(接口.抽象类.实现类)及方法, 方便我们程序在保存数据时进行增.删.改.查操作,编程更加高效. ...

  6. php代码post请求

    <?php /** * 发送post请求 * @param string $url 请求地址 * @param array $post_data post键值对数据 * @return stri ...

  7. 【笔记篇】单调队列优化dp学习笔记&&luogu2569_bzoj1855股票交♂易

    DP颂 DP之神 圣洁美丽 算法光芒照大地 我们怀着 崇高敬意 跪倒在DP神殿里 你的复杂 能让蒟蒻 试图入门却放弃 在你光辉 照耀下面 AC真心不容易 dp大概是最经久不衰 亘古不化的算法了吧. 而 ...

  8. node---处理post请求

    //nodejs 处理post请求 // 异步 const http =require('http') const server=http.createServer((req,res)=>{ i ...

  9. 【JZOJ6273】欠钱

    description analysis 读懂题就可知\(b\)的收益即为\(a\)到\(b\)这一条链上边权的最小值 那么就是动态维护一个森林,询问链上最小值,同时必须满足儿子走向父亲 明显\(LC ...

  10. 解析Spring第二天

    目的:使用spring中纯注解的方式 前言:同样是使用idea创建一个普通的maven工程(如何创建一个普通的Maven工程可以参考mybatis入门第一天的详解). bean管理类常用的4个注解(作 ...