예제 #1
0
    private void GenerateBlocks()
    {
        for (int i = 0; i < mapData.Length; i++)
        {
            for (int j = 0; j < mapData[i].Length; j++)
            {
                WTTileData tileData = mapData[i][j];

                if (tileData.tileType == TileType.Solid)
                {
                    WTWall  block  = new WTWall(WTConfig.tileSize, WTConfig.tileSize);
                    Vector2 newPos = GetOriginOfTile(i, j);
                    block.SetPosition(newPos.x + WTConfig.tileSize / 2f, newPos.y + WTConfig.tileSize / 2f);
                    block.sprite.color = Color.black;
                    AddChild(block);
                }
            }
        }
    }
예제 #2
0
    public WTTileMap(int mapWidth, int mapHeight)
    {
        instance = this;

        this.mapWidth  = mapWidth;
        this.mapHeight = mapHeight;

        mapData = new WTTileData[mapWidth][];
        for (int i = 0; i < mapWidth; i++)
        {
            mapData[i] = new WTTileData[mapHeight];
        }

        for (int i = 0; i < mapWidth; i++)
        {
            int spotHeight  = Random.Range(0, 2);
            int spaceHeight = Random.Range(4, 6);

            for (int j = 0; j < mapHeight; j++)
            {
                WTTileData tileData = new WTTileData();
                tileData.x = i;
                tileData.y = j;

                if (j <= spotHeight || j > spotHeight + spaceHeight)
                {
                    tileData.tileType = TileType.Solid;
                }
                else
                {
                    tileData.tileType = TileType.Empty;
                }

                mapData[i][j] = tileData;
            }
        }

        GenerateBlocks();
    }
예제 #3
0
 public static bool TilesShareLocation(WTTileData tile1, WTTileData tile2)
 {
     return(tile1.x == tile2.x && tile1.y == tile2.y);
 }