swift 實(shí)現(xiàn)粒子運(yùn)動(dòng)效果

粒子運(yùn)動(dòng)的實(shí)現(xiàn):

  1. 創(chuàng)建發(fā)射器 CAEmitterLayer
  2. 創(chuàng)建粒子 CAEmitterCell

實(shí)現(xiàn)如下:

    // 創(chuàng)建發(fā)射器
    let emitter = CAEmitterLayer()

    // 設(shè)置發(fā)射器位置
    emitter.emitterPosition = point

    // 開啟三維效果
    emitter.preservesDepth = true

    // 創(chuàng)建粒子,并設(shè)置粒子相關(guān)屬性
    var cells = [CAEmitterCell]()
    for i in 0..<10 {
        let cell = CAEmitterCell()

        // 設(shè)置粒子速度
        cell.velocity = 150
        cell.velocityRange = 100
        
        // 設(shè)置粒子大小
        cell.scale = 0.7
        cell.scaleRange = 0.3
        
        // 設(shè)置粒子方向
        cell.emissionLatitude = CGFloat(-M_PI_2)
        cell.emissionRange = CGFloat(M_PI_2 / 6)
        
        // 設(shè)置粒子旋轉(zhuǎn)
        cell.spin = CGFloat(M_PI_2)
        cell.spinRange = CGFloat(M_PI_2 / 2)
        
        // 設(shè)置粒子每秒彈出的個(gè)數(shù)
        cell.birthRate = 2
        
        // 設(shè)置粒子生命存活時(shí)間
        cell.lifetime = 7
        cell.lifetimeRange = 1.5
        
        // 設(shè)置內(nèi)容圖片
        cell.contents = UIImage(named: "good\(i)_30x30")?.cgImage
        
        cells.append(cell)
    }
    
    // 將粒子設(shè)置到發(fā)射器中
    emitter.emitterCells = cells
    
    // 將發(fā)射器的layer添加到父類的layer中
    view.layer.addSublayer(emitter)

歡迎指正!

毛姆說的,閱讀能為自己筑起一個(gè)避難所,幾乎可以避開生命中所有的災(zāi)難。

歡迎關(guān)注我的微信公眾號(hào):LDYG2017, 或掃描下方二維碼關(guān)注. 這里會(huì)分享我的讀書筆記, 愿你我共同進(jìn)步.

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

相關(guān)閱讀更多精彩內(nèi)容

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