private void Start() { var r = new BasicRandom(seed); Dungeon dungeon; if (level == null) { DungeonGenerator d = new DungeonGenerator(r, s => { Debug.Log("Dungeon: " + s); }); d.CreateDungeon(width, height, things); dungeon = new Dungeon(); dungeon.Tiles = d.GetDungeonAs2D(); dungeon.Start = new Tuple <int, int> { Item1 = -1, Item2 = -1 }; } else { dungeon = DungeonGenerator.FromFile(level.text); } CreateLevel(dungeon.Tiles); CreateObjects(dungeon.Doodles); if (dungeon.Start.Item1 == -1) { MovePlayerToRandomTile(r, dungeon.Tiles); } else { MovePlayerToTile(dungeon.Start.Item1, dungeon.Start.Item2); } }
private void MovePlayerToRandomTile(BasicRandom r) { var randomTile = tiles[0, 0]; int x = 0, y = 0; while (randomTile != TileType.Floor) { x = r.Next(0, tiles.GetLength(0)); y = r.Next(0, tiles.GetLength(1)); randomTile = tiles[x, y]; } player.transform.position = new Vector3(x, 1, y); }
private void MovePlayerToRandomTile(BasicRandom r, TileType[,] dungeon) { var randomTile = dungeon[0, 0]; int x = 0, y = 0; while (randomTile != TileType.Floor) { x = r.Next(0, dungeon.GetLength(0)); y = r.Next(0, dungeon.GetLength(1)); randomTile = dungeon[x, y]; } MovePlayerToTile(x, y); }
private void Start() { var r = new BasicRandom(seed); if (level == null) { Dungeon d = new Dungeon(r, s => { Debug.Log("Dungeon: " + s); }); d.CreateDungeon(width, height, things); tiles = d.GetDungeonAs2D(); } else { tiles = Dungeon.FileToTileMap(level.text); } CreateLevel(); AssignCheckpoints(); //MovePlayerToRandomTile(r); MovePlayerToStart(); }