Вопрос

У меня есть проблема с столкновением между 2 телами (одна динамика и одна статическая). Допустим, у меня есть стена и мяч, я установил фильтр, который позволяет мячу проходить через стену. Он работает хорошо, пока я создаю спрайт с телом вне тела стены. Проблема появляется, когда я создаю мяч в том же положении, что и стена, затем мяч застрял, отскочил или делает странные вещи. Я считаю, что у него не должно быть материи, где я создаю тело, если есть фильтр столкновений. Была ли кто -нибудь подобная проблема?

Это было полезно?

Решение 2

Я до сих пор не знаю, почему возникает проблема, но я знаю, что это произойдет, если я создаю Boxbody и Circlebody. Я решил эту проблему, используя многоугольный тел вместо коробки. Вот мой код, который создает коробку из тела многоугольника.

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);

Другие советы

Это довольно поздно, но у меня была такая же проблема, используя маскировку

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

ваше здоровье.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top