Beispiel #1
0
        public void PushButton(int pos)
        {
            if (last_click == -1)
            {
                last_click = pos;
            }
            else
            {
                if (last_click != pos && btnArry[last_click] == btnArry[pos])
                {
                    //传给mainlogic
                    MsgGame msggame = new MsgGame();
                    msggame.userName     = myClientName;
                    msggame.cleanPair[0] = last_click;
                    msggame.cleanPair[1] = pos;
                    sendMsgEvent(msggame);

                    btnArry[last_click] = -1;
                    btnArry[pos]        = -1;
                    int ret = last_click;
                    last_click = -1;

                    // 调用绑定的事件 消除btn
                    CleanBtnPair(ret, pos);
                    // 再调用后续的处理逻辑
                    ClearAnPair();
                    //int[] r = new int[2] {ret, pos};
                }
                else
                {
                    last_click = pos;
                }
            }
        }
Beispiel #2
0
        //
        // 判断接收的数据,如果是退出消息且是本客户端发送的退出消息,
        // 则返回true,表示应该结束这个接收线程
        //
        public bool processMsg(Message msg)
        {
            // 这里客户端的接受服务器消息主要逻辑,
            // 为从服务器端发生的消息作出各种反应
            try
            {
                switch (msg.msgType)
                {
                case MsgType.Sys:
                {
                    //MsgSys sysMsg = (MsgSys)msg.msgContent;

                    ProcessSysMsg(msg);
                }
                break;

                case MsgType.Game:
                {
                    MsgGame gamMsg = (MsgGame)msg.msgContent;
                    ProcessGamMsg(gamMsg);
                }
                break;
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("服务器没响应,休息一会吧~亲~");
                Environment.Exit(0);
            }

            return(true);
        }
Beispiel #3
0
 private void ProcessGamMsg(MsgGame gamMsg)
 {
     //获得其他玩家数据,根据username更新界面
     for (int i = 0; i < otherPlayersLogic.Count; i++)
     {
         if (otherPlayersLogic[i].myClientName == gamMsg.userName && otherPlayersLogic[i].myClientName != null)
         {
             //更新指定玩家的界面
             otherPlayersLogic[i].CleanBtnPair(gamMsg.cleanPair[0], gamMsg.cleanPair[1]);
         }
     }
 }
Beispiel #4
0
        public void SendGameData(MsgGame msg)//发送游戏数据
        {
            if (keepalive)
            {
                msg.tableIdx = this.tableIdx;
                msg.seatIdx  = this.seatIdx;
                //msg.userName = myLogic.myClientName;

                Message sendMsg = new Message(msg);
                sendMsg.reciType = ReciveType.Room;
                sendMsg.Num      = this.tableIdx;
                //MsgGame msg
                userSend(sendMsg);
            }
        }
Beispiel #5
0
 public Message(MsgGame msg)
     : this()
 {
     msgType    = MsgType.Game;
     msgContent = msg;
 }