很多的现象都可以用粒子系统精确的或者近似的模拟,例如烟、雪、火焰、鱼群、星空等等。
一个粒子系统由拥有各种属性的对象组成,它们必须遵循一定的行为规范。具体的这些属性和行为规范取决于想要模拟的对象。一些粒子系统可能需要很多属性和复杂的规则,而有的则相对比较简单。
每个粒子都需要一些属性来使它具有自己的特性。一般地,一个系统中的所有粒子拥有一个相同的属性集合。下面是一些典型的粒子的属性:
位置:粒子所在的地方。粒子系统一般都需要记录所有粒子的运动轨迹。在二维粒子系统中它需要二个坐标(x,y)。
速度:速度是一个向量,具有速率和方向。伴随位置的一般是速度。速度是一个向量,它用来表示粒子以多快的速率向什么方向移动。对于ActionScript3.0而言,在每一帧将速度与位置相加从而实际地移动粒子。
重力:如同速度影响位置,加速度影响速度。一个粒子的加速度通常是由于对其施加了一个力。这个力通常是重力,重力存在于现实生活中,在地球上模拟重力时,几乎只使用一个固定的值,因为地球太大而人类太小了,这样一来实际的加速度方向就可以忽略不计了,只需要一个向下的力就可以了。换句话讲,无论物体在什么位置,都可以在y轴上定义重力作为加速度。
摩擦力:两个互相接触的物体,当它们发生相对运动或有相对运动趋势时,在两物体的接触面之间有阻碍它们相对运动的作用力,这个力就是摩擦力。它改变了物体的速度。摩擦力只改变速度向量中的速度,而不会改变运动的方向。
缩放:在粒子系统中为了呈现复杂的视觉效果往往需要改变粒子的缩放比例,使得粒子在大体相似的前提下,具有不同的外观。
生命期:通常由于计算动力的限制,粒子被限定到一个有限的生命期,老的粒子在一定长的时间后被清除以放入新的粒子。除了实际的清除它之外,还可以改变它的alpha属性,从而达到在它在视觉上消失的目的。