当前位置: 首页>>代码示例>>C#>>正文


C# City.HasRoomFor方法代码示例

本文整理汇总了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);
    }
开发者ID:Baste-RainGames,项目名称:CityBuilder,代码行数:47,代码来源:RandomCity.cs


注:本文中的City.HasRoomFor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。