コード例 #1
0
    override public void InitGrid()
    {
        var grid = (FlatTriGrid <TileCell>)Grid;

        var edgeGrid = grid.MakeEdgeGrid <MazeCell>();

        var edgeMap = new PointyRhombMap(cellDimensions)
                      .WithWindow(ExampleUtils.ScreenRect)
                      .AlignMiddleCenter(edgeGrid)
                      .To3DXY();

        foreach (var point in edgeGrid)
        {
            MazeCell cell = GridBuilderUtils.Instantiate(edgePrefab);
            cell.transform.parent        = transform;
            cell.transform.localScale    = Vector3.one;
            cell.transform.localPosition = edgeMap[point];
            cell.SetOrientation(point.I, false);
            cell.name       = "M";
            edgeGrid[point] = cell;
        }

        foreach (var point in MazeAlgorithms.GenerateMazeWalls(grid))
        {
            if (edgeGrid[point] != null)
            {
                edgeGrid[point].SetOrientation(point.I, true);
            }
        }
    }
コード例 #2
0
    override public void InitGrid()
    {
        if (((PointyHexTileGridBuilder)GridBuilder).GridShape != PointyHexTileGridBuilder.Shape.Hexagon)
        {
            Debug.LogError("Shape must be Hexagon");

            return;
        }

        if (GridBuilder.Size % 2 != 0)
        {
            Debug.LogError("The size must be even!");

            return;
        }

        foreach (var point in Grid)
        {
            int color = point.GetColor2_4();
            ((SpriteCell)Grid[point]).FrameIndex = color;
        }

        foreach (var point in MazeAlgorithms.GenerateMazeWalls <TileCell>((PointyHexGrid <TileCell>)Grid))
        {
            ((SpriteCell)Grid[point]).FrameIndex = 0;
        }
    }
コード例 #3
0
    override public void InitGrid()
    {
        if (((RectTileGridBuilder)GridBuilder).GridShape != RectTileGridBuilder.Shape.Rectangle)
        {
            Debug.LogError("Shape must be Rectangle");

            return;
        }

        if ((GridBuilder.Dimensions.X % 2 != 1) && (GridBuilder.Dimensions.Y % 2 != 1))
        {
            Debug.LogError("Both dimensions must be even!");

            return;
        }

        foreach (var point in Grid)
        {
            int color = point.GetColor3() == 0 ? 0 : 1;
            Grid[point].Color = ExampleUtils.Colors[color];
        }

        foreach (var point in MazeAlgorithms.GenerateMazeWalls((RectGrid <TileCell>)Grid))
        {
            Grid[point].Color = ExampleUtils.Colors[0];
        }
    }