新浦京81707con > 首页 > iOS动画之用CAEmitterLayer实现炫酷的动画,粒子动画

原标题:iOS动画之用CAEmitterLayer实现炫酷的动画,粒子动画

浏览次数:119 时间:2020-03-22

图片 1CAEmitterLayer.gif

CAEmitterLayer 看上去疑似非常多 CAEmitterCell 的容器,那几个 CAEmitterCell 定义了七个例子效果。你将会为分歧的例证效果定义二个或几个 CAEmitterCell 作为模版,相同的时间 CAEmitterLayer 肩负依照这一个模版实例化三个粒子流。一个CAEmitterCell 相仿于几个 CALayer :它有四个 contents 属性能够定义为叁个CGImage ,别的还应该有部分可设置属性决定着表现和行事。

CAEmitterLayer 是多少个高品质的粒子引擎,被用来创建复杂的粒子动漫如:蒸发雾,火,雨等作用,并且很好地调节了质量。

如上解释来源于网络

苹果给出的演说是:

自己来举个简单明了的例子吧CAEmitterLayer就好像大炮,决定了(1State of Qatar哪里发射(2卡塔尔(قطر‎大炮有多大

CAEmitterLayer 看上去疑似许多 CAEmitterCell 的容器,那些 CAEmitterCell 定义了一个事例效果。你将会为不一致的例子效果定义三个或多少个 CAEmitterCell 作为模版,同不时常间 CAEmitterLayer 负担根据这几个模版实例化三个粒子流。三个CAEmitterCell 雷同于一个 CALayer :它有一个 contents 属性能够定义为一个CGImage ,别的还或然有一部分可设置属性决定着表现和行事。

CAEmitterCell犹如炮弹,认为了(1卡塔尔(قطر‎初速度(2卡塔尔加快度(3State of Qatar炮弹类型(4卡塔尔(قطر‎发射后的角度 等等

以上解释来源于互连网

第一提示CAEmitterLayer自乙巳有怎么难度,首要在于两点:

笔者来举个简单明了的例证吧CAEmitterLayer就如大炮,决定了火炮有多大CAEmitterCell就像炮弹,感觉了加快度发出后的角度 等等

属性相当多(一会会把品质都列举出来,不晓得了随即查阅正是卡塔尔国

首先提示CAEmitterLayer自身未有啥难度,首要在于两点:

调参数相比较为难(想要有好的卡通片效果还得日益的去调动各样参数,可是尚未难度正是有一点点费时间State of Qatar

  • 质量很多(一会会把质量都列举出来,不明了了随即查看便是卡塔尔(قطر‎
  • 调参数比较艰苦(想要有好的卡通效果还得慢慢的去调动各个参数,不过没有难度正是有一点费时间卡塔尔

CAEmitterLayer(大炮)的属性

/* The center of the emission shape. Defaults to (0, 0, 0). Animatable. */发射源地方。注意,是三个空间坐标。并且标志为 Animatable. 也正是说可以用 CoreAnimation 移动发射源地点

@property CGPoint emitterPosition;

@property CGFloat emitterZPosition;

“/* The size of the emission shape. Defaults to (0, 0, 0). Animatable.

* Depending on the `emitterShape' property some of the values may be

* ignored. */

发射源大小。注意除了宽和高之外,还可能有纵向深度。

文档中还提到,那三个天性一时候只怕会因为设置了 emitterShape 而被忽视,具体景况实际尝试一下就可以了。

@property CGSize emitterSize;

@property CGFloat emitterDepth;

“/* A string defining the type of emission shape used. Current options are:

* `point' (the default), `line', `rectangle', `circle', `cuboid' and

* `sphere'. */

CA_EXTERN NSString * const kCAEmitterLayerPoint

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

CA_EXTERN NSString * const kCAEmitterLayerLine

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

CA_EXTERN NSString * const kCAEmitterLayerRectangle

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

CA_EXTERN NSString * const kCAEmitterLayerCuboid

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

CA_EXTERN NSString * const kCAEmitterLayerCircle

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

CA_EXTERN NSString * const kCAEmitterLayerSphere

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

emitterShape 决定了发射源的形制。

@property(copy) NSString *emitterShape;

/* A string defining how particles are created relative to the emission

* shape. Current options are `points', `outline', `surface' and

* `volume' (the default). */

CA_EXTERN NSString * const kCAEmitterLayerPoints

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

CA_EXTERN NSString * const kCAEmitterLayerOutline

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

CA_EXTERN NSString * const kCAEmitterLayerSurface

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

CA_EXTERN NSString * const kCAEmitterLayerVolume

__OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);

emitterMode 决定了发射源的发出格局。

@property(copy) NSString *emitterMode;

/* The center of the emission shape. Defaults to . Animatable. */发射源位置。注意,是一个空间坐标。并且标记为 Animatable. 也就是说可以用 CoreAnimation 移动发射源位置@property CGPoint emitterPosition;@property CGFloat emitterZPosition; 

“/* The size of the emission shape. Defaults to . Animatable. * Depending on the `emitterShape' property some of the values may be * ignored. */发射源大小。注意除了宽和高之外,还有纵向深度。文档中还提到,这两个属性有时候可能会因为设置了 emitterShape 而被忽略,具体情况实际尝试一下就可以了。@property CGSize emitterSize;@property CGFloat emitterDepth;

“/* A string defining the type of emission shape used. Current options are: * `point' (the default), `line', `rectangle', `circle', `cuboid' and * `sphere'. */ CA_EXTERN NSString * const kCAEmitterLayerPoint __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);CA_EXTERN NSString * const kCAEmitterLayerLine __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);CA_EXTERN NSString * const kCAEmitterLayerRectangle __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);CA_EXTERN NSString * const kCAEmitterLayerCuboid __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);CA_EXTERN NSString * const kCAEmitterLayerCircle __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);CA_EXTERN NSString * const kCAEmitterLayerSphere __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0); emitterShape 决定了发射源的形状。@property NSString *emitterShape; /* A string defining how particles are created relative to the emission * shape. Current options are `points', `outline', `surface' and * `volume' (the default). */ CA_EXTERN NSString * const kCAEmitterLayerPoints __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);CA_EXTERN NSString * const kCAEmitterLayerOutline __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);CA_EXTERN NSString * const kCAEmitterLayerSurface __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0);CA_EXTERN NSString * const kCAEmitterLayerVolume __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_5_0); emitterMode 决定了发射源的发射模式。@property NSString *emitterMode; 

日常用的多的比方 emitterShape 的 kCAEmitterLayerLine 和 kCAEmitterLayerPoint。那四个从视觉上只怕相比较好界其他,这决定了您的粒子是从一个点「喷」出来的,依然从一条线上各种点「喷」下来,后面一个像焰火,前者像瀑布。鲜明,下雪的功能更像前面一个。

日常用的多的比方 emitterShape 的 kCAEmitterLayerLine 和 kCAEmitterLayerPoint。那八个从视觉上可能对比好界别的,那决定了您的粒子是从三个点「喷」出来的,依然从一条线上各种点「喷」下来,前面一个像焰火,后面一个像瀑布。分明,下雪的法力更像前面一个。

emitterMode 的 kCAEmitterLayerOutline 表示向外侧扩散,假设您的发射源形状是 circle,那么 kCAEmitterLayerOutline 就能以一个圆的点子向外扩散开。

emitterMode 的 kCAEmitterLayerOutline 表示向外面扩散,即便您的发射源形状是 circle,那么 kCAEmitterLayerOutline 就能够以多少个圆的不二法门向外扩散开。

又比如说你想表明一股蒸汽向上喷的机能,就足以设置 emitterShape 为 kCAEmitterLayerLine , emitterMode 为 kCAEmitterLayerOutline。

又譬喻您想表明一股蒸汽向上喷的职能,就足以设置 emitterShape 为 kCAEmitterLayerLine , emitterMode 为 kCAEmitterLayerOutline。

CAEmitterCell(炮弹)的属性

本文由新浦京81707con发布于首页,转载请注明出处:iOS动画之用CAEmitterLayer实现炫酷的动画,粒子动画

关键词: 新浦京81707con 日记本 ios 动画 之用

上一篇:十分钟学会android,应用程序的入口

下一篇:没有了