本文整理汇总了C#中City.HasRoomFor方法的典型用法代码示例。如果您正苦于以下问题:C# City.HasRoomFor方法的具体用法?C# City.HasRoomFor怎么用?C# City.HasRoomFor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类City
的用法示例。
在下文中一共展示了City.HasRoomFor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CityGenerator
private IEnumerator<City> CityGenerator(City city, List<City> allCities)
{
int safety = 0;
int insertions = 0;
while (safety < 100 && insertions < 15 && openings.Count > 0) {
string debug = "stepping generation next. Number of openings: " + openings.Count + ", insertions: " + insertions + ", safety: " + safety;
safety++;
Opening opening = openings.GetRandom();
City insert = FindMatching(opening, allCities);
if (insert == null) {
Debug.LogWarning("Found no matching city for an opening!");
continue;
}
var startX = opening.x;
var startY = opening.y;
if (opening.dir == Dir.Left)
startX -= insert.width;
else if (opening.dir == Dir.Up)
startY -= insert.height;
else if (opening.dir == Dir.Down)
startY++;
else if (opening.dir == Dir.Right)
startX++;
debug += "\nStarting at (" + startX + "/" + startY + ") \nInserting:\n";
debug += insert.ToString();
if (city.HasRoomFor(insert, startX, startY)) {
insertions++;
city = InsertInCity(city, insert, startX, startY);
RemoveInvalidOpenings(city.cityGrid);
debug += "\nInsert successfull!";
}
else {
debug += "\nInsert failed, no room!";
}
Debug.Log(debug);
city = showDebugOpenings(city);
yield return city;
}
Debug.Log("Finished generation: Number of openings: " + openings.Count + ", insertions: " + insertions + ", safety: " + safety);
}