粒子系统管理粒子集合的更新和显示。
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);
}