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

[Box2D, SFML, C++] Kilka pytań

Ostatnio zmodyfikowano 2014-02-03 16:36
Autor Wiadomość
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?
C/C++
// tak jak jest w przykładzie
while( /*...*/ )
{
    int velocityIterations = 3, positionIterations = 6;
    float timeStep = 1.0f / 60.0f;
    world.Step( timeStep, velocityIterations, positionIterations );
    //...
}

// więc czy można tak:
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ć?
C/C++
if( event.type == Event::KeyPressed && event.key.code == Keyboard::Space )
     obiekt->ApplyForce( b2Vec2( 0.0f, - 20.0f ), obiekt->GetWorldCenter(), true ); // dlaczego on nie podskakuje?


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.
P-102170
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ć. 
P-102172
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)
P-102182
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 ).
P-102183
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...
P-102185
OSA_PL
» 2014-01-14 19:53:28
1.0 w Box2D odpowiada 1 metrowi.
P-102188
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).
P-102197
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.
P-103708
« 1 » 2
  Strona 1 z 2 Następna strona