cocos2d box2d:不同的质量,但身体同时下降

时间:2011-05-12 06:36:05

标签: cocos2d-iphone box2d

我用cocos2d精灵创造了2个box2d的身体....他们有不同的质量,他们从世界上的同一个地方坠落。但他们同时倒下了。我的想法是较轻的身体应该落后于较重的身体.....但他们没有。

for (int k=1;k<=2; k++) {
    int idx = (CCRANDOM_0_1() > .5 ? 0:1);
    int idy = (CCRANDOM_0_1() > .5 ? 0:1);
    CCSprite *sprite = [CCSprite spriteWithBatchNode:batch rect:CGRectMake(32 * idx,32 * idy,32,32)];
    [batch addChild:sprite];

    sprite.position = ccp( p.x+(32*k), p.y);


    b2BodyDef bodyDef;
    bodyDef.type = b2_dynamicBody;

    bodyDef.position.Set(( p.x+(32*k))/PTM_RATIO, p.y/PTM_RATIO);
    bodyDef.userData = sprite;

    b2Body *body = world->CreateBody(&bodyDef);


    b2PolygonShape dynamicBox;
    dynamicBox.SetAsBox(.5f, .5f);//These are mid points for our 1m box


    b2FixtureDef fixtureDef;
    fixtureDef.shape = &dynamicBox; 
    fixtureDef.density = 1.0f/k;
    fixtureDef.friction = 0.3f;
    body->CreateFixture(&fixtureDef);
    NSLog(@"%f",body->GetMass());
}

2 个答案:

答案 0 :(得分:18)

答案 1 :(得分:0)

您可以在这些物体上设置不同的阻尼。

尝试不同的值。 0表示没有阻尼,但最大值不受限制,所以要小心。