AndEngine和box2d碰撞过滤

问题描述:

我有两个物体(一个动态和一个静态)之间的碰撞问题。假设我有墙和球,我设置了允许球穿过墙的过滤器。只要我在墙体外创建精灵,它就可以很好地工作。当我在与墙壁相同的位置创建球时,问题就出现了,那么球就会卡住或反弹或出现奇怪的事情。如果有碰撞过滤器,我相信它不应该在我创造身体的地方。有没有类似的问题?AndEngine和box2d碰撞过滤

我仍然不知道问题出现的原因,但我知道如果我创建boxBody和circleBody,会发生这种情况。我使用polygonBody而不是boxBody解决了这个问题。这是我的代码,它从多边形主体创建框。

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/

欢呼声传开了类似的问题。

+0

虽然这在理论上可以回答的问题,[这将是优选的](http://meta.stackexchange.com/q/8259),包括在这里的答案的主要部分,并且提供的链接参考。 – BoltClock 2012-04-29 12:36:42