Witam!
Mam pytanko
public float PobierzKat(Vector2 a, Vector2 b)
{
double dystans = PobierzDystans(a, b);
double kat = Math.Acos((b.Y - a.Y) / dystans * Math.PI);
float katFloat = (float)kat;
if (b.Y < a.Y) katFloat = 360 - katFloat;
return katFloat;
}
public Vector2 PobierzSinusCosinus(Vector2 a, Vector2 b)
{
Vector2 c;
float kat = PobierzKat(a, b);
c.X = (float)Math.Sin(Math.PI * kat / 180.0);
c.Y = (float)Math.Cos(Math.PI * kat / 180.0);
return c;
}
Gdy próbuję skompilować gierkę (nie jakąśtam wielką produkcję, dopiero zaczynam ;) ) postać zachowuje się nienaturalnie, myślę że to ma jakiś związek z tym fragmentem kodu zamieszczonym powyżej. Moim zdaniem to albo źle napisana funkcja pobierania kąta, albo zła konwersja z double na float (która niestety była konieczna bo w XNA Vector2 ma zmienne X i Y typu float :( ). Niestety nie mogłem znaleźć w internecie odpowiedzi na moje pytania, dlatego zapytałem się tutaj :D
PS
Jakby to miało jakieś znaczenie to korzystam z XNA Game Studio i piszę na platformę Windows Phone