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

SFML Obrót za kursorem || wyznaczanie środka sprite'a?

Ostatnio zmodyfikowano 2012-09-30 21:54
Autor Wiadomość
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 );
?
P-65860
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ół
P-65861
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
P-65865
DejaVu
» 2012-09-30 21:10:35
Frazy, które należy wpisać w wyszukiwarkę google:

PS. SFML przyjmuje kąty bodajże w stopniach, a nie w radianach.
P-65867
ridic14
Temat założony przez niniejszego użytkownika
» 2012-09-30 21:24:19
plik: http://www.sendspace.pl/file/2b3836d2fc322860a8ac5f5

są 2 sposoby i obydwa dają powyższy wynik:
C/C++
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 );
P-65871
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.
P-65872
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:
C/C++
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 ) );
P-65874
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
P-65875
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona