當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。