粒子系統管理粒子集合的更新和顯示。
new ParticleSystem(options)
Parameters:
options
(Object)
Name | Description |
---|---|
options.show
Boolean
default true
|
是否顯示粒子系統。 |
options.updateCallback
ParticleSystem~updateCallback
|
調用每個幀以更新粒子的回調函數。 |
options.emitter
ParticleEmitter
default new CircleEmitter(0.5)
|
這個系統的粒子發射器。 |
options.modelMatrix
Matrix4
default Matrix4.IDENTITY
|
將粒子系統從模型轉換為世界坐標的4x4變換矩陣。 |
options.emitterModelMatrix
Matrix4
default Matrix4.IDENTITY
|
在粒子系統局部坐標系內轉換粒子系統發射器的4x4變換矩陣。 |
options.emissionRate
Number
default 5
|
每秒要發射的粒子數。 |
options.bursts
Array.<ParticleBurst>
|
一個由ParticleBurst 組成的陣列,周期性地發射出粒子爆發。
|
options.loop
Boolean
default true
|
粒子系統是否應該在它完成時循環其爆發。 |
options.scale
Number
default 1.0
|
設置在粒子壽命期間應用于粒子圖像的比例。 |
options.startScale
Number
|
應用于粒子生命開始時的圖像的初始比例。 |
options.endScale
Number
|
在粒子壽命結束時應用于其圖像的最終比例。 |
options.color
Color
default Color.WHITE
|
設置粒子在其粒子壽命期間的顏色。 |
options.startColor
Color
|
粒子生命開始時的顏色。 |
options.endColor
Color
|
粒子壽命結束時的顏色。 |
options.image
Object
|
要用于公告牌的uri、htmlImageElement或htmlCanvaseElement。 |
options.imageSize
Cartesian2
default new Cartesian2(1.0, 1.0)
|
如果設置,則覆蓋以像素為單位縮放粒子圖像尺寸的最小圖像大小和最大圖像大小輸入。 |
options.minimumImageSize
Cartesian2
|
設置最小邊界(寬度和高度),在其上隨機縮放粒子圖像的像素尺寸。 |
options.maximumImageSize
Cartesian2
|
設置最大界限(寬度和高度),在其下方隨機縮放粒子圖像的像素尺寸。 |
options.speed
Number
default 1.0
|
如果設置,則用該值覆蓋最小速度和最大速度輸入。 |
options.minimumSpeed
Number
|
設置以米/秒為單位的最小界限,在該界限之上將隨機選擇粒子的實際速度。 |
options.maximumSpeed
Number
|
設置以米/秒為單位的最大界限,低于該界限將隨機選擇粒子的實際速度。 |
options.lifetime
Number
default Number.MAX_VALUE
|
粒子系統發射粒子的時間,以秒為單位。 |
options.particleLife
Number
default 5.0
|
如果設置,則使用此值覆蓋MinimumParticleLife和MaximumParicleLife輸入。 |
options.minimumParticleLife
Number
|
設置粒子壽命的可能持續時間的最小限制(以秒為單位),超過該限制將隨機選擇粒子的實際壽命。 |
options.maximumParticleLife
Number
|
設置粒子壽命的可能持續時間的最大限制(以秒為單位),低于此限制將隨機選擇粒子的實際壽命。 |
options.mass
Number
default 1.0
|
以千克為單位設置粒子的最小和最大質量。 |
options.minimumMass
Number
|
以千克為單位設置粒子質量的最小界限。粒子的實際質量將被選作高于該值的隨機量。 |
options.maximumMass
Number
|
以千克為單位設置粒子的最大質量。粒子的實際質量將被選作低于該值的隨機量。 |
Members
bursts : Array.<ParticleBurst>
一個由
ParticleBurst
組成的陣列,周期性地發射出粒子爆發。
-
Default Value:
undefined
complete : Event
當粒子系統達到其壽命結束時觸發事件。
emissionRate : Number
每秒要發射的粒子數。
-
Default Value:
5
emitter : ParticleEmitter
這個粒子發射器
-
Default Value:
CircleEmitter
emitterModelMatrix : Matrix4
在粒子系統局部坐標系內轉換粒子系統發射器的4x4變換矩陣。
-
Default Value:
Matrix4.IDENTITY
endColor : Color
粒子壽命結束時的顏色。
-
Default Value:
Color.WHITE
endScale : Number
在粒子壽命結束時應用于其圖像的最終比例。
-
Default Value:
1.0
image : Object
要用于公告牌的uri、htmlImageElement或htmlCanvaseElement。
-
Default Value:
undefined
isComplete : Boolean
當
true
時,粒子系統已達到其壽命的終點;否則為false
。
lifetime : Number
粒子系統發射粒子的時間,以秒為單位。
-
Default Value:
Number.MAX_VALUE
loop : Boolean
粒子系統是否應該在它完成時循環它的爆發。
-
Default Value:
true
maximumImageSize : Cartesian2
設置最大界限(寬度和高度),在其下方隨機縮放粒子圖像的像素尺寸。
-
Default Value:
new Cartesian2(1.0, 1.0)
maximumMass : Number
以千克為單位設置粒子的最大質量。
-
Default Value:
1.0
maximumParticleLife : Number
設置粒子壽命的可能持續時間的最大限制(以秒為單位),低于此限制將隨機選擇粒子的實際壽命。
-
Default Value:
5.0
maximumSpeed : Number
設置以米/秒為單位的最大界限,低于該界限將隨機選擇粒子的實際速度。
-
Default Value:
1.0
minimumImageSize : Cartesian2
設置最小邊界(寬度和高度),在其上隨機縮放粒子圖像的像素尺寸。
-
Default Value:
new Cartesian2(1.0, 1.0)
minimumMass : Number
以千克為單位設置粒子的最小質量。
-
Default Value:
1.0
minimumParticleLife : Number
設置粒子壽命的可能持續時間的最小限制(以秒為單位),超過該限制將隨機選擇粒子的實際壽命。
-
Default Value:
5.0
minimumSpeed : Number
設置以米/秒為單位的最小界限,在該界限之上將隨機選擇粒子的實際速度。
-
Default Value:
1.0
modelMatrix : Matrix4
將粒子系統從模型轉換為世界坐標的4x4變換矩陣。
-
Default Value:
Matrix4.IDENTITY
show : Boolean
是否顯示粒子系統。
-
Default Value:
true
startColor : Color
粒子生命開始時的顏色。
-
Default Value:
Color.WHITE
startScale : Number
應用于粒子生命開始時的圖像的初始比例。
-
Default Value:
1.0
updateCallback : ParticleSystem~updateCallback
一組強制回調。回調通過了a
Particle
和上次的差異
-
Default Value:
undefined
Methods
destroy()
銷毀此對象持有的WebGL資源。銷毀對象允許確定地釋放WebGL資源,而不是依賴垃圾收集器來銷毀此對象。
一旦對象被破壞,就不應使用它;調用除
一旦對象被破壞,就不應使用它;調用除
isDestroyed
以外的任何函數都將導致DeveloperError
異常。因此,將返回值(undefined
)賦給對象,如示例中所述。
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
Type Definitions
updateCallback(particle, dt)
用于在每個時間步修改粒子屬性的函數。這可以包括強制修改、顏色、大小調整等。
Parameters:
dt
(Number)
自上次更新以來的時間(秒)。
Example
function applyGravity(particle, dt) {
var position = particle.position;
var gravityVector = bmgl.Cartesian3.normalize(position, new bmgl.Cartesian3());
bmgl.Cartesian3.multiplyByScalar(gravityVector, GRAVITATIONAL_CONSTANT * dt, gravityVector);
particle.velocity = bmgl.Cartesian3.add(particle.velocity, gravityVector, particle.velocity);
}