iOS开发实现粒子效果

最近打开QQ的空间会有灯笼掉落下来,操作背后的控件不受影响,自己想实现这样一个类似的功能,查阅了一下资料,有一个CAEmitterLayer的东东。
以下是CAEmitterLayer的主要属性

contents = (__bridge id)[UIImage imageNamed:@"snow.jpg"].CGImage;
birthRate = 100;//表示粒子的生产速度,值越大,生产的速度越大
lifetime = 10.0 ;//表示粒子的生命周期,在该范围内,粒子不会消失
alphaSpeed = 0;//粒子透明度的变化速度,为负值时说明透明度慢慢变低
velocity = 150;//表示粒子的位移加速度
velocityRange = 100;//表示粒子的位移加速范围 与上一个参数配合使用
emissionLongitude = M_PI/2;//粒子发射中心方向
emissionRange = M_PI/2;//粒子发射范围
scale = 0.25;//大小

以下是主要代码

CAEmitterLayer *emitter = [CAEmitterLayer layer];
    emitter.frame = self.view.bounds;
    [self.view.layer addSublayer:emitter];
    emitter.renderMode = kCAEmitterLayerAdditive;
    emitter.emitterPosition = CGPointMake(emitter.frame.size.width/2.0, -200);
    
    CAEmitterCell *cell = [[CAEmitterCell alloc] init];
    cell.contents = (__bridge id)[UIImage imageNamed:@"snow.jpg"].CGImage;
    cell.birthRate = 100;//表示粒子的生产速度,值越大,生产的速度越大
    cell.lifetime = 10.0 ;//表示粒子的生命周期,在该范围内,粒子不会消失
    cell.alphaSpeed = 0;//粒子透明度的变化速度,为负值时说明透明度慢慢变低
    cell.velocity = 150;//表示粒子的位移加速度
    cell.velocityRange = 100;//表示粒子的位移加速范围 与上一个参数配合使用
    cell.emissionLongitude = M_PI/2;//粒子发射中心方向
    cell.emissionRange = M_PI/2;//粒子发射范围
    cell.scale = 0.25;
    emitter.emitterCells = @[cell];

CAEmitterLayer还可以实现放烟花效果

demo地址:http://code.cocoachina.com/view/133842

你可能感兴趣的:(iOS开发实现粒子效果)