4
我正在使用Box2D和SFML创建一个简单的游戏。但是,我的物体(球)在撞击地面后并未完全着陆。似乎有50%的球穿过了我的边界,看起来非常尴尬。下面是一些图片的插图。带有SFML对象的Box2D在碰撞后发生椭圆和相互碰撞
之前将球:
球击中边在地上后:
正如你可以看到,球的50%已经dissapeared(最可能是由于抵消或什么)。谁知道怎么修它?
下面是我为创建对象代码:
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 任何人都可以帮助我和这个?谢谢。
也许你实际上是更新的位置,并已检测到碰撞后,你应该简单地回滚最后一次更新。无论如何,很难说,你没有显示足够的代码... – skypjack