在上一篇焰火粒子系统做稍微改进,就可以实现瀑布粒子系统,因为他们的原理是一样的,只是焰火粒子系统的水平和竖直初速度均不为0,而瀑布子系统只有水平方向的初速度,所以瀑布型是朝着同一个水平方向喷出,就像瀑布一样。所以只需改变粒子的一些初始状态就行了,将ParticleSet类的add方法改为如下:
/**
* 向粒子集合添加指定个数的粒子对象
*
* @param count
* @param startTime
*/
public void add(int count, double startTime) {
for (int i = 0; i < count; i++) {
int tempColor = this.getColor(i);
int tempR = 1;
// 竖直方向的速度设置为0
double tempv_v =0;
// 随机产生粒子水平方向的速度
double tempv_h = 20 +10 * (Math.random());
int tempX = 50;
// 随机产生粒子Y坐标,90~100之间
int tempY = (int) (50 - 10 * (Math.random()));
// 创建粒子对象
Particle particle = new Particle(tempColor, tempR, tempv_v,
tempv_h, tempX, tempY, startTime);
particleSet.add(particle);// 加入集合
}
}
附上图片效果: