private void Pick(ChessPieceController cpc) { //选中棋子 pickCpc = cpc; cpc.Pick(); sits = cpc.GetCanMove(); sits.ForEach(obj => { obj.GetComponent <MeshRenderer>().enabled = true; }); }
private void ClearState() { if (sits != null) { sits.ForEach(obj => { obj.GetComponent <MeshRenderer>().enabled = false; }); } if (pickCpc != null) { pickCpc.Unpick(); } pickCpc = null; sits = null; }
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); }
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); }
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); }
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); }
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(); }
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(); }
// 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); } } } } } } }
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); }
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); }