SFML Obrót za kursorem || wyznaczanie środka sprite'a?
Ostatnio zmodyfikowano 2012-09-30 21:54
SeaMonster131 |
» 2012-09-30 20:50:24 Zrób odwrotnie, od pozycji sprajta x/y odejmuj pozycje myszki x/y. Czyli: angle = atan2( y - mysz.y, x - mysz.x ); ? |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-09-30 20:52:04 To wogóle całkowicie źle podaje wartości wychodzi od ~~ 250 - 300około przy krążeniu myszką wokół |
|
Admixior |
» 2012-09-30 21:07:43 wrzuć exeka ;] i popraw tak żeby wszystkie liczby miały typ float od (np: 180.f, czy też PI) a także wynik funkcji atan2 |
|
DejaVu |
» 2012-09-30 21:10:35 PS. SFML przyjmuje kąty bodajże w stopniach, a nie w radianach. |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-09-30 21:24:19 plik: http://www.sendspace.pl/file/2b3836d2fc322860a8ac5f5są 2 sposoby i obydwa dają powyższy wynik: result =( atan2( player.x - vector.x, player.y - vector.y ) * 90 ); result =(( - 1 * 360 / 3.14159265 *( atan2( static_cast < double >( player.y - vector.y ), static_cast < double >( player.x - vector.x ) ) ) / 2 ) + 90 ); |
|
Admixior |
» 2012-09-30 21:33:09 i się wyjaśniło po pierwsze musisz pomnożyć to przez -1 po drugie nie pobierasz pozycję myszki (która jest bezwzględnie na ekranie) tylko to co otrzymujesz w komunikacie event (które jest w oknie) po 3 coś (chyba) za dużo mnożysz. |
|
ridic14 Temat założony przez niniejszego użytkownika |
» 2012-09-30 21:37:45 position = sf::Mouse::getPosition(); position jest przekazywane do funkcji jako vector nie działające sposoby: result =( atan2( player.x - vector.x, player.y - vector.y ) * - 1 ); result =( atan2( player.x - vector.x, player.y - vector.y ) * - 180 ); result =( atan2( player.x - vector.x, player.y - vector.y ) * - 360 ); result =( atan2( player.x - vector.x, player.y - vector.y ) ); |
|
Admixior |
» 2012-09-30 21:39:42 Chodzi o to że getPosition pobiera bezwzględną pozycję na ekranie a nie w oknie PS zrób tam gdzie otrzymujesz komunikaty od okna (mousemove) zmiane pozycji wtedy nie bedzie najmniejszego problemu |
|
1 « 2 » 3 |