【发布时间】:2012-02-16 18:28:56
【问题描述】:
我遇到了 2 个物体(一个是动态的,一个是静态的)之间的碰撞问题。假设我有墙和球,我设置了允许球穿过墙的过滤器。只要我在墙体之外创建身体的精灵,它就可以很好地工作。当我在与墙壁相同的位置创建球时出现问题,然后球被卡住或弹跳或做奇怪的事情。我相信如果有碰撞过滤器,我在哪里创建身体应该没有关系。有没有人遇到类似的问题?
【问题讨论】:
我遇到了 2 个物体(一个是动态的,一个是静态的)之间的碰撞问题。假设我有墙和球,我设置了允许球穿过墙的过滤器。只要我在墙体之外创建身体的精灵,它就可以很好地工作。当我在与墙壁相同的位置创建球时出现问题,然后球被卡住或弹跳或做奇怪的事情。我相信如果有碰撞过滤器,我在哪里创建身体应该没有关系。有没有人遇到类似的问题?
【问题讨论】:
已经很晚了,但我使用遮罩解决了类似的问题
http://www.aurelienribon.com/blog/2011/07/box2d-tutorial-collision-filtering/
干杯。
【讨论】:
我仍然不知道为什么会出现问题,但我知道如果我创建 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);
【讨论】: