コード例 #1
0
ファイル: Matchmaking.cs プロジェクト: arcadeindy/GSever
 protected override void InitializeHandlers()
 {
     _host.AddHandler((short)MatchmakingMessages.GameFound, (m, c) =>
     {
         var ds     = DataStorage.CreateForRead(m.Body);
         _roomToken = new Token();
         _roomToken.ReadFromDs(ds);
         OnGameFound.Invoke();
     });
     _host.AddHandler((short)MatchmakingMessages.ValidateActivity, (m, c) =>
     {
         _host.Send(new Message((short)MatchmakingMessages.ValidateActivitySuccess, Mode.Reliable));
     });
     _account.AddHandler((short)MatchmakingMessages.MatchmakingRequest, (m, a) =>
     {
         Console.WriteLine("matchmaking request from {0}", a.Connection.EndPoint.ToString());
         lock (_playerQueue)
         {
             _playerQueue.AddPlayer(a);
         }
     });
     _account.AddHandler((short)MatchmakingMessages.CancelMatchmaking, (m, a) =>
     {
         lock (_playerQueue)
         {
             _playerQueue.RemovePlayer(a);
         }
     });
 }
コード例 #2
0
        public void connectToServer(OnFindGameReqSendComplete onSendComplete, OnGameFound onGameFound)
        {
            this.onSendComplete = onSendComplete;
            this.onGameFound    = onGameFound;
            Thread reqGameThread = new Thread(new ThreadStart(connectToServer));

            reqGameThread.Start();
        }
コード例 #3
0
ファイル: HostBuilder.cs プロジェクト: tuita520/GServer
 public override void AddPlayer(AccountImpl player)
 {
     lock (_players) {
         _players.Add(player);
         if (_players.Count == 2)
         {
             OnGameFound.Invoke(_players.ToArray());
             _players.Clear();
         }
     }
 }