Beispiel #1
0
    public void GenerateCave()
    {
        cave = new Cave(Width, Height, RandomFillPercentage, BorderThickness);

        cave.Generate(UseRandomSeed ? (int)DateTimeOffset.Now.ToUnixTimeSeconds() : Seed.GetHashCode());

        for (int i = 0; i < SmoothingCount; i++)
        {
            cave.SmoothCave();
        }

        if (RemoveSmallRegions)
        {
            cave.ReplaceRegions(CaveTile.Air, CaveTile.Wall, MinimumRegionSize);
            cave.ReplaceRegions(CaveTile.Wall, CaveTile.Air, MinimumRegionSize);
        }

        if (ConnectAllRooms)
        {
            cave.ConnectAllRegionsOfType(CaveTile.Air, (int)PassageWidth);
        }

        MeshGenerator meshGenerator = GetComponent <MeshGenerator>();

        meshGenerator.GenerateMesh(cave.Tiles, 1);
    }
Beispiel #2
0
    void Start()
    {
        if (_on)
        {
            Debug.Log("Start");
            _tileMapCollider.enabled = false;
            _grid = Cave.Generate(_cols, _rows, false /* isAngular */, false /* isEmpty */);
            for (int row = 0; row < _rows; row++)
            {
                for (int col = 0; col < _cols; col++)
                {
                    CellType cell = _grid[col, row];
                    if (cell != CellType.Empty)
                    {
                        _tileMap.SetTile(new Vector3Int(col, row, 0), _tile);
                    }
                }
            }

            Debug.Log(watch.ElapsedMilliseconds);
            _tileMapCollider.enabled = true;

            GridPoint gp = Cave.GetSpawnPoint();
            Instantiate(_playerPrefab, new Vector3(gp.column + 0.5f, (gp.row + 0.5f), 10), Quaternion.identity);

            for (int i = 0; i < 10; i++)
            {
                gp = Cave.GetSpawnPoint();
                Instantiate(_enemyPrefab, new Vector3(gp.column + 0.5f, (gp.row + 0.5f), 10), Quaternion.identity);
            }
        }
    }
Beispiel #3
0
        static void Main(string[] args)
        {
            //Create Cave
            Cave cave = new Cave(100, 210, 65);

            //Render 20 times
            for (int a = 0; a < 20; a++)
            {
                //Get the cave display
                string display = cave.Display();
                //Generate the cave
                cave.Generate();
                //Turn the cave data into readable graphics
                for (int i = 0; i < (display.Length); i++)
                {
                    if (display[i].ToString() != "l")
                    {
                        int num = int.Parse(display[i].ToString());
                        if (num == 0)
                        {
                            Console.ForegroundColor = ConsoleColor.DarkBlue;
                        }
                        if (num == 1)
                        {
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        if (num == 2)
                        {
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        Console.Write("0");
                    }
                    else
                    {
                        //Create new line
                        Console.Write("\n");
                    }
                }
                Console.Clear();
            }
            Console.ReadKey();
        }