コード例 #1
0
    public void modKomanariObj(string objName, string narigomaName, int x, int y)
    {
        string      objNarigomaName = CreateKomaObj(narigomaName, x, y);
        MasuManager manager         = MasuManager.Instance;

        manager.SetMasu(x, y, KomaFunction.GetKomaNameByObjName(objNarigomaName));
        manager.UpdMasuObjNameByXAndY(objNarigomaName, x, y);
        DestroyKomaObj(objName);
    }
コード例 #2
0
    // 駒成確認&実行時
    void execCheckNarigoma(string name, int x, int y)
    {
        GameObject gameObj = GameObject.Find(name);
        KomaScript sc      = gameObj.GetComponent <KomaScript>();

        if (sc.selfFlag)
        {
            // 駒がまだ成ってない
            if (KomaFunction.isNotNarigoma(sc.komaName))
            {
                if (y <= 3 || sc.y <= 3 && sc.y != 0)
                {
                    if (KomaFunction.isRequireNarigoma(sc.komaName, x, y))
                    {
                        modKomanariObj(chooseKomaObjName, KomaFunction.GetNarigomaByKoma(sc.komaName), x, y);
                    }
                    else
                    {
                        string[] names = name.Split(new char[] { '_' });
                        name = "koma_" + names [1];
                        CreateNarigomaBg(KomaFunction.GetNarigomaByKoma(name), x, y);
                        CreateNarigomaBg2(name, x, y);
                        narigomaBgFlag = true;
                    }
                }
            }
        }
        else if (sc.enemyFlag)
        {
            // 駒がまだ成ってない
            if (KomaFunction.isNotNarigoma(sc.komaName))
            {
                if (y >= 7 || sc.y >= 7)
                {
                    if (KomaFunction.isRequireNarigoma(sc.komaName, x, y))
                    {
                        modKomanariObj(chooseKomaObjName, KomaFunction.GetNarigomaByKoma(sc.komaName), x, y);
                    }
                    else
                    {
                        string[] names = name.Split(new char[] { '_' });
                        name = "koma_" + names [1];
                        CreateNarigomaBg(KomaFunction.GetNarigomaByKoma(name), x, y);
                        CreateNarigomaBg2(name, x, y);
                        narigomaBgFlag = true;
                    }
                }
            }
        }
    }
コード例 #3
0
    // 駒移動処理
    public void MoveKomaObj(string name, int x, int y)
    {
        bool motigomaFlag = false;

        // 持ち駒の場合
        if (name.IndexOf(KomaConst.motigoma) > -1)
        {
            name = name.Replace(KomaConst.motigoma, "");
            MotigomaManager motigomaManager = MotigomaManager.Instance;
            motigomaManager.Minus(name);
            if (KomaFunction.isSelfKoma(name))
            {
                GameObject     obj = transform.Find("../Motigoma1").gameObject;
                MotigomaScript mSc = obj.GetComponent <MotigomaScript> ();
                mSc.RefreshKoma();
            }
            else
            {
                GameObject     obj = transform.Find("../Motigoma2").gameObject;
                MotigomaScript mSc = obj.GetComponent <MotigomaScript> ();
                mSc.RefreshKoma();
            }
            name = CreateKomaObj(name, x, y);
            MasuManager manager = MasuManager.Instance;
            manager.SetMasu(x, y, KomaFunction.GetKomaNameByObjName(name));
            manager.UpdMasuObjNameByXAndY(name, x, y);
            motigomaFlag = true;
        }
        GameObject gameObj = GameObject.Find(name);
        KomaScript sc      = gameObj.GetComponent <KomaScript> ();

        gameObj.transform.position = new Vector3(basex - per1x * x, basey - per1y * y, 2);
        // 持ち駒でない場合
        if (!motigomaFlag)
        {
            Debug.Log("motigomadenai " + name);
            execCheckGetEnemyKoma(name, x, y);
            execCheckNarigoma(name, x, y);
            // 移動前のマスを初期化
            MasuManager manager = MasuManager.Instance;
            manager.EmptyMasu(sc.x, sc.y);
            sc.x = x;
            sc.y = y;
            manager.SetMasu(x, y, KomaFunction.GetKomaNameByObjName(name));
            manager.UpdMasuObjNameByXAndY(name, x, y);
        }
    }
コード例 #4
0
    // 持ち駒選択処理
    public void chooseMotigoma(string name)
    {
        Debug.Log(name);

        // 選択持ち駒を浮かせる
        if (KomaFunction.isSelfKoma(name))
        {
            GameObject     obj = transform.Find("../Motigoma1").gameObject;
            MotigomaScript mSc = obj.GetComponent <MotigomaScript> ();
            mSc.floatKomaObj(name);
        }
        else
        {
            GameObject     obj = transform.Find("../Motigoma2").gameObject;
            MotigomaScript mSc = obj.GetComponent <MotigomaScript> ();
            mSc.floatKomaObj(name);
        }

        string[] names    = name.Split(new char[] { '_' });
        string   komaname = "koma_" + names[1];

        Debug.Log(komaname);
        GameObject      komaObj = GameObject.Find(name);
        KomaScript      sc      = komaObj.GetComponent <KomaScript> ();
        List <KomaMove> moves   = new List <KomaMove> ();

        if (komaname.Equals(KomaConst.komaOu) || komaname.Equals(KomaConst.komaGy))
        {
            KomaOu koma = new KomaOu();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaHi))
        {
            KomaHi koma = new KomaHi();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaKa))
        {
            KomaKa koma = new KomaKa();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaKi))
        {
            KomaKi koma = new KomaKi();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaGi))
        {
            KomaGi koma = new KomaGi();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaKe))
        {
            KomaKe koma = new KomaKe();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaKy))
        {
            KomaKy koma = new KomaKy();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaFu))
        {
            KomaFu koma = new KomaFu();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaOu2) || komaname.Equals(KomaConst.komaGy2))
        {
            KomaOu koma = new KomaOu();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaHi2))
        {
            KomaHi koma = new KomaHi();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaKa2))
        {
            KomaKa koma = new KomaKa();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaKi2))
        {
            KomaKi koma = new KomaKi();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaGi2))
        {
            KomaGi koma = new KomaGi();
            moves = koma.GetMotigomaMoves(sc);
        }
        else if (komaname.Equals(KomaConst.komaKe2))
        {
            KomaKe koma = new KomaKe();
            moves = koma.GetMotigomaMoves(sc, true);
        }
        else if (komaname.Equals(KomaConst.komaKy2))
        {
            KomaKy koma = new KomaKy();
            moves = koma.GetMotigomaMoves(sc, true);
        }
        else if (komaname.Equals(KomaConst.komaFu2))
        {
            KomaFu koma = new KomaFu();
            moves = koma.GetMotigomaMoves(sc, true);
        }
        this.RefresAbles(sc, moves, name);
    }
コード例 #5
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);
                 }
             }
         }
     }
 }