Поворот спрайта в сторону курсора мыши

392
09 ноября 2017, 04:02

Здравствуйте! У меня появилась одна проблема, которую не могу решить уже второй день. Я пытаюсь осуществить поворот спрайта в сторону курсора. Я пробовал использовать вот такой метод решения, используя 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 - это скалярное произведение векторов направления(вектор направления персонажа и вектор направления на курсор). Но это тоже не помогло.

Может кто-то подскажет какой-то другой метод, но пожалуйста, если можно с объяснениями. Буду очень благодарен)

READ ALSO
Помогите распарсить профиль в board в VkApi

Помогите распарсить профиль в board в VkApi

Помогите распарсить профиль в board в VkApi

210
Изменение параметров объекта в списке List set JAVA

Изменение параметров объекта в списке List set JAVA

Ребята, я начинающий в программированииВыбрал Java

219
Сортировка листа по значению из Map

Сортировка листа по значению из Map

Есть лист объектов с каким-то количеством полей среди которых есть типЕсть Map<String, String> в первом поле которого тип, а во втором вес

333
Изменение шрифта текста в TabLayout и TabItem

Изменение шрифта текста в TabLayout и TabItem

Всем приветКак можно сменить (а можно ли) шрифт текста в TabLayout и TabItem в Android приложении?

273