Exemple #1
0
        public void Update()
        {
            settings.CheckValues();
            if (enabled)
            {
                if (oneTime)
                {
                    if (lifetime >= 0)
                    {
                        for (int i = 0; i < settings.number_per_frame; i++)
                        {
                            Vector2  pos           = new Vector2(rand.Next(rectangle.Left, rectangle.Right), rand.Next(rectangle.Top, rectangle.Bottom));
                            Particle particleToAdd = new Particle(settings, pos);
                            particles.Add(particleToAdd);
                        }

                        for (int i = 0; i < particles.Count; i++)
                        {
                            particles[i].Update();

                            if (particles[i].IsDead)
                            {
                                particles.RemoveAt(i);
                            }
                        }
                        lifetime -= GameManager.DeltaTime;
                    }
                    else
                    {
                        enabled = false;
                    }
                }
                else
                {
                    for (int i = 0; i < settings.number_per_frame; i++)
                    {
                        Vector2  pos           = new Vector2(rand.Next(rectangle.Left, rectangle.Right), rand.Next(rectangle.Top, rectangle.Bottom));
                        Particle particleToAdd = new Particle(settings, pos);
                        particles.Add(particleToAdd);
                    }

                    for (int i = 0; i < particles.Count; i++)
                    {
                        particles[i].Update();

                        if (particles[i].IsDead)
                        {
                            particles.RemoveAt(i);
                        }
                    }
                }
            }
        }