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


C# BlockPos.Equals方法代码示例

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


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

示例1: ProcessBest

    void ProcessBest()
    {
        float shortestDist = (distanceFromStartToTarget*maxDistToTravelMultiplier) + maxDistToTravelAfterDirect;
        BlockPos bestPos = new BlockPos(0,10000,0);

        foreach (var tile in open)
        {
            if (tile.Value.g + tile.Value.h < shortestDist)
            {
                bestPos = tile.Key;
                shortestDist = tile.Value.g + tile.Value.h;
            }
        }

        Heuristics parent;
        open.TryGetValue(bestPos, out parent);
        Debug.DrawLine(new Vector3(parent.parent.x, parent.parent.y + 1, parent.parent.z),
            new Vector3(bestPos.x, bestPos.y + 1, bestPos.z), Color.blue, 40);

        if (Distance(((Vector3)bestPos) + (Vector3.up*2), targetLocation) <= range)
        {
            PathComplete(bestPos);
            return;
        }

        if (bestPos.Equals(new BlockPos(0, 10000, 0)))
        {
            noRoute = true;
            Debug.Log("Failed to pf " + targetLocation.x + ", " + targetLocation.y + ", " + targetLocation.z);
            complete = true;
            path.Clear();
            path.Add(startLocation);

            open.Clear();
            closed.Clear();
            return;
        }

        ProcessTile(bestPos);
    }
开发者ID:holmstrom,项目名称:Voxelmetric,代码行数:40,代码来源:PathFinder.cs

示例2: ProcessBest

    void ProcessBest()
    {
        float shortestDist = (distanceFromStartToTarget * maxDistToTravelMultiplier) + maxDistToTravelAfterDirect;
        BlockPos bestPos = new BlockPos(0, 10000, 0);

        foreach (var tile in open) {
            if (tile.Value.g + tile.Value.h < shortestDist) {
                bestPos = tile.Key;
                shortestDist = tile.Value.g + tile.Value.h;
            }
        }

        Heuristics parent;
        open.TryGetValue(bestPos, out parent);

        if (Distance(((Vector3)bestPos) + (Vector3.up * 2), targetLocation) <= range) {
            PathComplete(bestPos);
            return;
        }

        if (bestPos.Equals(new BlockPos(0, 10000, 0))) {
            Debug.Log("Failed to pf " + targetLocation.x + ", " + targetLocation.y + ", " + targetLocation.z);
            bestPos = new BlockPos(0, 10000, 0);

            foreach (var tile in open) {
                if (tile.Value.g + tile.Value.h < shortestDist) {
                    bestPos = tile.Key;
                    shortestDist = tile.Value.g + tile.Value.h;
                }
            }
            PathComplete(bestPos);
        }

        ProcessTile(bestPos);
    }
开发者ID:Dalez,项目名称:CubeCraft,代码行数:35,代码来源:PathFinder.cs


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