1

我想理解这个问题,我必须解释一下游戏。球从屏幕上掉下来,当你点击球时,它会根据它的类型变成不同的球。例如,单击一个球会将周围的球冻结一段时间。有些会爆炸并摧毁附近的其他人。

如果我有一个冻结的球body.setType(BodyType.STATIC)

我可以做些什么来检测静态物体的碰撞?我的意思是,是的,它们没有移动,所以它们不应该碰撞,但是你有一个静态物体,然后,下一刻,你有另一个静态物体接触它,所以这不应该算什么吗?

如果您需要更多说明,请告诉我。

更新:我有一个可能可行的想法,但它需要做一些我无法弄清楚的事情。我怎样才能让一个动态的身体表现得像一个静态的身体?我的意思是,让动态物体的位置不受重力或碰撞的影响?

4

3 回答 3

0

所以我认为有两种方法可以做到这一点(虽然没有测试):

首先是传感器。如果将传感器添加到“冻结”静态物体,传感器仍应检测与其他静态物体的碰撞,即使物体本身是静态的。

第二种可能性是让你的“冻结”身体成为运动形状而不是静态形状。它们仍然应该检测到碰撞,并且具有能够具有用户设置的速度而不对其他物理对象做出反应的优势。但是,我不完全确定运动学形状是否会产生与静态物体的接触点。

于 2012-02-20T03:57:17.577 回答
0

在对 API 进行了一些挖掘之后,我终于找到了对我有帮助的方法。下面是解决问题的代码。

//Find the two types of bodies in question
if (AABB.testOverlap(ballA.getBody().m_fixtureList.m_aabb, ballB.getBody().m_fixtureList.m_aabb))
{
    //Add new contact to collisionListener
}
于 2012-04-12T17:57:40.373 回答
-1

IIUC,您可以认为爆炸的球具有更大的半径(相当于受爆炸影响的区域),那么受影响的周围球将是那些与更大的圆形区域相交的球。

于 2012-02-17T02:12:31.993 回答