// 移動可能マスの表示 //public void RefresAbles(KomaScript sc, List<KomaMove> moves, string name) public void RefresAbles(KomaScript sc, int[,] moves, string name) { GameObject refObj = GameObject.Find("ban2_1"); BanScript banScript = refObj.GetComponent <BanScript>(); float per1x = 50.6f; float per1y = 50.6f; float basex = 575f + per1x; float basey = 420f + per1y; //List<KomaMove> choosemoves = new List<KomaMove>(); //int[,] choosemoves = new int[4, 2]; if (!banScript.chooseflag) { //int i = 0; //foreach (KomaMove move in moves) for (int i = 0; i < 4; i++) { //if (sc.x + move.x > 5 || sc.x + move.x < 1) if (sc.x + moves[i, 0] > 5 || sc.x + moves[i, 0] < 1) { continue; } //if (sc.y + move.y > 5 || sc.y + move.y < 1) if (sc.y + moves[i, 1] > 5 || sc.y + moves[i, 1] < 1) { continue; } Sprite sp = Resources.Load <Sprite>("koma_able"); GameObject gameObj = new GameObject(); SpriteRenderer spriteRenderer = gameObj.AddComponent <SpriteRenderer>(); spriteRenderer.sprite = sp; gameObj.transform.parent = FindObjectOfType <Canvas>().transform; gameObj.transform.localScale = new Vector3(14, 14, 0); gameObj.transform.name = "koma_able" + i; //gameObj.transform.position = new Vector3(basex - per1x * (sc.x + move.x), basey - per1y * (sc.y + move.y), -2); gameObj.transform.position = new Vector3(basex - per1x * (sc.x + moves[i, 0]), basey - per1y * (sc.y + moves[i, 1]), -2); BoxCollider2D box = gameObj.AddComponent <BoxCollider2D>() as BoxCollider2D; KomaAble komaAble = gameObj.AddComponent <KomaAble>(); //komaAble.x = sc.x + move.x; //komaAble.y = sc.y + move.y; komaAble.x = sc.x + moves[i, 0]; komaAble.y = sc.y + moves[i, 1]; i++; //choosemoves.Add(move); } banScript.chooseflag = true; //banScript.choosemoves = choosemoves; banScript.choosemoves = moves; banScript.choosekomaname = name; } }
// 移動可能駒のマス表示 public void RefresAbles(KomaScript sc, List <KomaMove> moves, string name) { List <KomaMove> chooseKomaMoves = new List <KomaMove> (); if (!chooseFlag) { int i = 0; foreach (KomaMove move in moves) { if (sc.x + move.x > 9 || sc.x + move.x < 1) { continue; } if (sc.y + move.y > 9 || sc.y + move.y < 1) { continue; } Sprite sp = Resources.Load <Sprite> ("KomaAble"); GameObject gameObj = new GameObject(); SpriteRenderer spriteRenderer = gameObj.AddComponent <SpriteRenderer> (); spriteRenderer.sprite = sp; gameObj.transform.parent = FindObjectOfType <Canvas> ().transform; gameObj.transform.localScale = new Vector3(140, 140, 0); gameObj.transform.name = "KomaAble" + i; gameObj.transform.position = new Vector3(basex - per1x * (sc.x + move.x), basey - per1y * (sc.y + move.y), 0); BoxCollider2D box = gameObj.AddComponent <BoxCollider2D>() as BoxCollider2D; KomaAble komaAble = gameObj.AddComponent <KomaAble> (); komaAble.x = sc.x + move.x; komaAble.y = sc.y + move.y; i++; chooseKomaMoves.Add(move); } chooseFlag = true; chooseMoves = chooseKomaMoves; Debug.Log("able objName=" + name); chooseKomaObjName = name; } }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { Vector2 tap = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D collition = Physics2D.OverlapPoint(tap); GameObject masuObj = GameObject.Find("Canvas/Masu"); MasuScript masuScript = masuObj.GetComponent <MasuScript> (); // 成り駒bgが開いている時 if (masuScript.narigomaBgFlag) { if (collition) { string name = collition.transform.gameObject.name; if (name.IndexOf(KomaConst.narigomaBg) > -1) { // 駒を成る選択をした時 if (name.Equals(KomaConst.narigomaBg + "1")) { masuScript.modKomanariObj(masuScript.chooseKomaObjName , masuScript.narigomaBgName , masuScript.narigomaBgx , masuScript.narigomaBgy ); } masuScript.DestroyNarigomaBg(); masuScript.narigomaBgFlag = false; } } // 駒が移動選択状態の時 } else if (masuScript.chooseFlag) { if (collition) { string name = collition.transform.gameObject.name; if (name.IndexOf("KomaAble") > -1) { Debug.Log(name); GameObject gameObj = GameObject.Find(name); KomaAble komaAble = gameObj.GetComponent <KomaAble> (); masuScript.MoveKomaObj(masuScript.chooseKomaObjName, komaAble.x, komaAble.y); } } // 持ち駒でない時の浮き駒戻し if (masuScript.chooseKomaObjName.IndexOf(KomaConst.motigoma) == -1) { masuScript.resetFloatKomaObj(masuScript.chooseKomaObjName); } else { // 持ち駒の時の浮き駒戻し if (KomaFunction.isSelfKoma(masuScript.chooseKomaObjName)) { GameObject motigomaObj = GameObject.Find("Canvas/Motigoma1"); MotigomaScript motigomaScript = motigomaObj.GetComponent <MotigomaScript> (); motigomaScript.resetFloatKomaObj(masuScript.chooseKomaObjName); } else { GameObject motigomaObj = GameObject.Find("Canvas/Motigoma2"); MotigomaScript motigomaScript = motigomaObj.GetComponent <MotigomaScript> (); motigomaScript.resetFloatKomaObj(masuScript.chooseKomaObjName); } } masuScript.DelchooseMoves(); } else { if (collition) { string name = collition.transform.gameObject.name; // 持ち駒の場合 if (name.IndexOf(KomaConst.motigoma) > -1) { masuScript.chooseMotigoma(name); // 盤上の駒の場合 } else { masuScript.chooseKoma(name); } } } } }