Пытаясь найти расстояние между 2 точками - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь найти расстояние между 2 векторами. В настоящее время это код, который у меня есть.

if (((enemyOrigin.X - player.playerOrigin.X) * (enemyOrigin.X - player.playerOrigin.X) + (enemyOrigin.Y - player.playerOrigin.Y) * (enemyOrigin.Y - player.playerOrigin.Y)) < 80 * 80)
            isEnemyInRange = true;

У меня есть * поиск пути, который отлично работает внутри оператора if, который проверяет, является ли isEnemyInRange ложным. Таким образом, враг должен оставаться неподвижным, если он находится на расстоянии 80 пикселей.

 if (!isEnemyInRange)
        {
             //A*//
        }

При этом противник не остается на расстоянии 80 пикселей, он просто находит путь к игроку, как это должно быть без всего остального.

1 Ответ

2 голосов
/ 16 апреля 2020

Вы можете использовать метод Vector2.Distance по умолчанию для вычисления расстояния между двумя векторами.

Vector2.Distance(enemyOrigin, player.playerOrigin)

Предполагая, что эти две переменные представляют соответствующую позицию как Vector2

Дополнительное чтение: https://docs.microsoft.com/en-us/previous-versions/windows/xna/bb196336%28v%3dxnagamestudio.10%29

...