Pregunta

Tengo un problema con la colisión entre 2 cuerpos (uno dinámico y otro estático). Digamos que tengo pared y bola, configuré un filtro que permite que la pelota pase a través de la pared. Funciona bien siempre que cree Sprite con cuerpo fuera del cuerpo de la pared. El problema aparece cuando creo la pelota en la misma posición que la pared, luego la pelota se atasca o rebota o hace cosas extrañas. Creo que no debería importar dónde creo el cuerpo si hay filtro de colisión. ¿Tenía alguien un problema similar?

¿Fue útil?

Solución 2

Todavía no sé por qué aparece el problema, pero sé que sucede si creo BoxBody y CircleBody. Resolví este problema usando PolygonBody en lugar de BoxBody. Aquí está mi código que crea un cuadro desde el cuerpo Polygon.

float a = this.getWidthScaled()*0.5f/32.0f;
float b = this.getHeightScaled()*0.5f/32.0f;
Vector2[] v = {new Vector2(-a,-b), 
               new Vector2(a,-b),
               new Vector2(a,b),
               new Vector2(-a,b)};
body = PhysicsFactory.createPolygonBody(pWorld, this, v, BodyType.DynamicBody, mFixtureDef);

Otros consejos

Es bastante tarde, pero me solucioné un problema similar usando enmascarar

http://www.aurelienribon.com/blog/2011/07/box2d-tutorial-collision-filtering/

salud.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top