Esempio n. 1
0
 private void Pick(ChessPieceController cpc)
 {
     //选中棋子
     pickCpc = cpc;
     cpc.Pick();
     sits = cpc.GetCanMove();
     sits.ForEach(obj => {
         obj.GetComponent <MeshRenderer>().enabled = true;
     });
 }
Esempio n. 2
0
    private void ClearState()
    {
        if (sits != null)
        {
            sits.ForEach(obj => {
                obj.GetComponent <MeshRenderer>().enabled = false;
            });
        }

        if (pickCpc != null)
        {
            pickCpc.Unpick();
        }
        pickCpc = null;
        sits    = null;
    }
Esempio n. 3
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        if (chessPiece.teamId == TeamID.HONG && z != 0)
        {
            //红兵向前行
            result.Add(GameObject.Find("" + x + (z - 1)));
        }
        else if (chessPiece.teamId == TeamID.HEI && z != 9)    //黑兵
        {
            result.Add(GameObject.Find("" + x + (z + 1)));
        }
        if (IsCross())
        {
            //如果不在最右侧
            if (x != 8)
            {
                //红兵向右行
                result.Add(GameObject.Find("" + (x + 1) + z));
            }
            //如果不在最左边
            if (x != 0)
            {
                result.Add(GameObject.Find("" + (x - 1) + z));
            }
        }

        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });
        return(result);
    }
Esempio n. 4
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        if (x == 4)
        {
            result.Add(GameObject.Find("" + (x + 1) + (z + 1)));
            result.Add(GameObject.Find("" + (x + 1) + (z - 1)));
            result.Add(GameObject.Find("" + (x - 1) + (z - 1)));
            result.Add(GameObject.Find("" + (x - 1) + (z + 1)));
        }
        else
        {
            if (chessPiece.teamId == TeamID.HEI)
            {
                result.Add(GameObject.Find("41"));
            }
            else
            {
                result.Add(GameObject.Find("48"));
            }
        }

        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });

        return(result);
    }
Esempio n. 5
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        if (x == 3 || x == 4)
        {
            result.Add(GameObject.Find("" + (x + 1) + z));
        }
        if (x == 5 || x == 4)
        {
            result.Add(GameObject.Find("" + (x - 1) + z));
        }

        if (z == 0 || z == 7 || z == 1 || z == 8)
        {
            result.Add(GameObject.Find("" + x + (z + 1)));
        }
        if (z == 2 || z == 9 || z == 1 || z == 8)
        {
            result.Add(GameObject.Find("" + x + (z - 1)));
        }
        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });

        return(result);
    }
Esempio n. 6
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;


        if (z != 5)
        {
            result.Add(GameObject.Find("" + (x + 2) + (z - 2)));
            result.Add(GameObject.Find("" + (x - 2) + (z - 2)));
        }
        if (z != 4)
        {
            result.Add(GameObject.Find("" + (x + 2) + (z + 2)));
            result.Add(GameObject.Find("" + (x - 2) + (z + 2)));
        }
        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            if (obj == null)
            {
                return(false);
            }
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });

        return(result);
    }
Esempio n. 7
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();
    }
