本文整理汇总了C#中Area.distanceToLocal方法的典型用法代码示例。如果您正苦于以下问题:C# Area.distanceToLocal方法的具体用法?C# Area.distanceToLocal怎么用?C# Area.distanceToLocal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Area
的用法示例。
在下文中一共展示了Area.distanceToLocal方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: pathTo
public List<Vector2i> pathTo(Area area, Vector2i point)
{
point = point - area.origin;
int d = area.distanceToLocal(point);
List<Vector2i> result = new List<Vector2i>(d);
if (d <= 0)
return result;
Vector2i[] path = new Vector2i[d];
path[0] = point;
int checkFirst = 0;
int currentValue = d;
for (int i = 1; i < d; ++i)
{
Vector2i current = path[i - 1];
for (int j = 0; j < 4; ++j)
{
Vector2i potential = current + Vector2i.directions4[(checkFirst + j) % 4];
int potentialValue = area.distanceToLocal(potential);
if (potentialValue < 0)
continue;
if (potentialValue < currentValue)
{
currentValue = potentialValue;
path[i] = potential;
checkFirst = j;
break;
}
}
}
for (int i = 0; i < d; ++i)
{
result.Add(area.origin + path[d - i - 1]);
}
return result;
}