Esempio n. 1
0
    private void TryCreateRoom(float randomModifier, ICollection <Room> rooms)
    {
        var tryLeft = 100;

        Room room = null;

        while (room == null || GetCollidings(room, rooms).Count != 0 ||
               room.GetLeft() < -mapWidth / 2f || room.GetRight() > mapWidth / 2f ||
               room.GetTop() < -mapHeight / 2f || room.GetBottom() > mapHeight / 2f)
        {
            if (tryLeft <= 0)
            {
                return;
            }

            var pos = VecUtils.GetRandomPointInCircle(rand, (float)mapWidth / 2);
            room = new Room((int)pos.x, (int)pos.y,
                            (int)(roomWidth.Random * randomModifier), (int)(roomHeight.Random * randomModifier));

            tryLeft--;
        }

        rooms.Add(room);
    }