Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Spawn between 300 and 400 particles per second
- partsys.emitter.spawnRateMin = 300.0f;
- partsys.emitter.spawnRateMax = 400.0f;
- //=====================================================================================================================
- // Generators determine the initial attributes of the particles
- //=====================================================================================================================
- partsys.generators.add(new RandomEnergyGenerator(6, 7)); // Particles live between 6 and 7 seconds.
- // For the position and velocity, use random values between a min and max coordinate value.
- partsys.generators.add(new MinMaxPositionGenerator(new Vector3f(-0.2f, -0.2f, -0.2f), new Vector3f(0.2f, 0.2f, 0.2f)));
- partsys.generators.add(new MinMaxVelocityGenerator(new Vector3f(-1f, 0.5f, -1f), new Vector3f(+1f, 2.0f, +1f)));
- //=====================================================================================================================
- // Affectors determine how the attributes change over time
- //=====================================================================================================================
- partsys.affectors.add(new ForwardEulerAffector()); // enables simple physics
- partsys.affectors.add(new StaticForceAffector(new Vector3f(0, 0.25f, 0))); // adds upward force
- partsys.affectors.add(new DampingAffector(0.6f)); // simulates air friction
- // The following defines and adds a multi-key RGBA gradient, so the colors change over time
- // Note: this currently uses Vector4f, but will be changed to use Color instead
- EnergyColorAffector energyColorAffector = new EnergyColorAffector();
- energyColorAffector.gradientMap.put(6.5f, new Vector4f(0.9f, 0.9f, 0.9f, 0.8f));
- energyColorAffector.gradientMap.put(6.4f, new Vector4f(1.0f, 1.0f, 0.3f, 1.0f));
- energyColorAffector.gradientMap.put(5.6f, new Vector4f(1.0f, 0.2f, 0.1f, 0.0f));
- energyColorAffector.gradientMap.put(5.0f, new Vector4f(1.0f, 0.2f, 0.1f, 0.7f));
- energyColorAffector.gradientMap.put(2.5f, new Vector4f(0.1f, 0.1f, 0.1f, 0.0f));
- energyColorAffector.gradientMap.put(1.0f, new Vector4f(0.1f, 0.1f, 0.1f, 1.0f));
- energyColorAffector.gradientMap.put(0.0f, new Vector4f(0.1f, 0.1f, 0.1f, 0.0f));
- partsys.affectors.add(energyColorAffector);
- // In a similar fashion, the size (xyz) over time can be controlled. (Z makes no sense with billboards :P)
- EnergySizeAffector energySizeAffector = new EnergySizeAffector();
- energySizeAffector.gradientMap.put(6.5f, new Vector3f(0.01f, 0.01f, 0.01f));
- energySizeAffector.gradientMap.put(6.2f, new Vector3f(0.1f, 0.1f, 0.1f));
- energySizeAffector.gradientMap.put(5.0f, new Vector3f(0.0f, 0.0f, 0.0f));
- energySizeAffector.gradientMap.put(2.5f, new Vector3f(0.01f, 0.01f, 0.01f));
- energySizeAffector.gradientMap.put(0.0f, new Vector3f(0.7f, 0.7f, 0.7f));
- partsys.affectors.add(energySizeAffector);
- partsys.affectors.add(new TurbulenceAffector(2.5f)); // Adds some randomness to the motion (random forces)
- // end of particle system definition
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement