Example #1
0
        private void SimulationLoop()
        {
            var timer = new Stopwatch();
            var dt    = 0.0f; //float

            isSimulation = true;

            while (isSimulation)
            {
                timer.Restart();

                foreach (var gameObject in objects)
                {
                    gameObject.OnTick(dt);
                }

                if (RenderManager != null)
                {
                    RenderManager.BeginRender();
                }
                //RenderManager?.BeginRender();

                Thread.Sleep(16);

                timer.Stop();
                dt = (float)timer.Elapsed.TotalSeconds;
            }
        }
Example #2
0
        private void SimulationLoop()
        {
            var timer = new Stopwatch();

            // хранит время, за которое рендерится последний кадр
            float dt = 0.0f;

            isSimulation = true;

            while (isSimulation)
            {
                timer.Restart();
                PhysicsManager.OnTick(dt);

                foreach (var gameObject in objects)
                {
                    gameObject.OnTick(dt);
                }

                //var toDestroy = objects.Where(x => x.IsNeedDestroy).ToList();

                //foreach (var gameObject in toDestroy)
                //{
                //    RemoveObject(gameObject);
                //}

                if (RenderManager != null)
                {
                    RenderManager.RunInUIThread(RemoveAllDestroyObject);
                    RenderManager.RunInUIThread(AttachAllUnattachObject);
                    RenderManager.BeginRender();
                }
                else
                {
                    RemoveAllDestroyObject();
                    AttachAllUnattachObject();
                }

                //RenderManager?.BeginRender();
                Thread.Sleep(16);

                timer.Stop();
                dt = (float)timer.Elapsed.TotalSeconds;
            }
        }
Example #3
0
        private void SimulationLoop()
        {
            var timer = new Stopwatch();
            var dt    = 0.0f; //float

            isSimulation = true;

            while (isSimulation)
            {
                timer.Restart();

                PhysicsManager.OnTick(dt);

                foreach (var gameObject in objects)
                {
                    gameObject.OnTick(dt);
                }

                if (RenderManager != null)
                {
                    RenderManager.RunInUIThread(RemoveAllDestroyObject);
                    RenderManager.RunInUIThread(AttachAllUnattachObject);
                    RenderManager.BeginRender();
                }
                else
                {
                    RemoveAllDestroyObject();
                    AttachAllUnattachObject();
                }

                Thread.Sleep(16);

                timer.Stop();
                dt = (float)timer.Elapsed.TotalSeconds;
            }
        }