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框架.这可以让开发人员 ...
随机推荐
- DRF的序列化组件
目录 DRF的序列化组件 Serializer组件 序列化 反序列化 ModelSerializer组件 序列化和反序列化 自定义Response方法 基表相关 DRF中ORM的多表关联操作 外键设计 ...
- springboot中参数处理
springboot1中处理是这样的 @Configuration public class WebConfig extends WebMvcConfigurerAdapter{ @Autowired ...
- Docker学习のWindows下如何访问Docker本身的虚拟机
获取可访问Docker守护程序的容器 docker run --privileged -it -v /var/run/docker.sock:/var/run/docker.sock jongalla ...
- spring MVC 转发与重定向(传参)
return "forward:index.jsp"; //转发 return "forward:user.do?method=reg5"; //转发 ret ...
- ASP.NET 页面的生命周期
本文转载自清风飘过的博客,地址:http://www.cnblogs.com/couhujia/archive/2010/04/23/1718405.html 页面生命期分三个阶段:建立阶段,回发阶段 ...
- protobuf文档翻译-安装,数据格式及编码规范
Install Download protobuf: https://github.com/protocolbuffers/protobuf/releases unzip protoc-3.8.0-l ...
- memset 初始化 不同数值 打表
#include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #in ...
- 【JZOJ1667】【BZOJ1801】【luoguP2051】中国象棋
description 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮.请问有多少种放置方法?中国象棋中炮的行走方式大家应该很清楚吧. analysis \(DP\),容 ...
- 一阶段项目 总结 之 两张图片对比 手写 jquery 也可以使用beer slider 插件
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title> ...
- SQL Server Download
{ https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads }