广告
我是jpg欢迎大家一起交流 QQ群 139852091 公众号
开篇
项目用到了一个粒子效果,本来是用GIF的,但是GIF倒出的时候,一些细节的圆角失真,变成了方形,没办法,只能代码写,下面是粒子的一些基本属性,看网上把粒子发射器比作大炮,觉得比喻的非常合理,每行都有注释,一大炮结构为详解,应该很清楚
CAEmitterLayer可理解为大炮 ,下面是设置大炮的一些属性
self.fireEmitter = [CAEmitterLayer layer]; //创建一个大炮
self.fireEmitter.emitterPosition = CGPointMake(35, 70);//设置大炮的发射位置
self.fireEmitter.emitterSize = CGSizeMake(50, 0);//发射源大小,也就是炮口大小
self.fireEmitter.emitterShape = kCAEmitterLayerLine;//发射的形状,可以理解为区域性爆炸,还是远程爆炸
self.fireEmitter.emitterMode = kCAEmitterLayerOutline;//发射模式
CAEmitterCell 可以理解为大炮的子弹 ,下面是设置�子弹的一些属性
CAEmitterCell *ringCell1 = [CAEmitterCell emitterCell];
//设置炮弹的名字
[ringCell1 setName:@"ringCell1"];
//每秒多少个
ringCell1.birthRate = 0.8;
//存活时间
ringCell1.lifetime = 6.0;
//初速度范围
ringCell1.velocityRange = 2;
//y方向的加速度(正数为向下,负数为向上)
ringCell1.yAcceleration = -20;
//周围发射角度
ringCell1.emissionRange = 0;
//设置放大或者缩小
ringCell1.scale = 0.2;
//炮弹的颜色
ringCell1.color = [UIColorFromRGBA(0x009efc,0.5) CGColor];
//炮弹的主要原料
ringCell1.contents = (id) [[UIImage imageNamed:@"DazRing"] CGImage];
//填装炮弹
self.fireEmitter.emitterCells = @[ringCell1,ringCell2,ringCell3];
//扣动扳机准备发射
[view.layer addSublayer:self.fireEmitter];
//当view出现在屏幕上时候,发射炮弹
最后传个效果吧
33333.gif广告
我是jpg欢迎大家一起交流 QQ群 139852091 公众号
网友评论