Что нового

Положение противника относительно текущей позиции

_serfer_78_

Новичок
Сообщения
16
Репутация
0
Игра "World of tanks"
Ребята подскажите по какой формуле определить положение противника относительно текущих координат собственного танка? При работе с изображением в AutoIt используется вот такая система координат..

e0359b5784b2.jpg


но в игре координаты расположены по другому ,а именно вот так..

a204680ae660.jpg


Координаты на картинках просто для примера.. между собой картинки никакой взаимосвязи не имеют...

И так , поиск пикселей это занятие не дающее большой точности и по ресурсам очень расточительно решил отказаться от работы с пикселями..
Я получаю координаты в 3D формате в реальном времяни с помощью мода.. и все расчеты будут вестись с использованием векторов..
AutoIt будет использован только для управления клавиатурой и мышью, может кто знает как правильно определить с какой стороны находится противник , чтобы повернуть орудие или танк в нужную сторону. Можно конечно посмотреть на разницу углов, если она положительна — направо. Но рассмотрим случай: текущий угол — 30 градусов, требуемый — 330 градусов. Разница отрицательна, но нам все равно направо. А еще углы могут быть отрицательными.
Вообщем перелопатил гору информации но толкового ответа так и не нашел..

Есть возможность обработки данных прямо в игре, там они приходят в переменных, например переменная хранящая позицию противника " frag_pos" ее значение = (100, 0, -310)
то есть вправо от центра карты x =100
вверх от центра карты y =0
и z = -310 это ближе к экрану (к нам) от центра карты
Если я все правильно понял нужно работать с отдельными скалярами , а не с самой переменной?
разложить переменную на скаляры в клиенте проще простого.. пример: x, y, z = frag_pos.
Дальше уже можно работать с каждым значением по отдельности.
Можно прямо в самой игре делать вычисления перед получением результата... скажем от вектора нашей позиции отнять позицию противника: vector = tank_pos - frag_pos...
С векторами ранее не сталкивался...
Подскажите кто знает какие данные нужны AutoIt'у для того чтобы определить какие клавиши нужно жать
if условие (Send("{a}"))
if условие (Send("{d}"))
if условие (Send("{w}"))
if условие (Send("{s}"))
Если у кого то есть идеи буду рад их выслушать.
 
Автор
S

_serfer_78_

Новичок
Сообщения
16
Репутация
0
И так... пока суть да дело решил вопрос сам.
Возможно кому то понадобится, как говорится дорогу осилит идущий))) ;D
Ответ по ссылке - https://www.desmos.com/calculator/qtkghqtrb7
Просто добавьте вместо y - z потом добавляем y... и готово :IL_AutoIt_1:
грубо
if x<0 (Send("{a}"))
if x>0 (Send("{d}"))
if z<0 (Send("{s}"))
if z>0 (Send("{w}"))
с Y по аналогии...
 
Верх