public void Start()
    {
        Debug.Assert(width != 0 && height != 0);

        CurWorld = new DoWorld(width, height);
        NextWorld = new DoWorld(width, height);

    }
Esempio n. 2
0
    public void RemoveTilesAround(DoWorld world, DoRegion biggestRegion, int x, int y, int radius)
    {

        if (biggestRegion != null)
             biggestRegion.Remove(world.GetTileAt(x, y));

        for (int i = -radius; i <= radius; i++)
        {
            for (int j = -radius; j <= radius; j++)
            {
                int idX = x + i;
                int idY = y + j;

                if (idX >= borderWidth && idY >= borderWidth && idX < world.WorldWidth - borderWidth && idY < world.WorldHeight - borderWidth)
                {
                    int dist = world.GetDistance8Neigh(x, y, idX, idY);

                    if (dist <= radius && world.GetTileAt(idX, idY).TopObject != DoTile.ObjectOnTop.Player && world.GetTileAt(idX, idY).TopObject != DoTile.ObjectOnTop.BigPortal && world.GetTileAt(idX, idY).TopObject != DoTile.ObjectOnTop.SingleBlocker && world.GetTileAt(idX, idY).TopObject != DoTile.ObjectOnTop.SmallPortal)
                    {
                        world.GetTileAt(idX, idY).Type = DoTile.TileType.Empty;
                        world.GetTileAt(idX, idY).TopObject = DoTile.ObjectOnTop.None;

                        world.GetTileAt(idX, idY).SpawnEnemyHere = false;

                    
                    }
                }
            }
        }
    }
Esempio n. 3
0
    private void FillRegion(DoRegion region, DoWorld world, int[,] markedTiles, int x, int y)
    {

        //is inside the level:
        if (x >= 0 && y >= 0 && y < height && x < width)
        {
            //label is not 0 -> its marked by a region
            if (markedTiles[x, y] != 0 || world.GetTileAt(x, y).Type == DoTile.TileType.Obstacle)
                return;

            else
            {
                markedTiles[x, y] = region.RegionId;
                region.AddTile(world.GetTileAt(x, y));

                FillRegion(region, world, markedTiles, x - 1, y);
                FillRegion(region, world, markedTiles, x + 1, y);
                FillRegion(region, world, markedTiles, x, y - 1);
                FillRegion(region, world, markedTiles, x, y + 1);
            }


          
        }
    }