在上一篇焰火粒子系统做稍微改进,就可以实现瀑布粒子系统,因为他们的原理是一样的,只是焰火粒子系统的水平和竖直初速度均不为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);// 加入集合 } }
附上图片效果: