Если вы посмотрите на эту диаграмму link text, мне нужно найти угол A, зная длину всех сторон правого треугольника.Как сделать точку спрайта мыши. XNA C#
Я не знаю триггера и нуждаюсь в некоторой помощи.
Если вы посмотрите на эту диаграмму link text, мне нужно найти угол A, зная длину всех сторон правого треугольника.Как сделать точку спрайта мыши. XNA C#
Я не знаю триггера и нуждаюсь в некоторой помощи.
На вашем посту есть 2 вопроса.
Как сделать спрайт точку мыши. XNA C#:
Вам нужно будет рассчитать направление между положением спрайта и положением мыши. Это можно сделать с помощью функций тригонометрии. В этом случае: Arctangens2
Итак, давайте использовать математическую библиотеку:
MouseState mouseState = Mouse.GetState();
Math.Atan2((double)mouseState.Y - sprite.Y, (double)mouseState.X - sprite.X); //this will return the angle(in radians) from sprite to mouse.
В вашем примере тригонометрии вы увидите, что эти ценности на самом деле:
Math.Atan2(BC, AC);
или
Math.Atan2(Ydiff, Xdiff);
Надеюсь, это поможет = D
Приветствия,
TomHashNL
я нашел свое окончательное решение быть:
Vector2 direction = targetPosition - currentPosition;
direction.Normalize();
float rotationInRadians = (float)Math.Atan2((double)direction.Y,
(double)direction.X) + MathHelper.PiOver2;
rotationInRadians не является исходным значением, которое может быть передано в спрайтов партии для правильного количества оборотов - не далее код необходим. Кроме того, вы можете заметить неправильные результаты, если вы поворачиваете спрайт на углу, а не в середине.