box2d:为什么球不能在渐变的斜坡上反弹?

时间:2012-02-28 02:50:48

标签: box2d

我创造了一个摩擦力为0.f且恢复原状为1.0的球,如下所示:

// Create shape definition and add to body
    b2FixtureDef ballShapeDef;
    ballShapeDef.shape = &circle;
    ballShapeDef.density = 1.f;
    ballShapeDef.friction = 0.f;
    ballShapeDef.restitution = 1.0f;
    //ballBodyDef.bullet = YES;
    _ballFixture = ballBody->CreateFixture(&ballShapeDef);
    // Give shape initial impulse...
    b2Vec2 force = b2Vec2(0, 1.2f);
    ballBody->ApplyLinearImpulse(force, ballBodyDef.position);

碰撞发生时,球从墙壁上弹得很好。但是当它与一个渐变的斜坡相撞时,它会像冰一样滑动,如下:

Image of Demo

倾斜的物理属性是: 密度:1 摩擦:0 归还:1

如何让球从斜坡上弹开?

2 个答案:

答案 0 :(得分:1)

如果两个表面的摩擦力都为零,那么当球以一定角度撞击时,球没有理由“反弹”。尝试给两个表面稍微摩擦。

答案 1 :(得分:0)

尝试恢复球或斜坡