2010-07-30 11 views

Répondre

6

Il y a actuellement 2 questions dans votre message.

Comment faire un point de sprite à la souris. XNA C#:

Vous devrez calculer la direction entre la position de l'image-objet et la position de la souris. Cela peut être fait en utilisant des fonctions de trigonométrie. Dans ce cas: Arctangens2

Donc, nous allons utiliser la bibliothèque mathématique:

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. 

Dans votre exemple de la trigonométrie, vous verrez que ces valeurs sont en réalité:

Math.Atan2(BC, AC); 

ou

Math.Atan2(Ydiff, Xdiff); 

J'espère que cela aide = D

Cheers,

TomHashNL

1

je trouve ma solution finale d'être:

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

rotationInRadians est une valeur brute qui peut être transmis au lot de sprite pour le montant de rotation correct - pas plus le code est nécessaire. En outre, vous pouvez remarquer des résultats incorrects si vous faites pivoter l'image-objet sur un coin plutôt que sur le milieu.