Je suis en train de faire un jeu XNA et j'ai rencontré un petit problème en calculant un peu de maths vectorielles.Comment trouver des coordonnées 2D transformées en rotation dans XNA?
J'ai une classe représentant un objet 2D avec des coordonnées entières X et Y et un flottant de rotation. Ce dont j'ai besoin, c'est d'avoir une propriété Vector2 pour la position qui obtient et définit X et Y comme un vecteur2 qui a été transformé en utilisant le flotteur de rotation. De cette façon, je peux juste faire quelque chose comme;
Position += new Vector2((thumbstick.X * scrollSpeed), -(thumbstick.Y * scrollSpeed));
et l'objet se déplace dans sa propre direction ascendante plutôt que vers le haut de la vue.
Jusqu'à présent, c'est ce que j'ai ... Je pense que l'ensemble est bon, mais pour + = changements, il faut un get et la réponse ne vient tout simplement pas à moi maintenant ...>.>
public Vector2 Position
{
get
{
// What goes here? :S
}
set
{
X = value.X * (int)Math.Cos(this.Rotation);
Y = value.Y * (int)Math.Cos(this.Rotation);
}
}
Peu importe dans quel angle des unités est mesurée en temps il est la même unité dans les deux équations :-) – greenoldman
Chaque mise en œuvre des fonctions trigonométriques que je connais des usages radians, donc dans ce sens cela a certainement de l'importance. Pensez radians si vous utilisez un ordinateur pour résoudre ce problème. – duffymo