Пример #1
0
        public static void HostRunFrame(float time)
        {
            AccumulateTime(time);

            _hostRemainder += HostFrametime;

            var numticks = 0;

            if (_hostRemainder >= Server.TickInterval)
            {
                numticks        = (int)(_hostRemainder / Server.TickInterval);
                _hostRemainder -= numticks * Server.TickInterval;
            }

            _hostFrameTicks       = numticks;
            _hostCurrentFrameTick = 0;

            for (var tick = 0; tick < numticks; tick++)
            {
                Networking.RunFrame(time);

                ++_hostCurrentFrameTick;

                var finalTick = tick == (numticks - 1);
                HostRunFrame_Server(finalTick);

                // TODO: Send queued network packets
            }

            Thread.Sleep(5);
        }