美文网首页
粒子效果-烟花

粒子效果-烟花

作者: 蛋白质corn | 来源:发表于2017-12-21 10:30 被阅读0次

    //分为3种粒子,子弹粒子,爆炸粒子,散开粒子

    CAEmitterLayer *fireworksEmitter = [CAEmitterLayer layer];

    CGRect viewBounds = self.view.layer.bounds;

    fireworksEmitter.emitterPosition = CGPointMake(viewBounds.size.width/2.0, viewBounds.size.height);

    fireworksEmitter.emitterSize = CGSizeMake(viewBounds.size.width/2.0, 0.0);

    fireworksEmitter.emitterMode = kCAEmitterLayerOutline;

    fireworksEmitter.emitterShape = kCAEmitterLayerLine;

    fireworksEmitter.renderMode = kCAEmitterLayerAdditive;

    fireworksEmitter.seed = (arc4random()%100)+1;

    // Create the rocket

    CAEmitterCell* rocket = [CAEmitterCell emitterCell];

    rocket.birthRate = 1.0;

    rocket.emissionRange = 0.25 * M_PI;  // some variation in angle

    rocket.velocity = 380;

    rocket.velocityRange = 100;

    rocket.yAcceleration = 75;

    rocket.lifetime = 1.02; // we cannot set the birthrate < 1.0 for the burst

    //小圆球图片

    rocket.contents = (id) [[UIImage imageNamed:@"DazRing"] CGImage];

    rocket.scale = 0.2;

    rocket.color = [[UIColor redColor] CGColor];

    rocket.greenRange = 1.0; // different colors

    rocket.redRange = 1.0;

    rocket.blueRange = 1.0;

    rocket.spinRange = M_PI; // slow spin

    // the burst object cannot be seen, but will spawn the sparks

    // we change the color here, since the sparks inherit its value

    CAEmitterCell* burst = [CAEmitterCell emitterCell];

    burst.birthRate = 1.0; // at the end of travel

    burst.velocity = 0;        //速度为0

    burst.scale = 2.5;      //大小

    burst.redSpeed =-1.5; // shifting

    burst.blueSpeed =+1.5; // shifting

    burst.greenSpeed =+1.0; // shifting

    burst.lifetime = 0.35;    //存在时间

    // and finally, the sparks

    CAEmitterCell* spark = [CAEmitterCell emitterCell];

    spark.birthRate = 400;

    spark.velocity = 125;

    spark.emissionRange = 2* M_PI; // 360 度

    spark.yAcceleration = 75; // gravity

    spark.lifetime = 3;

    //星星图片

    spark.contents = (id) [[UIImage imageNamed:@"爱心"] CGImage];

    spark.scaleSpeed =-0.2;

    spark.greenSpeed =-0.1;

    spark.redSpeed = 0.4;

    spark.blueSpeed =-0.1;

    spark.alphaSpeed =-0.25;

    spark.spin = 2* M_PI;

    spark.spinRange = 2* M_PI;

    // 3种粒子组合,可以根据顺序,依次烟花弹-烟花弹粒子爆炸-爆炸散开粒子

    fireworksEmitter.emitterCells = [NSArray arrayWithObject:rocket];

    rocket.emitterCells = [NSArray arrayWithObject:burst];

    burst.emitterCells = [NSArray arrayWithObject:spark];

    [self.view.layer addSublayer:fireworksEmitter];

    相关文章

      网友评论

          本文标题:粒子效果-烟花

          本文链接:https://www.haomeiwen.com/subject/rovowxtx.html