Ballz.Network.Server.Update C# (CSharp) Метод

Update() публичный Метод

public Update ( GameTime time ) : void
time Microsoft.Xna.Framework.GameTime
Результат void
        public void Update(GameTime time)
        {
            // new clients
            if (listener.Pending())
            {
                if (network.GameState == Network.GameStateT.InLobby)
                {
                    // add new player in lobby
                    var client = listener.AcceptTcpClient();
                    var connection = new Connection(client, nextId++);
                    connection.ObjectReceived += OnData;
                    connections.Add(connection);
                    network.RaiseMessageEvent(NetworkMessage.MessageType.NewClient);
                    // update lobby list
                    this.UpdateLobbyList();
                }
                else
                {
                    //TODO: Re-add Players that lost connection
                }
            }
            // receive data
            foreach (var c in connections)
            {
                c.ReadUpdates();
            }

            if (network.GameState == Network.GameStateT.InGame && Ballz.The().Match.State == SessionState.Running)
            {
                var now = DateTime.Now;
                if ((now - LastUpdate).TotalSeconds > 1.0 / TicksPerSecond)
                {
                    foreach (var e in Ballz.The().Match.World.Entities)
                    {
                        Broadcast(e);
                    }
                    LastUpdate = DateTime.Now;
                }

            }
        }

Usage Example

Пример #1
0
        public override void Update(GameTime time)
        {
            switch (Role)
            {
            case NetworkRole.Client:
                client?.Update(time);
                break;

            case NetworkRole.Server:
                server?.Update(time);
                break;
            }
        }