我正在使用Box2D和SFML创建一个简单的游戏。然而,我的对象(球)在撞击地面后并没有完全落下。看起来球的50%已经穿过我的边界,这看起来非常尴尬。以下是一些插图。
球之前:
球撞击地面后:
正如您所看到的,球的50%已经消失了(最可能是由于偏移或其他原因)。有没有人知道如何解决?
以下是我创建对象的代码:
circ_ = sf::CircleShape(radius);
circ_.setOrigin(sf::Vector2f(size.x/2,size.y/2));
circ_.setFillColor(sf::Color(255, 255, 255, 255));
circ_.setOutlineThickness(1);
circ_.setOutlineColor(sf::Color::Black);
bodyDef_.position = b2Vec2(position.x/PIXEL_PER_METER, position.y/PIXEL_PER_METER);
bodyDef_.type = b2_staticBody;
bodyFixtureDef_.density = 1.0f;
bodyFixtureDef_.friction = 0.3f;
bodyFixtureDef_.restitution = 0.8f;
在我的SFML代码中,我使用以下代码创建了Box2D对象:
Ball basketBall(world, basketBallSize, basketBallPos, 0.0, basketBallRadius, false);
半径为32。有人可以帮我吗?谢谢。