/// <summary> /// Generate a particle with given particletype and startPosition /// </summary> public virtual Particle CreateParticle(IParticleData particleData, Vector2 startPosition) { var particle = new Particle(++_particleId, startPosition, particleData); particle.BatchId = RNG.RandomInt(0, spaceConfig.BatchCount); return(particle); }
public Particle(int id, Vector2 position, IParticleData particleData) { Id = id; Position = position; ScheduledPosition = position; ParticleData = particleData; }
public override Particle CreateParticle(IParticleData particleData, Vector2 startPosition) { var gravityConfig = (GravityConfig)spaceConfig; var particle = base.CreateParticle(particleData, startPosition); particle.Velocity = new Vector2(RNG.RandomFloat(gravityConfig.MinimumInitialVelocity, gravityConfig.MaximumInitialVelocity), RNG.RandomFloat(gravityConfig.MinimumInitialVelocity, gravityConfig.MaximumInitialVelocity)); particle.ScheduledVelocity = particle.Velocity; return(particle); }