예제 #1
0
    ///マス生成
    static public MapTrout create(List <Arg> aChip)
    {
        MapTrout              tTrout              = MyBehaviour.create <MapTrout>();
        List <Arg>            tMasDataList        = new List <Arg>();                                         //マスのタイル情報リスト
        MapAttributeBehaviour tAttributeBehaviour = tTrout.gameObject.AddComponent <MapAttributeBehaviour>(); //マップ属性

        tAttributeBehaviour.setAttribute(MapBehaviourAttribute.Attribute.none);                               //マップ属性の初期値をnoneに設定
        //マスのタイル情報を読んでリストに
        foreach (Arg tData in aChip)
        {
            Arg tMasData = loadMasData(tData.get <string>("file"), tData.get <int>("x"), tData.get <int>("y"));
            tMasData.set("file", tData.get <string>("file"));
            tMasDataList.Add(tMasData);
            //マップ属性を重ねる
            tAttributeBehaviour.mAttribute.pile(tMasData.get <string>("attribute"));
        }
        //画像設定
        ChildSprite.addSpriteObject(tTrout.gameObject, new Arg(new Dictionary <string, object>()
        {
            { "pile", tMasDataList }
        }), kDirPath);
        //collider設定
        if (tAttributeBehaviour.mAttribute.attribute != MapBehaviourAttribute.Attribute.flat &&
            tAttributeBehaviour.mAttribute.attribute != MapBehaviourAttribute.Attribute.none)
        {
            BoxCollider2D tBox = tTrout.gameObject.AddComponent <BoxCollider2D>();
            tBox.size = new Vector2(1, 1);
        }
        return(tTrout);
    }
예제 #2
0
    static public LocalMap create(string aMapName)
    {
        //マップデータロード
        Arg tMapData = new Arg(MyJson.deserializeResourse("Database/map/" + aMapName));
        List <List <int> > tTroutData = tMapData.get <List <List <int> > >("feild");
        Arg tChipData = tMapData.get <Arg>("chip");

        int tWidth  = tTroutData[0].Count;
        int tHeight = tTroutData.Count;

        MapTrout[,] tTrouts = new MapTrout[tWidth, tHeight];

        //マス
        List <MapCharacter> tCharacters = new List <MapCharacter>();
        GameObject          tTiles      = GameObject.Find("mapTiles");

        for (int tX = 0; tX < tWidth; tX++)
        {
            for (int tY = 0; tY < tHeight; tY++)
            {
                string     tChipNum = tTroutData[tY][tX].ToString();
                List <Arg> tChip    = tChipData.get <List <Arg> >(tChipNum);
                MapTrout   tTrout   = MapTroutCreater.create(tChip);
                tTrout.transform.parent = tTiles.transform;
                tTrout.mapPosition      = new Vector2(tX, tY);
                tTrout.name             = "(" + tX.ToString() + "," + tY.ToString() + ")";
                tTrouts[tX, tY]         = tTrout;
            }
        }
        //オブジェクト
        List <MapObject> tObjects  = new List <MapObject>();
        GameObject       tSpeakers = GameObject.Find("mapSpeakers");

        foreach (Arg tObjectData in tMapData.get <List <Arg> >("object"))
        {
            MapObject tObject = MapObjectCreater.create(tObjectData.get <string>("file"), tObjectData.get <string>("name"));
            tObject.mapPosition = new Vector2(tObjectData.get <float>("x"), tObjectData.get <float>("y"));
            if (tObjectData.ContainsKey("z"))
            {
                tObject.zIndex = tObjectData.get <float>("z");
            }
            tObject.transform.parent = tSpeakers.transform;
            tObjects.Add(tObject);
            //searchEvent
            if (tObjectData.ContainsKey("search"))
            {
                MapSearchedBehaviour tSearched = tObject.gameObject.AddComponent <MapSearchedBehaviour>();
                Arg tEvent = tMapData.get <Arg>("argument").get <Arg>(tObjectData.get <string>("search"));
                tSearched.setSearchedEvent(tEvent);
            }
            //子オブジェクト
        }
        LocalMap tMap = new LocalMap(tTrouts, tCharacters, tObjects, new List <MapEventTrigger>());
        //イベント
        List <MapEventTrigger> tTriggers = new List <MapEventTrigger>();
        GameObject             tEvents   = GameObject.Find("mapEvents");

        foreach (Arg tEventData in tMapData.get <List <Arg> >("event"))
        {
            MapEventTrigger tTrigger = MapEventTriggerCreater.create(tEventData);
            tTrigger.mapPosition      = new Vector2(tEventData.get <float>("x"), tEventData.get <float>("y"));
            tTrigger.transform.parent = tEvents.transform;
            tMap.addEventTrigger(tTrigger);
        }
        return(tMap);
    }