Пример #1
0
    // 移動可能マスの表示
    //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;
        }
    }
Пример #2
0
    // 移動可能駒のマス表示
    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;
        }
    }
Пример #3
0
 // 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);
                 }
             }
         }
     }
 }