public void BuildTileGroups()
    {
        for (int y = 0; y < tileGridManager.numRows; y++)
        {
            for (int x = 0; x < tileGridManager.numColumns; x++)
            {
                Tile tile = tileGridManager.GetTileAt(x, y);

                if (tile != null && tile.TileGroup == null)
                {
                    GameObject tileGroupGO = (GameObject)Instantiate(tileGroupPrefab);
                    tileGroupGO.transform.parent = transform;

                    TileGroup tileGroup = tileGroupGO.GetComponent <TileGroup>();
                    tileGroup.TimeAfterScoredToDestroy = timeAfterScoredToDestroy;
                    tileGroup.IsAttachedToGrid         = true;

                    BuildTileGroup(tile, tileGroup);

                    UpdateTileGroupLayer(tileGroup);
                }
            }
        }
    }
Exemple #2
0
    void UpdateTileGridUp()
    {
        // Move existing tiles:
        for (int x = 0; x < tileGridManager.numColumns; x++)
        {
            for (int y = tileGridManager.numRows - 1; y >= 0; y--)
            {
                Tile tile = tileGridManager.GetTileAt(x, y);
                if (tile == null)
                {
                    if (!FillTileFromDirection(CardinalDirection.Down, x, y))
                    {
                        break;
                    }
                }
            }
        }

        // Create new tiles for empty spots:
        if (fillEmptyTiles)
        {
            for (int x = 0; x < tileGridManager.numColumns; x++)
            {
                for (int y = tileGridManager.numRows - 1; y >= 0; y--)
                {
                    Tile tile = tileGridManager.GetTileAt(x, y);
                    if (tile == null)
                    {
                        CreateTileInDirection(CardinalDirection.Down, x, y);
                    }
                }
            }
        }
    }