[SFML]złe położenie Sprite
Ostatnio zmodyfikowano 2013-05-24 14:15
DanielSC Temat założony przez niniejszego użytkownika |
[SFML]złe położenie Sprite » 2013-05-23 19:44:59 Otóż mam taki problem zrobiłem funkcje która oblicza kąt między myszką a srodkiem postaci. Następnie napisałem funkcje obliczającą tor lotu Sprita.-i tu jest mój problem sprite nie leci w kierunku myszy ale w innym , nie w tym który założyłem. Funkcje: double kat_lotu( double x, double y, double x1, double y1 ) { double roznicaX =( x ) - x1; double roznicaY =( y ) - y1; double tangens = roznicaY / roznicaX; double katWStopniach =( tangens * 180 ) / M_PI; return( katWStopniach ); }
void strzal( double kat, double & x1, double & y1 ) { x1 += sin( kat ); y1 += cos( kat ); }
|
|
pekfos |
» 2013-05-23 20:38:59 Tangens to nie kąt w radianach. |
|
DanielSC Temat założony przez niniejszego użytkownika |
» 2013-05-23 21:13:21 Kąt raczej dobrze obliczam ,bo identyczną funkcją obliczam kąt o jaki ma sie obrucić Sprite metoda: obruc.SetRotation( kat ) |
|
pekfos |
» 2013-05-23 21:29:07 Kąt raczej dobrze obliczam |
Raczej nie. Prosty przykład: dla tangensa równego 1 (kąt 45 stopni) twoja funkcja zwraca jakieś 57 stopni. Do obliczania kąta z tangensa służy arcus tangens. Realizują go funkcje atan() i atan2(). Potrzebujesz tej drugiej. |
|
DanielSC Temat założony przez niniejszego użytkownika |
» 2013-05-24 14:15:45 Ok uporałem się już z tym problemem dzięki pekfos Rozwiązanie : Wartość zwracana przez funkcje kat_lotu musi być w radianach: |
|
« 1 » |