2010-07-30 3 views

ответ

6

На вашем посту есть 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

1

я нашел свое окончательное решение быть:

Vector2 direction = targetPosition - currentPosition; 
direction.Normalize(); 
float rotationInRadians = (float)Math.Atan2((double)direction.Y, 
          (double)direction.X) + MathHelper.PiOver2; 

rotationInRadians не является исходным значением, которое может быть передано в спрайтов партии для правильного количества оборотов - не далее код необходим. Кроме того, вы можете заметить неправильные результаты, если вы поворачиваете спрайт на углу, а не в середине.