Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML]złe położenie Sprite

Ostatnio zmodyfikowano 2013-05-24 14:15
Autor Wiadomość
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:
C/C++
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 );
}
P-83729
pekfos
» 2013-05-23 20:38:59
Tangens to nie kąt w radianach.
P-83733
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 )
P-83742
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.
P-83744
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:
P-83770
« 1 »
  Strona 1 z 1