Example #1
0
        public static void OnIdle(object sender, EventArgs e)
        {
            var gameIsRunning = StateManager.Instance.IsGameRunning();

            // TODO: What is the use of this function
            NativeFunction.Message message;
            do
            {
                var currentTime        = _chrono.Elapsed;
                var currentElapsedTime = currentTime - _lastTimeSpan;
                _lastTimeSpan = currentTime;

                _elapsedTime += currentElapsedTime;

                if (_elapsedTime >= _wantedElapsedTime)
                {
                    lock (Lock)
                    {
                        StateManager.Instance.Run((double)_elapsedTime.Ticks / TimeSpan.TicksPerSecond);
                        _elapsedTime = TimeSpan.Zero;
                    }
                }
            } while (!NativeFunction.PeekMessage(out message, IntPtr.Zero, 0, 0, 0) && gameIsRunning);
        }