CAEmitterLayer(粒子效果)

1.使用系统自带的类可以实现烟花等很绚丽的效果(下面是一个点击屏幕释放烟花,直接上代码,里面会有注释)

2.在这里,我将CAEmitterLayer看作是一个发射图层,emitterPosition属性设置它的粒子发射点,CAEmitterCell设置它将要发射的粒子的颜色,发射半径,发射方式等。

3.在这个类的使用中,如果需要加入点击屏幕的事件,那么多数需要用到接受粒子的坐标,然后将它存放到数组的函数,在这介绍一下,将CGPoint 结构体在数组中的存取的方式

存:[myArray addObject: NSStringFromCGPoint(myPoint)];

取:CGPointFromString((NSString*)[xxx objectAtIndex:0])

注:工程中必须导入<QuartzCore/QuartzCore.h>框架

#import "TouchStar.h"

#import <QuartzCore/QuartzCore.h>

@implementation TouchStar

{

CAEmitterLayer *starEmitter;

}

- (instancetype)initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];

if (self) {

starEmitter = [CAEmitterLayer layer];//创建一个显示粒子的图层

starEmitter.frame = self.layer.bounds;//设置他的大小

[self.layer addSublayer:starEmitter];

starEmitter.renderMode = kCAEmitterLayerAdditive;//粒子显示时的模式,这种是最亮的

//create particle emitter layer

CAEmitterCell *cell1 = [[CAEmitterCell alloc]init];

cell1.contents = (__bridge id)[UIImage imageNamed:@"9.png"].CGImage;//contents 这个和CALayer一样,只是用来设置图片

cell1.birthRate =100; //每秒某个点产生的effectCell数量

cell1.lifetime = 5.0; //粒子的生命周期,既在屏幕上的显示时间要多长。

cell1.color = [UIColor blueColor].CGColor;

cell1.alphaSpeed = -0.5;//就是说粒子的透明度每过一秒就是减少0.5,

cell1.velocity = 50;  //velocity 表示cell向屏幕右边飞行的速度

cell1.velocityRange = 100; //velocityRange 在右边什么范围内飞行

cell1.emissionRange = M_PI;//emissionRange表 +- 角度扩散

//设置两种不同颜色的粒子,你也可以设置其他的颜色,形成绚丽的烟花效果

CAEmitterCell *cell = [[CAEmitterCell alloc]init];

cell.contents = (__bridge id)[UIImage imageNamed:@"9.png"].CGImage;

cell.birthRate = 100;

cell.lifetime = 5.0;

cell.color = [UIColor redColor].CGColor;

cell.alphaSpeed = -0.4;

cell.velocity = 50;

cell.velocityRange = 100;

cell.emissionRange = M_PI;

//将设置好的粒子加到发射器中

starEmitter.emitterCells = @[cell,cell1];

}

return self;

}

#pragma mark

#pragma mark - 接收屏幕触摸点

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

starEmitter.birthRate =100;

//[touches anyObject]获取屏幕触摸点中的任意一点

// locationInView 返回CGPoint类型,

starEmitter.emitterPosition =[[touches anyObject] locationInView:self];

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

//1.当触摸结束之后,将粒子的发射量设置为0,

//2.然后当再次接受到屏幕点击的时候,(touchesBegan:)在将发射图层的发射点的位置设置为你接收到的位置

//3.然后在将发射量打开即可

starEmitter.birthRate = 0;

}

@end

时间: 2024-10-10 01:36:13

CAEmitterLayer(粒子效果)的相关文章

CAEmitterLayer 粒子效果(发射器)

//创建Layer CAEmitterLayer *emitterLayer = [CAEmitterLayer layer]; //边框 emitterLayer.borderWidth = 1.0f; //尺寸 emitterLayer.frame = CGRectMake(100, 100, 100, 100); emitterLayer.masksToBounds = YES; //发射点 emitterLayer.emitterPosition = CGPointMake(0, 0);

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

