XNA从播放器中查找最近的矢量

Nai*_*rda 1 c# xna vector

我有一个向量列表和一个PlayerVector我只想知道如何在我的列表中找到最接近我的PlayerVector的Vector.

这是我的变量:

List<Vector2> Positions;
Vector2 Player;
Run Code Online (Sandbox Code Playgroud)

变量已经声明了所有,我只需要一个简单的代码来搜索最接近我的播放器的位置.有没有一个简单的方法?

Cam*_*ron 7

由于您不需要精确的距离(只是相对比较),您可以跳过毕达哥拉斯距离公式中的平方根步骤:

Vector2? closest = null;
var closestDistance = float.MaxValue;
foreach (var position in Positions) {
    var distance = Vector2.DistanceSquared(position, Player);
    if (!closest.HasValue || distance < closestDistance) {
        closest = position;
        closestDistance = distance;
    }
}


// closest.Value now contains the closest vector to the player
Run Code Online (Sandbox Code Playgroud)