Java 没有冲突的libgdx ContactListener

Java 没有冲突的libgdx ContactListener,java,opengl,libgdx,Java,Opengl,Libgdx,我有ContactListener连接到我的世界。我得到了一个扩展了精灵的敌人类和一个扩展了精灵的玩家类。当它们发生碰撞时,我确实会被发送到beginContact,但随后发生的情况是,敌人开始将我的播放器向后拖,我不希望这样。当它们发生碰撞时,我希望被发送到beginContact,但它们不会影响彼此的路径。如果我理解正确,您希望检测碰撞,并抑制碰撞产生的脉冲。至少有两种选择: 选择1 使其中一个夹具成为传感器。这样,仍然会发生碰撞,但不会使实体相互排斥 FixtureDef def = ne

我有
ContactListener
连接到我的世界。我得到了一个扩展了<代码>精灵的敌人类和一个扩展了<代码>精灵的玩家类。当它们发生碰撞时,我确实会被发送到
beginContact
,但随后发生的情况是,敌人开始将我的播放器向后拖,我不希望这样。当它们发生碰撞时,我希望被发送到
beginContact
,但它们不会影响彼此的路径。

如果我理解正确,您希望检测碰撞,并抑制碰撞产生的脉冲。至少有两种选择:

选择1

使其中一个夹具成为传感器。这样,仍然会发生碰撞,但不会使实体相互排斥

FixtureDef def = new FixtureDef();
def.isSensor = true;
选择2

这可能更符合你的想法。为了避免碰撞物理效应,您可以放弃如下接触:

@Override
public void preSolve(Contact contact, Manifold oldManifold)
{
    contact.setEnabled(false);
}
请注意,只要两个实体发生冲突,就必须在每个box2d世界步骤中不断调用
setEnabled(false)

莫隆


您可以在此处阅读有关冲突如何工作的详细信息:。对于传感器,信息可以在互联网上广泛获得。

box2d的ContactListener与您的敌人和Sprite的子级玩家之间是否存在任何关系?