kubawal Temat założony przez niniejszego użytkownika |
[Box2D, SFML, C++] Kilka pytań » 2014-01-14 17:12:34 Witam! Ostatnio bawię się trochę biblioteką Box2d i mam parę pytań dotyczących niej i łączenia jej ze SFML. 1. Czy do b2World::Step() jako timeStep można przekazywać wartość pobraną z timera gry? while( ) { int velocityIterations = 3, positionIterations = 6; float timeStep = 1.0f / 60.0f; world.Step( timeStep, velocityIterations, positionIterations ); }
sf::Clock timer;
while( ) { int velocityIterations = 3, positionIterations = 6; float timeStep = timer.restart().asSeconds(); world.Step( timeStep, velocityIterations, positionIterations ); }
2. Czym się różni b2Body::ApplyForce() od b2Body::ApplyImpulse()3. Dlaczego jeśli ApplyForce() wywołam z wektorem prosto w górę, to obiekt nie chce podskoczyć? if( event.type == Event::KeyPressed && event.key.code == Keyboard::Space ) obiekt->ApplyForce( b2Vec2( 0.0f, - 20.0f ), obiekt->GetWorldCenter(), true );
Gdybym jeszcze sobie coś przypomniał, to napiszę. I nie narzekajcie, że nie patrzyłem do tutoriali, bo patrzyłem do oficjalnego, jak i do tego na iforce2d.net. |
|
OSA_PL |
» 2014-01-14 17:36:13 1.) tak
2.) b2Body::ApplyImpulse() nadaje obiektowi prędkość, a b2Body::ApplyForce() przykłada siłę do obiektu, więc żeby podskoczył musiał byś użyć siły większej niż ciężar tego obiektu i przez odpowiedni okres czasu, by obiekt zdążył się rozpędzić. |
|
kubawal Temat założony przez niniejszego użytkownika |
» 2014-01-14 18:21:28 1. Przy próbie takiego czegoś gra działa z prędkością ok. 2 razy mniejszej od normalnej (przy grawitacji 9.8f) |
|
OSA_PL |
» 2014-01-14 18:47:43 Spróbuj umieścić obiekt "w powietrzu" i jak przy grawitacji 9.8f po 1s ciało będzie miało prędkość ~9.8f to znaczy, że jest dobrze( wcześniej fizyka działała za szybko ). |
|
kubawal Temat założony przez niniejszego użytkownika |
» 2014-01-14 19:26:20 No niby jest to 9.8... Ale mi się wydaje, że ten mój obiekt (o masie ok. 30kg) jakoś tak nierealistycznie spada... |
|
OSA_PL |
» 2014-01-14 19:53:28 1.0 w Box2D odpowiada 1 metrowi. |
|
DejaVu |
» 2014-01-14 20:52:16 Czytaj: musisz sobie dobrze scenę przeskalować, a to już jest trochę zabawy. Rok temu (może trochę dalej) walczyłem z biblioteką Box2D i jej integracją z SFML-em - spacerek to nie był, bo API SFML-a uniemożliwiało dostęp np. do wierzchołków sprajta (czy tam czegoś innego - już nie pamiętam co to było). |
|
kubawal Temat założony przez niniejszego użytkownika |
» 2014-01-31 17:16:44 Jeszcze jedno pytanie: Jaka jest pozycja obiektu w Box2d? Czy jest to jego środek, czy top-left? Bo pozycje wierzchołków kształtów podaje się chyba lokalnie, w top-left. |
|
« 1 » 2 |