コード例 #1
0
        private void GNet_OnGotMessage(Systems.IncomingMessage message)
        {
            if (message.Type == Systems.MessageType.Hail)
            {
                GNet.OpponentName = message.Message.ReadString();

                GNet.OnGotMessage -= GNet_OnGotMessage;

                GScreens.OpenScreen <GameBoardScreen>();
            }
        }
コード例 #2
0
        private void GNet_OnGotMessage(Systems.IncomingMessage message)
        {
            switch (message.Type)
            {
            case Systems.MessageType.Hail:
                GNet.OpponentName = message.Message.ReadString();

                if (GNet.IsServer)
                {
                    StartServerGame();
                }

                break;

            case Systems.MessageType.CreateObject:
            {
                var _objType = (Systems.ObjectType)message.Message.ReadByte();

                switch (_objType)
                {
                case Systems.ObjectType.Player:
                    var _createSpec = Player.CreateSpec.Deserialize(message.Message);

                    Player _player;

                    if (_createSpec.IsServer)
                    {
                        _player = Player1 = GScene.Create <Player>(null, _createSpec.Id);
                    }
                    else
                    {
                        _player = Player2 = GScene.Create <Player>(null, _createSpec.Id);
                    }

                    _createSpec.Apply(_player);

                    break;
                }
            }

            break;

            case Systems.MessageType.UpdateObject:
            {
                var _objType = (Systems.ObjectType)message.Message.ReadByte();

                switch (_objType)
                {
                case Systems.ObjectType.Player:
                    var _updateSpec = Player.UpdateSpec.Deserialize(message.Message);

                    Player _player = GScene.GetObject <Player>(_updateSpec.Id);

                    _updateSpec.Apply(_player);

                    break;
                }
            }

            break;

            case Systems.MessageType.StartGame:
                _Started = true;
                break;
            }
        }