CoreAnimation 粒子效果

1.CoreAnimation 特殊圖層

圖層

2.CAEmitterLayer->CALayer

  • CAEmitterLayer 使用類似于 tableView
    // 1. 設置CAEmitterLayer
    CAEmitterLayer * rainLayer = [CAEmitterLayer layer];
    [self.view.layer addSublayer:rainLayer];

    //2.發(fā)射形狀--線性
    rainLayer.emitterShape = kCAEmitterLayerLine;
    //發(fā)射模式
    rainLayer.emitterMode = kCAEmitterLayerSurface;
    //發(fā)射源大小
    rainLayer.emitterSize = self.view.frame.size;
    //發(fā)射源位置 y最好不要設置為0 最好<0
    rainLayer.emitterPosition = CGPointMake(self.view.bounds.size.width * 0.5, -10);

    // 3. 配置cell
    CAEmitterCell * snowCell = [CAEmitterCell emitterCell];
    //粒子內(nèi)容
    snowCell.contents = (id)[[UIImage imageNamed:@"rain_white"] CGImage];
    //每秒產(chǎn)生的粒子數(shù)量的系數(shù)
    snowCell.birthRate = 25.f;
    //粒子的生命周期
    snowCell.lifetime = 20.f;
    //speed粒子速度.圖層的速率。用于將父時間縮放為本地時間,例如,如果速率是2,則本地時間的進度是父時間的兩倍。默認值為1。
    snowCell.speed = 10.f;
    //粒子速度系數(shù), 默認1.0
    snowCell.velocity = 10.f;
    //每個發(fā)射物體的初始平均范圍,默認等于0
    snowCell.velocityRange = 10.f;
    //粒子在y方向的加速的
    snowCell.yAcceleration = 1000.f;
    //粒子縮放比例: scale
    snowCell.scale = 0.1;
    //粒子縮放比例范圍:scaleRange
    snowCell.scaleRange = 0.f;
    // 3.添加到圖層上
    rainLayer.emitterCells = @[snowCell];
    // 開始動畫
    [rainLayer setValue:@1.f forKeyPath:@"birthRate"];

demo下載地址:http://code.cocoachina.com/view/1000050

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容