Esempio n. 1
0
 public void FixedUpdate()
 {
     if (PhysicsUpdated != null)
     {
         PhysicsUpdated.Invoke();
     }
 }
        private void OnUpdate(object sender, FrameEventArgs e)
        {
            _newRenderTick              = _stopwatch.ElapsedTicks;
            DeltaTime                   = (_newRenderTick - _lastRenderTick) / Stopwatch.Frequency;
            _simulationTimeAccumulator += DeltaTime;
            _lastRenderTick             = _newRenderTick;

            while (_simulationTimeAccumulator > SimulationTimeStep)
            {
                PhysicsUpdated?.Invoke(this, new PhysicsUpdateEventArgs()
                {
                    TimeStep = SimulationTimeStep
                });

                _simulationTimeAccumulator -= SimulationTimeStep;
                SimulationTime             += SimulationTimeStep;
            }

            Updated?.Invoke();
        }