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(); }