-1
我有ContactListener
连接到我的世界。我得到了一个敌人类,延伸Sprite
和Player类,延伸Sprite
以及。当它们发生碰撞时,我确实会被发送到beginContact
,但接下来发生的事情是敌人开始向后拖动我的玩家,我不想那样。我想在碰撞时被发送到beginContact
,但他们不会影响其他路径。libgdx ContactListener无碰撞
我有ContactListener
连接到我的世界。我得到了一个敌人类,延伸Sprite
和Player类,延伸Sprite
以及。当它们发生碰撞时,我确实会被发送到beginContact
,但接下来发生的事情是敌人开始向后拖动我的玩家,我不想那样。我想在碰撞时被发送到beginContact
,但他们不会影响其他路径。libgdx ContactListener无碰撞
如果我理解正确,您希望检测到碰撞,并抑制该碰撞产生的冲动。存在至少两个选项有:
选项1
使一个传感器固定器的一个。这样,你仍然会发生碰撞,但没有相互重复的身体。
FixtureDef def = new FixtureDef();
def.isSensor = true;
选项2
这可能是更多的是你的想法。为了避免碰撞物理effetcs,你可以放弃这样的接触:
@Override
public void preSolve(Contact contact, Manifold oldManifold)
{
contact.setEnabled(false);
}
请注意,你必须保持只要两个实体碰撞调用setEnabled(false)
每Box2D的世界一步。
MoreOn
你可以阅读更多关于如何碰撞的工作有:http://www.iforce2d.net/b2dtut/collision-callbacks。对于传感器,信息在互联网上广泛使用。
box2d的ContactListener与您的敌人和Player类是Sprite的子类有任何关系吗? – Aryan