Повернуть спрайт в положение мыши - PullRequest
3 голосов
/ 01 февраля 2011

Я использую библиотеку SFML 1.6, и мне хотелось бы знать.

Как вращать спрайт, чтобы он всегда поворачивался в направлении расположения мыши на экране?

Спасибо.

(предпочтителен специальный код SFML)

Ответы [ 2 ]

8 голосов
/ 01 февраля 2011

Если у вас есть позиция спрайта: S = (Sx, Sy) и позиция курсора C = (Cx, Cy)

Вы можете вычислить угол между вектором enter image description here =(Cx - Sx, Cy - Sy) и единичный вектор, например enter image description here = (1, 0, 0).

Для вычисления угла вы можете использовать кросс-произведение :

enter image description here

А затем:

enter image description here

затем вычисляем угол:

enter image description here

Наконец вы вращаете свой спрайт:

Sprite.SetRotation(alpha); //alpha in degree
2 голосов
/ 01 февраля 2011

Это обсуждение обсуждается на форуме SFML на этой ссылке .

...