Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 public void Update(BeardedUpdateEventArgs args)
 {
     handleInput(args.UpdateEventArgs);
     UpdateAll(args);
 }
Пример #4
0
 protected void UpdateAll(BeardedUpdateEventArgs args)
 {
     _screenLayers.ForEach((layer) => layer.Update(args));
     removeScreenLayersQueuedForRemoval();
 }
Пример #5
0
 public void Update(BeardedUpdateEventArgs args)
 {
     UpdateAll(args);
 }
Пример #6
0
 public override void Update(BeardedUpdateEventArgs args)
 {
     _components.ForEach(c => c.Update(args.UpdateEventArgs));
 }
Пример #7
0
 public override void Update(BeardedUpdateEventArgs args)
 {
     _stats = args.PerformanceStats;
 }
Пример #8
0
 public abstract void Update(BeardedUpdateEventArgs args);