【发布时间】:2015-06-07 18:45:28
【问题描述】:
我有两个身体。一个圆圈里面有一个球,一只鸟有一个多边形。我正在尝试检测身体内的精灵之间的碰撞,而不是身体本身,如下面的代码 sn-p 所示。
@Override
public void beginContact(Contact contact) {
Body a = contact.getFixtureA().getBody();
Body b = contact.getFixtureB().getBody();
if(contact.isTouching()){
System.out.println(contact.isTouching());
if (a.getUserData() == Constants.Enemy || b.getUserData() == Constants.Enemy) {
System.out.println("yes");
}
}
}
当身体处于下图所示的舞台时,上面的方法打印出“是”,这是不正确的,因为精灵没有相互接触。有什么想法吗?
【问题讨论】:
-
如果鸟的形状是绘制的矩形,那么身体确实接触到了。你必须为鸟选择一个更合适的身体,而不是不必要的大矩形,也许是多边形。
-
您正在检查身体碰撞时的碰撞,或者您是否必须检查精灵碰撞。如果身体发生碰撞,则检查精灵是否也发生碰撞