/// <summary> /// Updates the particle emitter. /// </summary> /// <param name="gameTime"></param> public void Update(GameTime gameTime) { if (!isEmitting) { return; } Debug.Instance.AssertStrict(isLoaded, "Particle Emitter not initialized..."); timer += Time.Instance.DeltaTime; int numParticles = (int)Math.Round(SpawnRate * timer); if (numParticles > 0) { for (int i = 0; i < numParticles; i++) { float scale = (float)(random.NextDouble() * (MaxScale - MinScale) + MinScale); Particle p = (Particle)Activator.CreateInstance(typeof(T), timeToLive); p.Position = Holder.Position; p.Scale = new Vector2(scale, scale); p.SetTexturePath(paths); CurrentScene.AddObject(p); } timer = 0; } }