[box2d] Rotacja postaci.
Ostatnio zmodyfikowano 2013-01-16 18:19
polkom21 Temat założony przez niniejszego użytkownika |
[box2d] Rotacja postaci. » 2013-01-16 14:08:47 Witajcie. Napisałem skrypt liczący kąt obrotu i jest on w skali od -180 do 180 i jest generowany przez taki skrypt: float playerRotatnion( sf::Vector2i mousePosition, b2Vec2 playerPos ) { const float PI = 3.14159265; float dx = mousePosition.x + playerPos.x - 415 - playerPos.x; float dy = mousePosition.y + playerPos.y - 315 - playerPos.y; float radian = atan2f( dy, dx ); float radius =( radian * 180 / PI ); return radius; } I teraz mam problem z zastosowaniem rotacji w box2d. Nie mam pojęcia jak to zrobić. Szukałem w internecie w manualu i nie mogę nic wykombinować. Zrobiłem coś takiego: body->SetTransform( body->GetPosition(), rotation ); player.setRotation( body->GetAngle() );
i postać skacze dziwnie ale nie działa. Jak trzeba to wrzucę skompilowany program. |
|
DejaVu |
» 2013-01-16 14:23:07 Przelicz kąt obrotu na radiany, bowiem Box2D używa radianów, a SFML stopni. |
|
polkom21 Temat założony przez niniejszego użytkownika |
» 2013-01-16 14:35:32 No radian to jest kąt razy pi przez 180 i jak robię tak: (stopien * PI) / 180; to i tak nie działa. Dzieje się to samo. |
|
DejaVu |
» 2013-01-16 15:02:16 |
|
polkom21 Temat założony przez niniejszego użytkownika |
» 2013-01-16 15:35:53 No nie ogarniam tego. Radian zawsze mi wychodzi z przedziału od -3 do 3 tak w przybliżeniu czyli za mały zakres żeby kąt obrotu działał tak jak powinien.
EDIT Tak pomyślałem trochę i tak myślę czy na pewno dobrze, że szukam błędu. body->getAngle() przecież zwraca radian a wykorzystuje to przecież w sfml, który korzysta ze stopni więc to chyba dobrze mi pokazuje wszystko tylko teraz pytanie jak zrobić, żeby obrót liczył od środka sprita a nie od lewej górnej krawędzi. |
|
ridic14 |
» 2013-01-16 16:42:16 setOrgin()? dla ścisłości spr.setOrgin( spr.getGlobalBounds().width / 2, spr.getGlobalBounds().height / 2 ); Dla SFML 2.0 |
|
polkom21 Temat założony przez niniejszego użytkownika |
» 2013-01-16 18:19:14 No efekt końcowy mnie nie satysfakcjonuje ale może uda mi się coś jeszcze dopieścić do końca. Dzięki za pomoc. |
|
« 1 » |