How can I prevent a ball from sticking to walls in Box2D?

二次信任 提交于 2019-12-04 02:58:51

问题


I'm experimenting with box2d. I seem to have a problem people describe as sticky walls

I have a ball and a paddle

I'm using all the basic recommended scales I could find, 10m world, 1m ball

The ball has the following properties:

shape: circle (.5f radius)
size: 1.0f
density: 1.0f
restitution: 1.0f
friction: 0.0f

The paddle used to move the ball is 1.5m, it has the following properties: shape:

circle (.75f radius)
size: 1.5f
density: 10.0f
restitution: 0.1f
friction: 0.0f

As you see the friction is 0 for all objects.

The ball constantly gets stuck rolling along a wall or completely jammed in the 90 degree corners

I was thinking I could detect a collision with a wall and trigger an applyLinearImpulse to move the ball off the wall.


回答1:


You need to reduce the minimum velocity threshold for elastic collisions.

Do this by reducing b2Settings::b2_velocityThreshold closer to 0.



来源:https://stackoverflow.com/questions/5381399/how-can-i-prevent-a-ball-from-sticking-to-walls-in-box2d

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!