Пример #1
0
    //マスを移動させる
    private void moveMas(int aNum, PlayerStatus aPlayer, Action aCallback)
    {
        int    tCount = 0;
        Action tMove  = () => { };

        tMove = () => {
            int        tNextMasNumber = (aPlayer.mCurrentMasNumber + 1) % mElement.mMasStatus.Length;
            MasStatus  tNextMas       = mElement.mMasStatus[tNextMasNumber];
            MasDisplay tNextDisplay   = mElement.mMasDisplay[tNextMasNumber];
            mElement.mPlayerPieces[aPlayer.mPlayerNumber].moveToWithSpeed(tNextDisplay.position2D, 10, () => {
                aPlayer.mCurrentMasNumber = tNextMasNumber;
                tCount++;
                //通過イベント
                runPassEvent(aPlayer, () => {
                    if (tCount < aNum)
                    {
                        tMove();
                        return;
                    }
                    aCallback();
                });
            });
        };
        tMove();
    }
Пример #2
0
    public static MasDisplay[] placeMas(StageData aData)
    {
        //ルート(白い線)の入れ物
        MyBehaviour tRouteContainer = MyBehaviour.create <MyBehaviour>();

        tRouteContainer.positionZ = 0.5f;
        MyBehaviour tRoute;

        tRouteContainer.name = "routeContainer";
        //マスの入れ物
        MyBehaviour tMasContainer = MyButton.create <MyBehaviour>();

        tMasContainer.name = "masContainer";

        List <StageData.Mas> tMasDataList = aData.mMas;

        MasDisplay[] tDisplay = new MasDisplay[tMasDataList.Count];
        MasDisplay   tPrefab  = Resources.Load <MasDisplay>("prefab/game/mas/land");

        for (int i = 0; i < tMasDataList.Count; i++)
        {
            switch (tMasDataList[i].mType)
            {
            case MasStatus.MasType.land:
                tDisplay[i] = GameObject.Instantiate <MasDisplay>(tPrefab);
                break;

            case MasStatus.MasType.start:
                tDisplay[i] = GameObject.Instantiate <MasDisplay>(Resources.Load <MasDisplay>("prefab/game/mas/start"));
                break;

            case MasStatus.MasType.accident:
                tDisplay[i] = GameObject.Instantiate <MasDisplay>(Resources.Load <MasDisplay>("prefab/game/mas/" + ((StageData.Accident)tMasDataList[i]).mAccidentType));
                break;

            default:
                throw new System.Exception("GamePlacer : 不正な土地属性");
            }
            tDisplay[i].position2D       = tMasDataList[i].position;
            tDisplay[i].transform.parent = tMasContainer.transform;
            //ルート配置
            if (i != 0)
            {
                tRoute = placeRoute(tDisplay[i - 1].position2D, tDisplay[i].position2D);
                tRoute.transform.SetParent(tRouteContainer.transform, false);
            }
        }
        //最初のマスと最後のマスのルート配置
        tRoute = placeRoute(tDisplay[tMasDataList.Count - 1].position2D, tDisplay[0].position2D);
        tRoute.transform.parent = tRouteContainer.transform;
        return(tDisplay);
    }