iOS_使用CAEmitterLayer实现火焰(发散)效果

上一篇文章里我们使用CAEmitterLayer实现了飘落效果,今天我们来实现火焰效果,先看一下效果图:
火焰效果一.gif
火焰效果二.gif

代码如下:

- (void)getBoomAnimation
{
    //创建一个CAEmitterLayer,大小同view一样
    CAEmitterLayer *emitter = [CAEmitterLayer layer];
    emitter.frame = self.view.bounds;
    [self.view.layer addSublayer:emitter];
    //渲染模式!!!一共有五个效果,修改了效果会有区分
    emitter.renderMode = kCAEmitterLayerBackToFront;
    //整体位置
    emitter.emitterPosition = CGPointMake(emitter.frame.size.width / 2.0, emitter.frame.size.height / 2.0);
    //每个图像单位
    CAEmitterCell *cell = [[CAEmitterCell alloc] init];
    cell.contents = (__bridge id)[UIImage imageNamed:@"2"].CGImage;
    //图像的出现频率(每秒钟图片出现的数量)
    cell.birthRate = 50;
    //每个图像的生命周期
    cell.lifetime = 6.0;
    //图片背景色,不设置就是原图
    cell.color = [UIColor yellowColor].CGColor;
    //透明度每过一秒就是减少0.5
    cell.alphaSpeed = -0.2;
    //发射速度
    cell.velocity = 50;
    //每个图像速度范围
    cell.velocityRange = 100;
    //散射的范围,目前是向四周
    cell.emissionRange = M_PI * 2.0;
    //开始动画
    emitter.emitterCells = @[cell];
}

在使用的地方调用即可:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self getBoomAnimation];
    // Do any additional setup after loading the view, typically from a nib.
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,355评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,398评论 18 399
  • 今天课好多,完成了五项,单片机比我想象的多。英语没完成,不过看了很久书。学了一点电力电子。 今天早上可以,单片机课...
    天才宽宽阅读 1,423评论 0 0
  • 现在是2017年2月8日正午12点,窗外的阳光穿过窗帘散在我的小床上,我抱着电脑,坐在床上,敲打出我在简书的第一篇...
    整个人都萌萌哒阅读 1,526评论 7 1
  • 10年后的你,你好,我是10年前的你,现在的你好吗?此时此刻的你在熬夜吗?你是熬夜在写策划吗?或者是你在熬夜看电视...
    hello寒树阅读 1,774评论 0 2

友情链接更多精彩内容