Здравствуйте! У меня появилась одна проблема, которую не могу решить уже второй день. Я пытаюсь осуществить поворот спрайта в сторону курсора. Я пробовал использовать вот такой метод решения, используя Java и LibGDX, а также стандартную библиотеку Math:
/*
Здесь dir_to_pointer - это вектор направления на курсор
*/
Vector2 dir_to_pointer = new Vector2(pointer.x - position.x, position.y - pointer.y);
float angle = (float) Math.toDegrees((Math.atan2(dir_to_pointer.y, dir_to_pointer.x)));
s.setRotation(angle);
Все бы хорошо, но когда персонаж подходит к углам экрана (координата {0,0} и {Ширина_Экрана, Высота_Экрана}), и я перемещаю курсор в другое место, то начинает творится непонятно что. Спрайт не может поворачиваться вокруг своей оси (я также пробовал установить
setOriginCenter()).
Дальше я пробовал использовать acos(A*B), где A*B - это скалярное произведение векторов направления(вектор направления персонажа и вектор направления на курсор). Но это тоже не помогло.
Может кто-то подскажет какой-то другой метод, но пожалуйста, если можно с объяснениями. Буду очень благодарен)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей