大家好,
我正在尝试实现一种碰撞行为,即球以角度击中墙壁。我希望球保持完整的速度,但我希望反弹的角度有所减缓,使其从原来的方向反弹的少一些。
我已经尝试过摩擦力、阻尼和恢复等方法,但在我的反弹角度上没有任何不同。
有人知道我如何让box2d做我想要的事情吗?
球的反射角度
http://i.stack.imgur.com/lMwLN.png
感谢帮助! ken
大家好,
我正在尝试实现一种碰撞行为,即球以角度击中墙壁。我希望球保持完整的速度,但我希望反弹的角度有所减缓,使其从原来的方向反弹的少一些。
我已经尝试过摩擦力、阻尼和恢复等方法,但在我的反弹角度上没有任何不同。
有人知道我如何让box2d做我想要的事情吗?
球的反射角度
http://i.stack.imgur.com/lMwLN.png
感谢帮助! ken
首先,在您的世界中设置一个contactListener,然后找出球和墙之间的确切碰撞。 其次,找出碰撞点。 最后,计算碰撞点与身体中心之间的角度。
例如:
void contactListener::BeginContact(b2Contact *contact)
{
//find out the collision between the ball and the wall.
....
//find out the collision point
b2WorldManifold worldManifold;
contact->GetWorldManifold(&worldManifold);
b2Vec2 collisionPoint = worldManifold.points[0];
//calculate the angle between collision point and body center.
b2Vec2 bodyCenter = body->GetWorldCenter;
...
}
我希望你能理解我的意思