Ejemplo n.º 1
0
    public void OnReceive()
    {
        if (messageQueue.Count > 0)
        {
            MarsMessage message = messageQueue.Dequeue();
            if (message == null)
            {
                Debug.LogFormat("消息={)},消息队列情况长度={1}", message, messageQueue.Count);
                return;
            }
            switch (message.cmd)
            {
            case MessageConst.Battle.RESP_MOVE_CHESS:
                Debug.Log("移动棋子");
                RespMoveChess respMoveChess = ProtobufTool.DeSerialize <RespMoveChess>(message.data);
                ReceiveChessMove(respMoveChess);
                break;

            case MessageConst.Battle.RESP_CURRENT_GO_INFO:
                Debug.Log("当前行动信息");
                RespCurrentGoInfo respCurrentGoInfo = ProtobufTool.DeSerialize <RespCurrentGoInfo>(message.data);
                ReceiveGoInfo(respCurrentGoInfo);
                break;

            default:
                break;
            }
        }
    }
Ejemplo n.º 2
0
    public void ReceiveChessMove(RespMoveChess respMoveChess)
    {
        long       roleUid     = respMoveChess.roleUid;
        MoveChess  moveChess   = respMoveChess.moveChess;
        string     toSitName   = moveChess.toPoint.x + "" + moveChess.toPoint.z;
        GameObject toSit       = GameObject.Find(toSitName);
        string     fromSitName = moveChess.fromPoint.x + "" + moveChess.fromPoint.z;

        Debug.LogFormat("收到服务器移动信息,from={0},to={1}", fromSitName, toSitName);
        GameObject           fromSit       = GameObject.Find(fromSitName);
        SitController        sitController = fromSit.GetComponent <SitController>();
        GameObject           pickObject    = sitController.chessPieceObj;
        ChessPieceController pickCpc       = pickObject.GetComponent <ChessPieceController>();
        SitController        sitc          = toSit.GetComponent <SitController>();

        if (sitc.chessPieceObj != null)
        {
            //把该位置原来的棋子注销
            Destroy(sitc.chessPieceObj);
        }
        pickCpc.MoveTo(toSit);
        sitc.chessPieceObj = pickCpc.gameObject;
        ClearState();
    }
Ejemplo n.º 3
0
    public void Handle(int cmd, byte[] data)
    {
        switch (cmd)
        {
        case MessageConst.Battle.RESP_GAME_INIT:    //初始化游戏
            Debug.Log("开始初始化游戏...");
            RespGameInit respGameInit = ProtobufTool.DeSerialize <RespGameInit>(data);
            BattleStatus.INSTANCE.respGameInit = respGameInit;
            PlayerManager.self.statusManager.Switch(BattleStatus.INSTANCE);
            actions.Enqueue(GameInit);
            break;

        case MessageConst.Battle.RESP_MOVE_CHESS:
            RespMoveChess respMoveChess = ProtobufTool.DeSerialize <RespMoveChess>(data);
            break;

        case MessageConst.Battle.RESP_CURRENT_GO_INFO:
            RespCurrentGoInfo respCurrentGoInfo = ProtobufTool.DeSerialize <RespCurrentGoInfo>(data);
            break;

        default:
            break;
        }
    }