商用图片做公司网站可以吗,网页设计与制作教程试题,永久免费的ip代理,六盘水住房和城乡建设部网站在iOS 5中#xff0c;苹果引入了一个新的CALayer子类叫做CAEmitterLayer。CAEmitterLayer是一个高性能的粒子引擎#xff0c;被用来创建实时例子动画如#xff1a;烟雾#xff0c;火#xff0c;雨等等这些效果。 CAEmitterLayer看上去像是许多CAEmitterCell的容器#xf… 在iOS 5中苹果引入了一个新的CALayer子类叫做CAEmitterLayer。CAEmitterLayer是一个高性能的粒子引擎被用来创建实时例子动画如烟雾火雨等等这些效果。 CAEmitterLayer看上去像是许多CAEmitterCell的容器这些CAEmitierCell定义了一个例子效果。你将会为不同的例子效果定义一个或多个CAEmitterCell作为模版同时CAEmitterLayer负责基于这些模版实例化一个粒子流。一个CAEmitterCell类似于一个CALayer它有一个contents属性可以定义为一个CGImage另外还有一些可设置属性控制着表现和行为。我们不会对这些属性逐一进行详细的描述你们可以在CAEmitterCell类的头文件中找到。 我们来举个例子。我们将利用在一圆中发射不同速度和透明度的粒子创建一个火爆炸的效果。清单6.13包含了生成爆炸的代码。图6.13是运行结果 清单6.13 用CAEmitterLayer创建爆炸效果 #import ViewController.h
#import QuartzCore/QuartzCore.hinterface ViewController ()property (nonatomic, weak) IBOutlet UIView *containerView;endimplementation ViewController- (void)viewDidLoad
{[super viewDidLoad];//create particle emitter layerCAEmitterLayer *emitter [CAEmitterLayer layer];emitter.frame self.containerView.bounds;[self.containerView.layer addSublayer:emitter];//configure emitteremitter.renderMode kCAEmitterLayerAdditive;emitter.emitterPosition CGPointMake(emitter.frame.size.width / 2.0, emitter.frame.size.height / 2.0);//create a particle templateCAEmitterCell *cell [[CAEmitterCell alloc] init];cell.contents (__bridge id)[UIImage imageNamed:Spark.png].CGImage;cell.birthRate 150;cell.lifetime 5.0;cell.color [UIColor colorWithRed:1 green:0.5 blue:0.1 alpha:1.0].CGColor;cell.alphaSpeed -0.4;cell.velocity 50;cell.velocityRange 50;cell.emissionRange M_PI * 2.0;//add particle template to emitteremitter.emitterCells [cell];
}
end CAEMitterCell的属性基本上可以分为三种 这种粒子的某一属性的初始值。比如color属性指定了一个可以混合图片内容颜色的混合色。在示例中我们将它设置为桔色。例子某一属性的变化范围。比如emissionRange属性的值是2π这意味着例子可以从360度任意位置反射出来。如果指定一个小一些的值就可以创造出一个圆锥形指定值在时间线上的变化。比如在示例中我们将alphaSpeed设置为-0.4就是说例子的透明度每过一秒就是减少0.4这样就有发射出去之后逐渐小时的效果。CAEmitterLayer的属性它自己控制着整个例子系统的位置和形状。一些属性比如birthRatelifetime和celocity这些属性在CAEmitterCell中也有。这些属性会以相乘的方式作用在一起这样你就可以用一个值来加速或者扩大整个例子系统。其他值得提到的属性有以下这些 preservesDepth是否将3D例子系统平面化到一个图层默认值或者可以在3D空间中混合其他的图层renderMode控制着在视觉上粒子图片是如何混合的。你可能已经注意到了示例中我们把它设置为kCAEmitterLayerAdditive它实现了这样一个效果合并例子重叠部分的亮度使得看上去更亮。如果我们把它设置为默认的kCAEmitterLayerUnordered效果就没那么好看了. 图6.13 火焰爆炸效果 转载于:https://www.cnblogs.com/Free-Thinker/p/5362225.html