示例#1
0
        public async void Init(bool isCreateRoom)
        {
            client.setCallBack((byte)DataType.GAMESTART, gameStartCallBack);
            client.setCallBack((byte)DataType.GAMEOVER, gameOverCallBack);
            client.setCallBack((byte)DataType.START, playerStartCallBack);
            client.setCallBack((byte)DataType.OVER, playerOverCallBack);
            client.setCallBack((byte)DataType.SELECT, selectCallBack);
            client.setCallBack((byte)DataType.HANDLE, HandleShareCallBack);
            client.setCallBack((byte)DataType.BUY, BuyCallBack);
            client.setCallBack((byte)DataType.UPDATE, UpdateInformationCallBack);
            client.setCallBack((byte)DataType.UPDATETILES, UpdateTilesCallBack);

            mainWindow.ClientPresenter = this;
            HttpClient httpClient = new HttpClient();

            if (isCreateRoom)
            {
                await mainWindow.Dispatcher.Invoke(async() =>
                {
                    var content = new StringContent(JsonConvert.SerializeObject(new RoomSettingWindow().getSetting()));
                    var respond = await httpClient.PostAsync(hostname + "create", content);
                    if (respond.IsSuccessStatusCode)
                    {
                        var respondString  = await respond.Content.ReadAsStringAsync();
                        ServerResponse res = JsonConvert.DeserializeObject <ServerResponse>(respondString);
                        client.Initialize(res.port);
                    }
                    else
                    {
                        HandleError();
                    }
                });
            }
            else
            {
                var respondString = await httpClient.GetStringAsync(hostname + "search");

                RoomInfomation[] res = JsonConvert.DeserializeObject <RoomInfomation[]>(respondString);
                int port             = new SelectServerWindow().SelectRoom(res);
                if (port > -1)
                {
                    var content       = new StringContent(port.ToString());
                    var selectMessage = await httpClient.PostAsync(hostname + "select", content);

                    var selectRes = bool.Parse(await selectMessage.Content.ReadAsStringAsync());
                    if (selectRes)
                    {
                        client.Initialize(port);
                    }
                    else
                    {
                        HandleError();
                    }
                }
                else
                {
                    throw new NotSupportedException();
                }
            }
        }
示例#2
0
 /** 更新按钮背景 */
 private void UpdateButtonBg()
 {
     if (fatherWindow is SelectServerWindow)
     {
         SelectServerWindow ssw = fatherWindow as SelectServerWindow;
         ssw.UpdateSelectBgPosition(this);
     }
 }