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的子级玩家之间是否存在任何关系?