Creating a Particle Engine
Now that you've defined a custom vertex type, it's time to move on to the particle
engine itself. You'll be creating three new classes in this section: ParticleSettings, which will hold settings for
individual particles; ParticleExplosionSettings,
which will hold settings for individual explosions; and ParticleExplosion, which represents a single explosion effect and
will be responsible for moving, updating, and drawing all the particles involved in
an explosion effect.
Create a new class within your project called ParticleSettings, and replace the contents of the
ParticleSettings.cs file with the following code:
namespace _3D_Game
{
class ParticleSettings
{
// Size of particle
public int maxSize = 2;
}
class ParticleExplosionSettings
{
// Life of particles
public int minLife = 1000;
public int maxLife = 2000;
// Particles per round
public int minParticlesPerRound = 100;
public int maxParticlesPerRound = 600;
// Round time
public int minRoundTime = 16;
public int maxRoundTime = 50;
// Number of particles
public int minParticles = 2000;
public int maxParticles = 3000;
}
}As you can see, the only setting at the particle level is the maximum size of each
particle. When the ParticleExplosion class
creates particles, it will create them with a size greater than zero and less than
this maximum size.
In the ParticleExplosionSettings class, located in the same code file, there are more settings. (In C#, it's perfectly legal to have multiple classes within the same ...