Cocos2d-x内置粒子系统
內置粒子系統
內置的11粒子系統說明如下:?
-
ParticleExplosion:爆炸粒子效果,屬于半徑模式。
-
ParticleFire:火焰粒子效果,屬于重力徑模式。
-
ParticleFireworks:煙花粒子效果,屬于重力模式。
-
ParticleFlower:花粒子效果,屬于重力模式。
-
ParticleGalaxy:星系粒子效果,屬于半徑模式。
-
ParticleMeteor:流星粒子效果,屬于重力模式。
-
ParticleSpiral:漩渦粒子效果,屬于半徑模式。
-
ParticleSnow:雪粒子效果,屬于重力模式。
-
ParticleSmoke:煙粒子效果,屬于重力模式。
-
ParticleSun:太陽粒子效果,屬于重力模式。
-
ParticleRain:雨粒子效果,屬于重力模式。
?
這11種粒子系統每一個都有如下兩個create函數,通過create函數可以創建粒子對象。
?
粒子系統
簡介
粒子系統是指計算機圖形學中模擬特定現象的技術,它在模仿自然現象、物理現象及空間扭曲上具備得天獨厚的優勢,為我們實現一些真實自然而又帶有隨機性的特效(如爆炸、煙花、水流)提供了方便。Cocos2d-x引擎中就為我們提供了強大的粒子系統,以下是粒子系統的繼承關系圖:
粒子屬性
一個強大的粒子系統它必然具備了多種多樣的屬性,這樣才能配置出多樣的粒子。下面就來看看粒子系統的主要屬性吧。
主要屬性:
- _duration 發射器生存時間,即它可以發射粒子的時間,注意這個時間和粒子生存時間不同。單位秒,-1表示永遠;粒子發射結束后可點擊工具欄的播放按鈕再次發射
- _emissionRate 每秒噴發的粒子數目
- _emitterMode 噴發器模式,有重力模式(GRAVITY)和半徑模式(RADIUS,也叫放射模式)兩種
- _totalParticles 場景中存在的最大粒子數目,往往與_emissionRate配合起來使用
- _isAutoRemoveOnFinish 粒子結束時是否自動刪除
重力模式(modeA):
顧名思義,重力模式模擬重力,可讓粒子圍繞一個中心點移近或移遠,它的優點是非常動態,而且移動有規則。下列各屬性只在重力模式下起作用。
- gravity 重力X
- radiaAccel 粒子徑向加速度,即平行于重力方向的加速度
- radiaAccelVar 粒子徑向加速度變化范圍
- speed 速度
- speedVar 速度變化范圍
- tangentialAccel 粒子切向加速度,即垂直于重力方向的加速度
- tangentialAccelVar 粒子切向加速度變化范圍
半徑模式(modeB):
半徑模式可以使粒子以圓圈方式旋轉,它也可以創造螺旋效果讓粒子急速前進或后退。下列各屬性只在半徑模式下起作用。
- endRadius 結束半徑
- endRadiusVar 結束半徑變化范圍,即結束半徑值的范圍在 (endRadius - endRadiusVar) 和 (endRadius + endRadiusVar )之間,下面類似。
- rotatePerSecond 粒子每秒圍繞起始點的旋轉角度
- rotatePerSecondVar 粒子每秒圍繞起始點的旋轉角度變化范圍
- startRadius 初始半徑
- startRadiusVar 初始半徑變化范圍
-
生命屬性:
- _life 粒子生命,即粒子的生存時間?
- _lifeVar 粒子生命變化范圍
大小屬性:
- _endSize 粒子結束時的大小,-1表示和初始大小一致
- _endSizeVar 粒子結束大小的變化范圍
- _startSize 粒子的初始大小
- _startSizeVar 粒子初始大小的變化范圍
角度屬性:
- _angle 粒子角度
- _angleVar 粒子角度變化范圍
顏色屬性:
- _endColor 粒子結束顏色
- _endColorVar 粒子結束顏色變化范圍
- _startColor 粒子初始顏色
- _startColorVar 粒子初始顏色變化范圍
如果你不想編輯出五顏六色的粒子效果,那應該把_endColorVar,_startColorVar盡量設置為(0, 0, 0, 0)。
位置屬性:
- _positionType 粒子位置類型,有自由模式(FREE)、相對模式(RELATIVE)和打組模式(GROUPED)三種
- _posVar 發射器位置的變化范圍(橫向和縱向)
- _sourcePosition 發射器原始坐標位置
Free自由模式,相對于屏幕自由,不會隨粒子節點移動而移動(可產生火焰、蒸汽等效果);Relative相對模式,相對于被綁定的Node靜止,粒子發射器會隨Node移動而移動,可用于制作移動角色身上的特效等等;Grouped打組模式是相對于發射點的,粒子隨發射器移動而移動。
自旋屬性:
- _endSpin 粒子結束自旋角度
- _endSpinVar 粒子結束自旋角度變化范圍
- _startSpin 粒子開始自旋角度
- _startSpinVar 粒子開始自旋角度變化范圍
紋理渲染屬性:
- _texture 粒子貼圖紋理
- _blendFunc 紋理的混合模式方法,有DISABLE、ALPHA_PREMULTIPLIED、ALPHA_NON_PREMULTIPLIED、ADDITIVE四種類型。
DISABLE = {GL_ONE, GL_ZERO};?
ALPHA_PREMULTIPLIED = {GL_ONE, GL_ONE_MINUS_SRC_ALPHA};?
ALPHA_NON_PREMULTIPLIED = {GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA};?
ADDITIVE = {GL_SRC_ALPHA, GL_ONE};
- GL_ZERO: 表示使用0.0作為因子,實際上相當于不使用這種顏色參與混合運算。
- GL_ONE: 表示使用1.0作為因子,實際上相當于完全的使用了這種顏色參與混合運算。
- GL_SRC_ALPHA:表示使用源顏色的alpha值來作為因子。
- GL_DST_ALPHA:表示使用目標顏色的alpha值來作為因子。
- GL_ONE_MINUS_SRC_ALPHA:表示用1.0減去源顏色的alpha值來作為因子。
- GL_ONE_MINUS_DST_ALPHA:表示用1.0減去目標顏色的alpha值來作為因子。
Cocos2dx使用OpenGL混合原理對圖形進行渲染繪制。混合就是指把兩種顏色混在一起,具體一點就是把某一像素位置原來的顏色和將要畫上去的顏色,通過某種方式混在一起,從而實現特殊的效果。它是一種常用的技巧,通常可以用來實現半透明,你也可以通過不同的設置得到不同的混合結果,產生一些有趣或者奇怪的圖象。
轉載于:https://www.cnblogs.com/slysky/p/3990595.html
總結
以上是生活随笔為你收集整理的Cocos2d-x内置粒子系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式集群的Session问题
- 下一篇: 【R】Rstudio set up