Jump to content
Korean Random
Valberton

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

Recommended Posts

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

Share this post


Link to post

Short link
Share on other sites

https://github.com/spoter/spoter-mods/blob/master/.deprecated/mod_autoAimOptimize/source/mod_autoAimOptimize.py

115 строка

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

а радианы в градусы и обратно я думаю не сложно будет конвертировать :)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
17.11.2023 в 05:13, spoter сказал:

...но думаю поможет разобраться, если не лень.

 

Не лень, но уже расшиб голову об стену. Никак не могу поймать направление корпуса.

18.11.2023 в 14:04, StranikS_Scan сказал:

PlayerVehicle.matrix.yaw - EnemyVehicle.matrix.yaw

 

PlayerAvatar.matrix передает BigWorld.EntityMPov, у которого нет никаких методов/атрибутов.

Share this post


Link to post

Short link
Share on other sites
20 минут назад, Valberton сказал:

 

Не лень, но уже расшиб голову об стену. Никак не могу поймать направление корпуса.

 

PlayerAvatar.matrix передает BigWorld.EntityMPov, у которого нет никаких методов/атрибутов.

 

Ну логично, поэтому я ничего не писал про PlayerAvatar :Default: Давай учи матчасть, декомпилы игры тебе в помощь.

Share this post


Link to post

Short link
Share on other sites
36 минут назад, StranikS_Scan сказал:

 

Ну логично, поэтому я ничего не писал про PlayerAvatar :Default: Давай учи матчасть, декомпилы игры тебе в помощь.

 

Так и PlayerVehicle тоже ничего не выдает. Через Орион уже проверил.

 

Edited by Valberton

Share this post


Link to post

Short link
Share on other sites
Только что, Valberton сказал:

 

Так и PlayerVehicle тоже ничего не выдает. Через Орион уже проверил.

 

 

Это вряд ли тыц.

Share this post


Link to post

Short link
Share on other sites
19 минут назад, StranikS_Scan сказал:

 

тыц.

 

Странно, во время тестов оно просто вставало в позу и ничего не давало. Попробую разобраться.

 

Share this post


Link to post

Short link
Share on other sites
Только что, Valberton сказал:

 

Странно, во время тестов оно просто вставало в позу и ничего не давало. Попробую разобраться.

 

 

Покажи код мода чтобы увидеть как и где хочешь угол посчитать.

Share this post


Link to post

Short link
Share on other sites
# PLACEHOLDER: Получаем дистанции и угол до захваченной цели и переводим в смену свитчей в Wwise
def wtGetDistanceAndAngle(target):
    if target is not None:
        dist = avatar_getter.getDistanceToTarget(target)
        if dist < WTSM_CONSTS.DIST_VALUES[0]:
            corr_dist = 'near'
        else:
            corr_dist = min(WTSM_CONSTS.DIST_VALUES, key=lambda x: abs(x-dist))
		
        angle = None
        corr_angle = min(WTSM_CONSTS.A2H, key=lambda x: abs(x-angle))
        
        WWISE.WW_setSwitch(WTSM_CONSTS.SWITCHES['target_distance'], corr_dist)
        WWISE.WW_setSwitch(WTSM_CONSTS.SWITCHES['target_hours'], corr_angle)

Для angle хотел взять код от spoter, который он скинул сюда, но все никак не могу выловить направление корпуса.

    @staticmethod
    def calc_radian(target_position, angle):
        cameraDir, cameraPos = cameras.getWorldRayAndPoint(0, 0)
        cameraDir.normalise()
        cameraToTarget = target_position - cameraPos
        dot = cameraToTarget.dot(cameraDir)
        if dot < 0: return
        targetRadian = cameraToTarget.lengthSquared
        radian = 1.0 - dot * dot / targetRadian
        if radian > angle: return
        return radian

Чувствую себя лютой чукчей...

Share this post


Link to post

Short link
Share on other sites

Решение проблемы углов найдено.

 

Радианы перевел в градусы, но есть прикол:
Когда значение переваливает за 322 градуса, значение уходит в -38 и уменьшается до 0.
Это просто законтрить, отняв из 360 модуль полученного значения угла.

Тему закрываю, всем спасибо за помощь.

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...