Добавлен
Вопрос на скрине

Steal nerves:
SquareRoot это математический корень
О чем это мне говорит? Он должен высчитать расстояние между коордами. Я переписал в одну строку все из функции DistanceBP, но выдает всегда 0
Лол, нужно минусы в скобки просто. Мда
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
27
SquareRoot - это математический корень
dx * dx - можно возвести в степень два, но в варкрафте такого нет, да и не нужно
dx - вектор, точнее его проекция на оси x (из конца вычитаем начало, этим мы можем узнать направление)
19
Steal nerves:
SquareRoot это математический корень
О чем это мне говорит? Он должен высчитать расстояние между коордами. Я переписал в одну строку все из функции DistanceBP, но выдает всегда 0
Лол, нужно минусы в скобки просто. Мда
Принятый ответ
30
но в варкрафте такого нет, да и не нужно
    Pow(dx, 2.0)
этим мы можем узнать направление
Пример кода можно попросить?

Самый оптимальный вариант реализации функции поиска расстояния между двумя точками:
    float M_Distance(float x1, float y1, float z1, float x2, float y2, float z2) {
        float deltaX = x1 - x2
        float deltaY = y1 - y2
        float deltaZ = z1 - z2
        return SquareRoot(deltaX*deltaX + deltaY*deltaY + deltaZ*deltaZ)
    }
Автор, не пользуйся location, работай с координатами!
19
Clamp:
но в варкрафте такого нет, да и не нужно
Pow(dx, 2.0)

Самый оптимальный вариант реализации функции поиска расстояния между двумя точками:
    float M_Distance(float x1, float y1, float z1, float x2, float y2, float z2) {
        float deltaX = x1 - x2
        float deltaY = y1 - y2
        float deltaZ = z1 - z2
        return SquareRoot(Pow(deltaX, 2) + Pow(deltaY, 2) + Pow(deltaZ, 2))
    }
Автор, не пользуйся location, работай с координатами!
Это была стандартная функция DistanceBP, я ее для сравнения взял просто
Спасибо
16
напоминаю о существовании IsUnitInRange(u1,u2,rng) и IsUnitInRangeXY(u,x,y,rng) для проверки расстояний между юнитом и точкой/юнитом. В большинстве случаев проверяют, входит ли юнит в аое, и эта нативка будет в разы быстрее, чем самописцы
19
DracoL1ch:
напоминаю о существовании IsUnitInRange(u1,u2,rng) и IsUnitInRangeXY(u,x,y,rng) для проверки расстояний между юнитом и точкой/юнитом. В большинстве случаев проверяют, входит ли юнит в аое, и эта нативка будет в разы быстрее, чем самописцы
Мне нужен реал расстояния, а не тру/фалс
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.