View difference between Paste ID: Gq1k8v2D and 44qJHAha
SHOW: | | - or go back to the newest paste.
1
// Spawn between 300 and 400 particles per second
2
partsys.emitter.spawnRateMin = 300.0f;
3
partsys.emitter.spawnRateMax = 400.0f;
4
5
//=====================================================================================================================
6
// Generators determine the initial attributes of the particles 
7
//=====================================================================================================================
8
9
partsys.generators.add(new RandomEnergyGenerator(6, 7)); // Particles live between 6 and 7 seconds.
10
11
// For the position and velocity, use random values between a min and max coordinate value.
12
partsys.generators.add(new MinMaxPositionGenerator(new Vector3f(-0.2f, -0.2f, -0.2f), new Vector3f(0.2f, 0.2f, 0.2f)));
13
partsys.generators.add(new MinMaxVelocityGenerator(new Vector3f(-1f, 0.5f, -1f), new Vector3f(+1f, 2.0f, +1f)));
14
15
//=====================================================================================================================
16
// Affectors determine how the attributes change over time
17
//=====================================================================================================================
18
19
partsys.affectors.add(new ForwardEulerAffector());                         // enables simple physics
20
partsys.affectors.add(new StaticForceAffector(new Vector3f(0, 0.25f, 0))); // adds upward force
21
partsys.affectors.add(new DampingAffector(0.6f));			   // simulates air friction				   
22
23-
// The following defines and adds a multi-key RGBA gradient, so the colors change over time           
23+
// The following defines and adds a multi-key RGBA gradient, so the colors change over time
24
// Note: this currently uses Vector4f, but will be changed to use Color instead           
25
EnergyColorAffector energyColorAffector = new EnergyColorAffector();
26
                    energyColorAffector.gradientMap.put(6.5f, new Vector4f(0.9f, 0.9f, 0.9f, 0.8f));
27
                    energyColorAffector.gradientMap.put(6.4f, new Vector4f(1.0f, 1.0f, 0.3f, 1.0f));
28
                    energyColorAffector.gradientMap.put(5.6f, new Vector4f(1.0f, 0.2f, 0.1f, 0.0f));
29
                    energyColorAffector.gradientMap.put(5.0f, new Vector4f(1.0f, 0.2f, 0.1f, 0.7f));
30
                    energyColorAffector.gradientMap.put(2.5f, new Vector4f(0.1f, 0.1f, 0.1f, 0.0f));
31
                    energyColorAffector.gradientMap.put(1.0f, new Vector4f(0.1f, 0.1f, 0.1f, 1.0f));
32
                    energyColorAffector.gradientMap.put(0.0f, new Vector4f(0.1f, 0.1f, 0.1f, 0.0f));
33
partsys.affectors.add(energyColorAffector);
34
35
// In a similar fashion, the size (xyz) over time can be controlled. (Z makes no sense with billboards :P)
36
EnergySizeAffector energySizeAffector = new EnergySizeAffector();
37
                   energySizeAffector.gradientMap.put(6.5f, new Vector3f(0.01f, 0.01f, 0.01f));
38
                   energySizeAffector.gradientMap.put(6.2f, new Vector3f(0.1f, 0.1f, 0.1f));
39
                   energySizeAffector.gradientMap.put(5.0f, new Vector3f(0.0f, 0.0f, 0.0f));
40
                   energySizeAffector.gradientMap.put(2.5f, new Vector3f(0.01f, 0.01f, 0.01f));
41
                   energySizeAffector.gradientMap.put(0.0f, new Vector3f(0.7f, 0.7f, 0.7f));
42
partsys.affectors.add(energySizeAffector);
43
44
45
partsys.affectors.add(new TurbulenceAffector(2.5f)); // Adds some randomness to the motion (random forces)
46
47
// end of particle system definition