Esempio n. 1
0
        public void Run()
        {
            while (true)
            { //Tick //Frame
                var producedParticles = new List <Particle>();

                foreach (var particle in this.particles)
                {
                    var currentProduced = particleOperator.OperateOn(particle);
                    producedParticles.AddRange(currentProduced);
                }

                particleOperator.TickEnded();

                this.particles.AddRange(producedParticles);

                this.particles.RemoveAll((p) => !p.Exists);

                foreach (var particle in this.particles)
                {
                    renderer.EnqueueForRendering(particle);
                }

                renderer.RenderAll();
                renderer.ClearQueue();

                Thread.Sleep(this.waitMs);
            }
        }
        public void Run()
        {
            while (true)
            {
                renderer.RenderAll();
                renderer.ClearQueue();

                List <Particle> prodPart = new List <Particle>();

                foreach (var particle in this.particles)
                {
                    prodPart.AddRange(particleOperator.OperateOn(particle));
                }

                particleOperator.TickEnded();

                foreach (var particle in this.particles)
                {
                    renderer.EnqueueForRendering(particle);
                }

                this.particles.RemoveAll((p) => !p.Exists);
                this.particles.AddRange(prodPart);

                Thread.Sleep(this.waitMsPerTick);
            }
        }