public EngineFlame(int seed, int maxParticles, double particleRate, double spreadFactor) { _random = new Random(seed); _particles = new Particle[maxParticles]; _availableParticles = new Queue<int>(maxParticles); for (int i =0; i < maxParticles; i++) { _particles[i] = new Particle(); _availableParticles.Enqueue(i); } _particleRate = particleRate; _spreadFactor = spreadFactor; }
public ReEntryFlame(int maxParticles, double particleRate, DVector2 offset) { _random = new Random(); _particles = new Particle[maxParticles]; _availableParticles = new Queue<int>(maxParticles); for (int i = 0; i < maxParticles; i++) { _particles[i] = new Particle(); _availableParticles.Enqueue(i); } _particleRate = particleRate; _offsetAngle = offset.Angle(); _offsetLength = offset.Length(); }
public EngineFlame(int seed, int maxParticles, double particleRate, double minSpread, double maxSpread, double maxAge, double angle = 0) { _random = new Random(seed); _particles = new Particle[maxParticles]; _availableParticles = new Queue<int>(maxParticles); for (int i =0; i < maxParticles; i++) { _particles[i] = new Particle(); _availableParticles.Enqueue(i); } _particleRate = particleRate; _minSpread = minSpread; _maxSpread = maxSpread; _maxAge = maxAge; _angle = angle; }