Example #1
0
    void StartLevel()
    {
        level          = 0;
        levelText.text = "Level " + (level + 1);
        // SetDictionaryData();

        TextAsset asset  = Resources.Load("JsonData/LevelConfig") as TextAsset;
        TextAsset asset2 = Resources.Load("JsonData/TilePointsConfig") as TextAsset;

        if (asset != null)
        {
            data = JsonUtility.FromJson <Data>(asset.text);

            SetLevelValue(level);
        }
        else
        {
            Debug.Log("Asset is null");
        }

        if (asset2 != null)
        {
            tilePointData = JsonUtility.FromJson <TilePointData>(asset2.text);
        }
        else
        {
            Debug.Log("Asset2 is null");
        }
    }
    // Create board
    // public void CreateBoard(int _row, int _column, Vector2 _startPosition, Vector2 _offset, GameObject _tile, List<name> _names, Dictionary<name, Sprite> _spriteDict, Data _data)
    // {
    //     spriteDict = _spriteDict;
    //     row = _row;
    //     column = _column;
    //     startPosition = _startPosition;
    //     offset = _offset;
    //     tiles = new TileController[row, column];
    //     tile = _tile;
    //     names = _names;
    //     BoardData[] boardData = data.items.levels[0].boards;

    //     // tile = Resources.Load()
    //     for (int y = 0; y < column; y++)
    //     {
    //         for (int x = 0; x < row; x++)
    //         {
    //             GameObject newTile = Instantiate(tile, new Vector3(startPosition.x + (offset.x * x), startPosition.y - (offset.y * y), 0), tile.transform.rotation);
    //             tiles[x, y] = newTile.GetComponent<TileController>();
    //             newTile.name = "[ " + x + " , " + y + " ]";
    //             tiles[x, y].transform.parent = transform;

    //             List<name> listname = new List<name>();
    //             listname.AddRange(names);

    //             if (x > 0)
    //                     listname.Remove(tiles[x - 1, y].name);
    //             if (y > 0)
    //                     listname.Remove(tiles[x, y - 1].name);

    //             name name = listname[UnityEngine.Random.Range(0, listname.Count)];
    //             // Debug.LogFormat("x = {0}, y = {1}, tilesNames count = {2}", x, y , listname.Count);
    //             tiles[x, y].name = name;
    //             newTile.name = name.ToString();
    //             tiles[x, y].SpriteRenderer.sprite = spriteDict[name];
    //         }
    //     }
    // }

    // Create board by level
    // public void CreateBoardByLevelInfo(int _row, int _column, Vector2 _startPosition, Vector2 _offset, GameObject _tile, List<name> _names, Dictionary<name, Sprite> _spriteDict, Dictionary<int, name> intnameDict, int[] intTileArrays, Data _data)
    // {
    //     data = _data;
    //     spriteDict = _spriteDict;
    //     row = _row;
    //     column = _column;
    //     startPosition = _startPosition;
    //     offset = _offset;
    //     tiles = new TileController[row, column];
    //     tile = _tile;
    //     names = _names;
    //     intTileDict = intnameDict;
    //     intTileArray = intTileArrays;

    //     for (int y = 0; y < column; y++)
    //     {
    //         for (int x = 0; x < row; x++)
    //         {
    //             GameObject newTile = Instantiate(tile, new Vector3(startPosition.x + (offset.x * x), startPosition.y - (offset.y * y), 0), tile.transform.rotation);
    //             tiles[x, y] = newTile.GetComponent<TileController>();

    //             // string spriteId = BillboardAsset.Find ( e => e.x == x && e.y == y ).id;
    //             // string spriteName = objects.Find ( e => e.id == spriteId).spriteName;
    //             // SpriteRenderer sprite = Resources.Load<SpriteRenderer>()
    //             // tile[x,y].spriterRedner = sprite;
    //             // tile[x,y].score = object.score;

    //             //newTile.name = "[ " + x + " , " + y + " ]";

    //             // Ba vì có con bò vàng


    //             int soNguyenDaiDienChoTileTrongTuDien = intTileArray[x + y * row];
    //             name name = intTileDict[soNguyenDaiDienChoTileTrongTuDien];

    //             tiles[x, y].name = name;
    //             // Get the sprite through index
    //             tiles[x, y].SpriteRenderer.sprite = Resources.Load<Sprite>("Character/" + (int)name); //spriteDict[name];
    //             newTile.name = soNguyenDaiDienChoTileTrongTuDien.ToString();
    //             //name theTile = intTileDict[]

    //         }
    //     }
    // }

    public void CreateBoardWithIndexAndString(int _row, int _column, Vector2 _startPosition, Vector2 _offset, GameObject _tile, Data _data, TilePointData _tilePointData)
    {
        // spriteDict = _spriteDict;
        row           = _row;
        column        = _column;
        startPosition = _startPosition;
        offset        = _offset;
        tiles         = new TileController[row, column];
        tile          = _tile;
        // names = _names;
        // intTileDict = intnameDict;
        //intTileArray = intTileArrays;
        data          = _data;
        tilePointData = _tilePointData;

        for (int y = 0; y < column; y++)
        {
            for (int x = 0; x < row; x++)
            {
                int posX = data.items.levels[0].boards[x + y * row].x;
                int posY = data.items.levels[0].boards[x + y * row].y;
                // Debug.Log(data.items.levels[0].boards[x * 8 + y].x);

                GameObject newTile = Instantiate(tile, new Vector3(startPosition.x + (offset.x * posX), startPosition.y - (offset.y * posY), 0), tile.transform.rotation);
                tiles[x, y] = newTile.GetComponent <TileController>();
                // int soNguyenDaiDienChoTileTrongTuDien = ;
                string nameLoaded = data.items.levels[0].boards[x + y * row].tileId;
                tiles[x, y].name = nameLoaded;
                TileDetails tileData = tilePointData.items.tileProperties.Find(e => e.id == nameLoaded);
                // Debug.LogFormat("tileData: {0}", tileData.id);
                tiles[x, y].SpriteRenderer.sprite = Resources.Load <Sprite>(tileData.id);
                // Get the sprite through index
                newTile.name = tileData.spriteName;
            }
        }
    }