protected override void OnUpdate(UpdateEventArgs updateArgs) { if (updateArgs.ElapsedTimeInS < 0.0001) { // This is basically to skip the first frame, because its // elapsed time is out of whack. We do a GC though, to clean up // initialization garbage, to prevent that from happening in // game This saves one big stutter a few seconds into the game. GC.Collect(); return; } var performanceSummary = new PerformanceSummary( _performanceMonitor.FrameTime.Stats, _performanceMonitor.ElapsedTime.Stats, _performanceMonitor.FrameTime.CurrentValue, _gameStatistics.NrGameObjects); var e = new BeardedUpdateEventArgs(updateArgs, performanceSummary); _performanceMonitor.StartFrame(e.UpdateEventArgs.ElapsedTimeInS); _inputManager.Update(Focused); if (_inputManager.IsKeyPressed(Key.AltLeft) && _inputManager.IsKeyPressed(Key.F4)) { Close(); } _screenManager.Update(e); _performanceMonitor.EndFrame(); _afterFrame?.Invoke(this, e); }
public override void Update(BeardedUpdateEventArgs args) { var measuredElapsedSeconds = args.UpdateEventArgs.ElapsedTimeInS; var timeModifier = _gameState.GameParameters.TimeModifier; var maxElapsedSeconds = _gameState.GameParameters.MaxElapsedSeconds; var fixedElapsedSeconds = _gameState.GameParameters.FixedElapsedSeconds; var elapsedSeconds = fixedElapsedSeconds != 0 ? fixedElapsedSeconds : measuredElapsedSeconds; var scaledElapsedSeconds = timeModifier != 0 ? timeModifier * elapsedSeconds : elapsedSeconds; var cappedElapsedSeconds = maxElapsedSeconds != 0 ? System.Math.Min(maxElapsedSeconds, scaledElapsedSeconds) : scaledElapsedSeconds; var elapsedTime = new TimeSpan(cappedElapsedSeconds); _game.Update(elapsedTime); ParticleSystem.Get.Update(elapsedTime); }
public void Update(BeardedUpdateEventArgs args) { handleInput(args.UpdateEventArgs); UpdateAll(args); }
protected void UpdateAll(BeardedUpdateEventArgs args) { _screenLayers.ForEach((layer) => layer.Update(args)); removeScreenLayersQueuedForRemoval(); }
public void Update(BeardedUpdateEventArgs args) { UpdateAll(args); }
public override void Update(BeardedUpdateEventArgs args) { _components.ForEach(c => c.Update(args.UpdateEventArgs)); }
public override void Update(BeardedUpdateEventArgs args) { _stats = args.PerformanceStats; }
public abstract void Update(BeardedUpdateEventArgs args);