iOS 烟花撒花效果,图层渐变,图层倒影特效.CAEmitterLayer粒子发射器 上一节我写了一个关于视图图层的相关类,有关CALayer这个类的使用和一些用法,具体看这里,就是我们在处理视图的时候要对他的图层来进行修改,需要注意的几个地方,还有锚点的介绍,然后这篇主要说一个利用CALayer里面的一个类来实现一个烟花的特效. 这个就是利用了CAEmitterLayer粒子发射器图层来制作的一个效果,这个动态截图工具也是下面的朋友推荐的,效果很好很不错mac版地址,就是通过一个发射点来发射一

使用带粒子效果的 CAEmitterLayer

1.用CAEmitterLayer产生粒子效果 2.封装CAEmitterLayer 3.封装下雪.下雨的粒子效果控件 一.用CAEmitterLayer产生粒子效果 - (void)emitterLayer { // 1.创建出Layer CAEmitterLayer *emitterLayer = [CAEmitterLayer layer]; // 显示边框 emitterLayer.borderWidth = 1.f; // 给定尺寸 emitterLayer.frame = CGRec

能产生粒子效果的CAEmitterLayer

下雪效果: // // RootViewController.m // Cell // // Copyright (c) 2014年 Y.X. All rights reserved. // #import "RootViewController.h" @interface RootViewController () @end @implementation RootViewController - (void)viewDidLoad { [super viewDidLoad]; se

iOS 开发之粒子效果

本文由糖炒小虾.Benna翻译 ,校对:sai.u0u0.iven.子龙山人 iOS 5中的UIKit粒子系统教程 Ray的话:这是第15篇.也是最后一篇<iOS 5 盛宴>中的iOS 5教程!这篇教程来自我们的新书<iOS 5 教程>中的一篇免费预览章节.这个礼拜三我们将迎来<iOS 5 盛宴>系列的最后一次发布——来自史诗般的<iOS 5 盛宴>奉送,最后一次#ios5feast的广播!:] 这是篇教程由iOS教程小组成员Marin Todorov所撰写

iOS动画开发之五——炫酷的粒子效果

iOS动画开发之五--炫酷的粒子效果 在上几篇博客中,我们对UIView层的动画以及iOS的核心动画做了介绍,基本已经可以满足iOS应用项目中所有的动画需求,如果你觉得那些都还不够炫酷,亦或是你灵光一现,想用UIKit框架写出一款炫酷的休闲游戏,那个有一个东西可以帮到你:iOS的粒子效果引擎. 一.粒子发射器 iOS中的粒子效果有两部分组成,一部分为发射器,设置例子发射的宏观属性,另一部分是粒子单元,用于设置相应的粒子属性.粒子发射器是基于Layer层,没错,又是Layer,他的全名叫做: CA

cocos基础教程(8)粒子效果

简介 粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象.物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸.烟花.水流)提供了方便. 粒子属性 一个强大的粒子系统它必然具备了多种多样的属性,这样才能配置出多样的粒子.下面就来看看粒子系统的主要属性吧. 主要属性: _duration 发射器生存时间,即它可以发射粒子的时间,注意这个时间和粒子生存时间不同.单位秒,-1表示永远:粒子发射结束后可点击工具栏的播放按钮再次发射 _emissionRa

关于Unity中粒子效果的使用

粒子效果1: 游戏中会有很炫酷的特效,比如爆炸,水花,火焰等;2: unity提供粒子编辑器,方便特效人员来开发很炫酷的特效;3.粒子效果一般有专门的粒子特效师来做,我们只需要拿来用就好了,很多参数没必要掌握. Particle System组件面板 1: 粒子系统主体;2: 喷射(Emission);3: 形态(shape);4: 生命周期内的速度偏移(velocity over lifetime);5: 生命周期内的限制速度(limit velocity over lifetime);6:

IOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果

一.转盘(裁剪图片.自定义按钮.旋转) 1.裁剪图片 将一张大图片裁剪为多张 // CGImageCreateWithImageInRect:用来裁剪图片 // image:需要裁剪的图片 // rect:裁剪图片的尺寸,传递是像素 CGImageRef norImage = CGImageCreateWithImageInRect(norBigImage.CGImage, clipRect); 2.每次点击按钮立马变为选中状态,并且取消上次的按钮的选中状态 当然还要重写- (void)setH