cocos2d box2d: разная масса, но тело падает одновременно - PullRequest
4 голосов
/ 12 мая 2011

Я создал 2 тела box2d со спрайтом cocos2d .... они имеют разную массу и падают из одного места в мире.но они падают на землю одновременно.моя идея состоит в том, что более легкое тело должно упасть позже, чем более тяжелое ..... но они этого не сделали.

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 ]

18 голосов
/ 12 мая 2011

Ну, Галилео Галилей обнаружил, что все объекты падают с одинаковой скоростью ...

https://web.archive.org/web/20100728100438/http://galitzin.mines.edu/INTROGP/notes_template.jsp?url=GRAV%2FNOTES%2Ffallb.html&page=Gravity%3A%20Notes%3A%20Falling%20Bodies

0 голосов
/ 04 июля 2012

Вы можете установить другое демпфирование для этих тел.

Поэкспериментируйте с разными значениями.0 означает отсутствие демпфирования, но максимальное значение не ограничено, поэтому будьте осторожны.

...