2011-03-21 11 views
9

Estoy experimentando con box2d. me parece que tienen un problema de la gente describe como paredes pegajosas¿Cómo puedo evitar que una bola se pegue a las paredes en Box2D?

tengo una bola y una paleta

estoy usando todas las escalas básicas recomendadas que pude encontrar, 10m mundo, bola 1m

El bola tiene las siguientes propiedades:

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

la paleta utilizada para mover el balón es de 1,5 m, que tiene las siguientes propiedades: forma:

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

Como ve, la fricción es 0 para todos los objetos.

La bola se atasca constantemente rodando a lo largo de una pared o completamente atascado en las esquinas de grado 90

que pensaba que podía detectar una colisión con una pared y desencadenar una applyLinearImpulse para mover la pelota de la pared.

+11

Tengo que decir, el título de su pregunta de inmediato me hizo pensar si fueras un nudista de Alaska. – Groovetrain

Respuesta

12

Debe reducir el umbral de velocidad mínima para las colisiones elásticas.

hacer esto mediante la reducción de b2Settings::b2_velocityThreshold más cerca de 0.

+0

parece lo que necesito. ¿Cuál es un valor razonable para esto? Inicialmente asumiría que establecerlo en 0.f garantizará que nunca se atasque, pero ¿puede esto tener efectos adversos? – Rob

+0

Comience en cero y vaya hacia arriba - 0.1 debería estar bien. 0 solo tendría efectos negativos si estuvieras buscando que los objetos se apoyen contra una superficie: se sacudirían constantemente. – Martin

+0

suena genial. Muchas gracias por su ayuda. – Rob

Cuestiones relacionadas