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


C# TileMap.GetTiles方法代码示例

本文整理汇总了C#中TileMap.GetTiles方法的典型用法代码示例。如果您正苦于以下问题:C# TileMap.GetTiles方法的具体用法?C# TileMap.GetTiles怎么用?C# TileMap.GetTiles使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TileMap的用法示例。


在下文中一共展示了TileMap.GetTiles方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Find

    public static List<Tile> Find(TileMap tileMap, Tile sourceTile, Tile destinationTile, bool moveThroughOccupied)
    {
        List<Tile> shortestPath = new List<Tile>();

        Dictionary<Tile, int> tileToDistance = new Dictionary<Tile, int>();
        Dictionary<Tile, Tile> tileToOptimalPrevious = new Dictionary<Tile, Tile>();
        List<Tile> unvisited = new List<Tile>(tileMap.GetTiles());
        if (!moveThroughOccupied) {
            unvisited = TileUtility.FilterOutOccupiedTiles(unvisited);
            unvisited.Add(sourceTile);
        }

        tileToDistance.Add(sourceTile, 0);

        Tile currentTile = null;
        int count = 0;
        while (unvisited.Count > 0 && count < 100) {
            count++;
            currentTile = TileWithMinDistance(tileToDistance, unvisited);
            unvisited.Remove(currentTile);
            CalculateDistanceAndUpdatePath(currentTile, tileMap.TopNeighbor(currentTile), tileToDistance, tileToOptimalPrevious, moveThroughOccupied);
            CalculateDistanceAndUpdatePath(currentTile, tileMap.BottomNeighbor(currentTile), tileToDistance, tileToOptimalPrevious, moveThroughOccupied);
            CalculateDistanceAndUpdatePath(currentTile, tileMap.LeftNeighbor(currentTile), tileToDistance, tileToOptimalPrevious, moveThroughOccupied);
            CalculateDistanceAndUpdatePath(currentTile, tileMap.RightNeighbor(currentTile), tileToDistance, tileToOptimalPrevious, moveThroughOccupied);
        }

        Debug.Log("starting return path - " + count);

        Tile returnTile = destinationTile;
        shortestPath.Add(returnTile);
        count = 0;
        while (returnTile != sourceTile && count < 100) {
            count++;
            Debug.Log("finding last hop for " + returnTile.TileData);
            returnTile = tileToOptimalPrevious[returnTile];
            Debug.Log("found " + returnTile.LocationString());
            shortestPath.Add(returnTile);
        }
        Debug.Log("finish return path");
        shortestPath.Reverse();
        return shortestPath;
    }
开发者ID:Shnagenburg,项目名称:TacticsGame,代码行数:42,代码来源:FindShortestPath.cs


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