Esempio n. 8
0
    private void Awake()
    {
        BattleStatus battleStatus = PlayerManager.self.statusManager.currentStatus as BattleStatus;

        respGameInit = battleStatus.respGameInit;
        selfPlayerId = PlayerManager.self.player.role.roleUid;
        foreach (TeamInfo teamInfo in respGameInit.teamInfos)
        {
            foreach (PlayerFighter fighter in teamInfo.fighters)
            {
                if (fighter.playerId == selfPlayerId)
                {
                    selfTeamId = teamInfo.teamId;
                }
            }
        }
        List <CardSprite> sprites = respGameInit.allSprite;

        Debug.LogFormat("sprite size is {0}", sprites.Count);
        foreach (CardSprite cardSprite in sprites)
        {
            //开始初始化棋牌数据
            int            type    = cardSprite.type;
            ChessPieceType c       = (ChessPieceType)(type - 1);
            string         sitName = cardSprite.x + "" + cardSprite.z;
            string         name    = c.ToString();
            //Debug.LogFormat(sitName);
            GameObject sitObj  = GameObject.Find(sitName);
            GameObject gameObj = Resources.Load("prefabs/cardPfb/" + name) as GameObject;
            gameObj = Instantiate(gameObj);
            ChessPieceController cpc = gameObj.GetComponent <ChessPieceController>();
            cpc.chessPiece             = new ChessPiece((TeamID)(cardSprite.team), c, cardSprite.x, cardSprite.z);
            gameObj.transform.position = sitObj.transform.position;
            if (selfTeamId == (int)TeamID.HEI)
            {
                Quaternion quaternion = gameObj.transform.rotation;
                gameObj.transform.rotation = Quaternion.Euler(0, quaternion.x, quaternion.z);
            }
            Material     material     = Resources.Load("wujiang/Materials/" + cardSprite.bg) as Material;
            Texture2D    texture      = Resources.Load("wujiang/" + cardSprite.texture) as Texture2D;
            Sprite       sprite       = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
            MeshRenderer meshRenderer = gameObj.GetComponent <MeshRenderer>();
            meshRenderer.materials[0] = material;
            foreach (SpriteRenderer spriteRenderer in gameObj.GetComponentsInChildren <SpriteRenderer>())
            {
                spriteRenderer.sprite = sprite;
                break;
            }
        }

        GameObject heiGameObject = GameObject.Find("heiqi");

        if (heiGameObject != null)
        {
            heiGameObject.SetActive(false);
            Destroy(heiGameObject);
        }
        GameObject hongqiGameObject = GameObject.Find("hongqi");

        if (hongqiGameObject != null)
        {
            hongqiGameObject.SetActive(false);
            Destroy(hongqiGameObject);
        }

        if (selfTeamId == (int)TeamID.HEI)
        {
            GameObject team1Camera = GameObject.Find("Team1Camera");
            if (team1Camera != null)
            {
                team1Camera.SetActive(false);
                Destroy(team1Camera);
            }

            Camera camera = Resources.Load("prefabs/Team2Camera") as Camera;
            Instantiate(camera);
        }
        if (selfTeamId == (int)TeamID.HONG)
        {
            GameObject team2Camera = GameObject.Find("Team2Camera");
            if (team2Camera != null)
            {
                team2Camera.SetActive(false);
                Destroy(team2Camera);
            }
        }

        MessageDispatcher.RegisterHandler(MessageConst.Battle.TYPE, this);
        //初始化完成,向服务器发送消息
        NetManager.SendGameInitDone();
    }
Esempio n. 9
0
 // Update is called once per frame
 void Update()
 {
     OnReceive();
     if (goInfo == null)
     {
         return;
     }
     if (goInfo.currentTeamId != selfTeamId)
     {
         return;
     }
     if (Input.GetMouseButtonDown(0))
     {
         Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition); //camare2D.ScreenPointToRay (Input.mousePosition);
         RaycastHit hit;
         if (Physics.Raycast(ray, out hit))
         {
             GameObject tmp = hit.collider.gameObject;
             //判断选中的位置
             if ("Sit".Equals(tmp.tag))
             {
                 Debug.Log("选中位置,sit=" + tmp.name);
                 SitController sitController = tmp.GetComponent <SitController>();
                 //选中了一个空座位
                 if (pickCpc == null || sitController.chessPieceObj != null)
                 {
                     return;
                 }
                 else
                 {
                     if (sitController.chessPieceObj == null) //选中的位置没有棋子
                     {
                         if (sits.Contains(tmp))              //如果该位置可以走
                         {
                             MoveTo(tmp);
                         }
                     }
                 }
             }
             else if ("ChessPiece".Equals(tmp.tag))
             {
                 Debug.Log("选中棋子,name=" + tmp.name);
                 ChessPieceController cpc = tmp.GetComponent <ChessPieceController>();
                 if (pickCpc == null)
                 {
                     if (cpc.chessPiece.teamId == (TeamID)goInfo.currentTeamId)
                     {
                         Pick(cpc);
                     }
                 }
                 else
                 {
                     if (cpc == pickCpc)
                     {
                         ClearState();
                     }
                     else if (cpc.chessPiece.teamId == pickCpc.chessPiece.teamId)
                     {
                         ClearState();
                         Pick(cpc);
                     }
                     else
                     {
                         GameObject sitobj = cpc.sitController.gameObject;
                         if (sits.Contains(sitobj))
                         {
                             MoveTo(sitobj);
                         }
                     }
                 }
             }
         }
     }
 }
