1

私はcocos2d 0.99.4でbox2d 2.1.2を使用しています

私の世界では、すべてが軽く、石や箱を落とす感覚はありません!! すべてが同じ速度でゆっくりと落ちる

b2Vec2 gravity; 
gravity.Set(0.0f, -10.0f);
bool doSleep = true;
world = new b2World(gravity, doSleep);

と私のオブジェクト:

b2BodyDef *TBodyDef = new b2BodyDef;
    TBodyDef->position.Set(100, 200);
    b2Body *TBody = world->CreateBody(TBodyDef);
    TBody->SetType(b2_dynamicBody);
    TBody->SetAwake(true);
    b2CircleShape TCircleShape;
    TCircleShape.m_radius = 20;
    b2FixtureDef TFixtureDef;
    TFixtureDef.shape = &TCircleShape;
    TFixtureDef.friction = 0.1;
    TFixtureDef.density = 0.1;
    TFixtureDef.restitution = 1;
    TFixtureDef.filter.categoryBits = COLLISION_BIT_GP;
    TFixtureDef.filter.maskBits = COLLISION_BIT_TERRAIN;
    TBody->CreateFixture(&TFixtureDef);

    b2BodyDef *TBodyDef1 = new b2BodyDef;
    TBodyDef1->position.Set(200, 200);
    b2Body *TBody1 = world->CreateBody(TBodyDef1);
    TBody1->SetType(b2_dynamicBody);
    TBody1->SetAwake(true);
    b2CircleShape TCircleShape1;
    TCircleShape1.m_radius = 20;
    b2FixtureDef TFixtureDef1;
    TFixtureDef1.shape = &TCircleShape;
    TFixtureDef1.friction = 0.1;
    TFixtureDef1.density = 0.5;
    TFixtureDef1.restitution = 1;
    TFixtureDef1.filter.categoryBits = COLLISION_BIT_GP;
    TFixtureDef1.filter.maskBits = COLLISION_BIT_TERRAIN;
    TBody1->CreateFixture(&TFixtureDef1);

と私のステップ:

int32 velocityIterations = 8;
int32 positionIterations = 3;

world->Step(dt, velocityIterations, positionIterations);

密度は、落下速度については何も変わりません。このように流動的にするために欠けているもの: リンクテキスト

ご協力ありがとうございました

4

1 に答える 1

4

オブジェクトの密度は、落下する速度には影響しません。

空気抵抗やその他の一般的に無視できる影響を否定すると、すべてのオブジェクトが同じ速度で落下します。

これをテストする方法:軽いもの(たとえば、友達のiPhone 4)と重いもの(古いCRT)を手に取り、それらをまったく同時に窓から落とします。

于 2010-10-11T10:38:07.873 に答える