ParticleSystem

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

一组强制回调。回调通过了aParticle和上次的差异
Default Value: undefined

Methods

destroy()
销毁此对象持有的WebGL资源。销毁对象允许确定地释放WebGL资源,而不是依赖垃圾收集器来销毁此对象。

一旦对象被破坏,就不应使用它;调用除isDestroyed以外的任何函数都将导致DeveloperError异常。因此,将返回值(undefined)赋给对象,如示例中所述。
Throws
See:
isDestroyed() → {Boolean}
如果此对象被破坏,则返回true;否则返回false。

如果此对象被破坏,则不应使用它;调用除isDestroyed以外的任何函数将导致DeveloperError异常。
See:

Type Definitions

updateCallback(particle, dt)
用于在每个时间步修改粒子属性的函数。这可以包括强制修改、颜色、大小调整等。
Parameters:
particle (Particle) 正在更新的粒子。
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);
}