Esempio n. 10
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        // 向前走
        if (z <= 7)
        {
            GameObject    sitObject     = GameObject.Find("" + x + (z + 1));
            SitController sitController = sitObject.GetComponent <SitController>();
            //查看是否有阻挡
            if (sitController.chessPieceObj == null)
            {
                sitObject = GameObject.Find("" + (x + 1) + (z + 2));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
                sitObject = GameObject.Find("" + (x - 1) + (z + 2));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
            }
        }
        //向后走
        if (z >= 2)
        {
            GameObject    sitObject     = GameObject.Find("" + x + (z - 1));
            SitController sitController = sitObject.GetComponent <SitController>();
            //查看是否有阻挡
            if (sitController.chessPieceObj == null)
            {
                sitObject = GameObject.Find("" + (x + 1) + (z - 2));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
                sitObject = GameObject.Find("" + (x - 1) + (z - 2));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
            }
        }
        //向左走
        if (x >= 2)
        {
            GameObject    sitObject     = GameObject.Find("" + (x - 1) + z);
            SitController sitController = sitObject.GetComponent <SitController>();
            //查看是否有阻挡
            if (sitController.chessPieceObj == null)
            {
                sitObject = GameObject.Find("" + (x - 2) + (z - 1));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
                sitObject = GameObject.Find("" + (x - 2) + (z + 1));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
            }
        }
        //向右走
        if (x <= 6)
        {
            GameObject    sitObject     = GameObject.Find("" + (x + 1) + z);
            SitController sitController = sitObject.GetComponent <SitController>();
            //查看是否有阻挡
            if (sitController.chessPieceObj == null)
            {
                sitObject = GameObject.Find("" + (x + 2) + (z - 1));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
                sitObject = GameObject.Find("" + (x + 2) + (z + 1));
                if (sitObject != null)
                {
                    result.Add(sitObject);
                }
            }
        }
        //剔除掉己方已经占领的棋子
        result = result.FindAll(obj => {
            if (obj == null)
            {
                return(false);
            }
            SitController sit = obj.GetComponent <SitController>();
            if (sit.chessPieceObj != null)
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId == chessPiece.teamId)
                {
                    return(false);
                }
            }
            return(true);
        });
        return(result);
    }
Esempio n. 11
0
    public override List <GameObject> GetCanMove()
    {
        List <GameObject> result = new List <GameObject>();
        int x = chessPiece.x;
        int z = chessPiece.z;

        //向右寻找
        for (int p = x + 1; p <= 8; p++)
        {
            GameObject    sitObject = GameObject.Find("" + p + z);
            SitController sit       = sitObject.GetComponent <SitController>();
            if (sit.chessPieceObj == null)
            {
                result.Add(sitObject);
            }
            else
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId != chessPiece.teamId)
                {
                    result.Add(sitObject);
                }
                break;
            }
        }
        //向左寻找
        for (int p = x - 1; p >= 0; p--)
        {
            GameObject    sitObject = GameObject.Find("" + p + z);
            SitController sit       = sitObject.GetComponent <SitController>();
            if (sit.chessPieceObj == null)
            {
                result.Add(sitObject);
            }
            else
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId != chessPiece.teamId)
                {
                    result.Add(sitObject);
                }
                break;
            }
        }
        //向上寻找
        for (int p = z - 1; p >= 0; p--)
        {
            GameObject    sitObject = GameObject.Find("" + x + p);
            SitController sit       = sitObject.GetComponent <SitController>();
            if (sit.chessPieceObj == null)
            {
                result.Add(sitObject);
            }
            else
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId != chessPiece.teamId)
                {
                    result.Add(sitObject);
                }
                break;
            }
        }
        //向下寻找
        for (int p = z + 1; p <= 9; p++)
        {
            GameObject    sitObject = GameObject.Find("" + x + p);
            SitController sit       = sitObject.GetComponent <SitController>();
            if (sit.chessPieceObj == null)
            {
                result.Add(sitObject);
            }
            else
            {
                ChessPieceController chessPieceController = sit.chessPieceObj.GetComponent <ChessPieceController>();
                if (chessPieceController.chessPiece.teamId != chessPiece.teamId)
                {
                    result.Add(sitObject);
                }
                break;
            }
        }
        return(result);
    }