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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容