コード例 #1
0
        public void PostUpdate(GameTime gameTime)
        {
            if (!_gameClockManager.SimulationClock.IsNextSimulation)
            {
                // Only update during a simulation update since input is only processed at this time
                return;
            }

            var simTickNumber = _gameClockManager.SimulationClock.SimulationTickNumber;

            switch (_networkService.NetworkGameMode)
            {
            case NetworkGameMode.NotSet:
                break;

            case NetworkGameMode.Local:
                break;

            case NetworkGameMode.ListenServer:
                _serverPlayerManager.SendEntityChangesToClients(simTickNumber, _networkMessageWriter);
                break;

            case NetworkGameMode.DedicatedServer:
                _serverPlayerManager.SendEntityChangesToClients(simTickNumber, _networkMessageWriter);
                break;

            case NetworkGameMode.RemoteClient:
                _clientPlayerManager.SendClientInputPredictionsToServer(simTickNumber, _networkMessageWriter);
                break;

            default:
                Debug.Fail($"Unknown game mode type: {_networkService.NetworkGameMode}");
                break;
            }
        }