KRYPTOPUNK Опубликовано 11 августа, 2020 Поделиться Опубликовано 11 августа, 2020 (изменено) Здравствуйте, дорогие друзья, пользователи сего замечательного форума. Возникла такая нестандартная проблема, к решению которой я был не готов. Суть вот в чем: мы имеем стандартные для всех игр значения поворота камеры по X и Y, как и всегда. Я делаю аимбот для простенькой игры на Unity под названием BlockPost. С поворотом по Y проблем никаких нет, все работает хорошо, значения для поворота находятся в диапазоне [-90:90] Самое интересное начинается с поворотом по X Дело в том, что данная игра для поворота использует два диапазона -> [-360:0] и [0:360]. То есть, если мы ведем мышку влево, то заполняется диапазон от 0 до - 360, если же мы поведем мышку вправо, то значение будет возрастать от того, где мы остановились, допустим, от -150 до 0 и продолжит возрастать до 360, а если же зайти за нижнюю планку (за -360), то значение будет равно -1. Проблема такова, что для вычисления угла я использовал функцию c++ atan2() дает угол в радианах [-Pi:Pi] -- что в данном случае не подходит. Так же я знаю, что для игры значения поворота по X -[число] и [число] идентичны ( то есть, отрицательное число или положительное не важно, камера при обоих значениях будет смотреть в одном направлении) Прошу вас помочь в столь нелегкой ситуации, заранее благодарен. Код функции прилагаю: Спойлер void AimAt(float& rx,float&ry,Vector3* mypos,Vector3* targetpos) { Vector3 deltaVec = { mypos->x - targetpos->x,mypos->y - targetpos->y,mypos->z - targetpos->z }; float deltaVecLenght = sqrt(deltaVec.x * deltaVec.x + deltaVec.y * deltaVec.y + deltaVec.z * deltaVec.z); float pitch = -asin(deltaVec.z / deltaVecLenght) * (180 / PI); float yaw = atan2(deltaVec.y,deltaVec.x) * (180 / PI); ry = pitch; rx = yaw; } Изменено 11 августа, 2020 пользователем KRYPTOPUNK Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 12 августа, 2020 Поделиться Опубликовано 12 августа, 2020 Я не понял, в чем проблема, собственно? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения