gpt4 book ai didi

java - 在 LibGDX 中每次都不会调用 ContactListner(Box2d) 的 EndContact

转载 作者:搜寻专家 更新时间:2023-10-31 08:03:51 28 4
gpt4 key购买 nike

我是 box2d 的新手,正在尝试在 LibGDX 游戏中实现它。我想做的是检测各种物体之间的碰撞。所以,我创建了一个类 collisionDetection 并实现了 ContactListener在其中给了我 4 个重写的方法,即 beginContact()endContact()我必须处理。此外,我在 world.setcontactListner(collisionDet) 中传递了 collisionDetection 类的对象。当世界类中的物体相互碰撞时,将调用 collisionDetection 类的重写方法。但是当 body 碰撞时就会出现问题beginContact()方法每次都会被调用但是 endContact()当 body 失去联系时,方法不会每次都被调用。那么,我们有哪些可能的方法来检测 endContact()每次。

碰撞检测类代码如下:

public class CollisionDetection implements ContactListener {
static Fixture fixtureA;
static Fixture fixtureB;
public static boolean Colliding=false;
World world;


protected CollisionDetection(World world, long addr) {
this.world = world;
// TODO Auto-generated constructor stub
}

@Override
public void beginContact(Contact contact) {
// TODO Auto-generated method stub
fixtureA = contact.getFixtureA();
fixtureB = contact.getFixtureB();

Colliding=true;

}

@Override
public void endContact(Contact contact) {
// TODO Auto-generated method stub
Colliding=false;

}

@Override
public void preSolve(Contact contact, Manifold oldManifold) {
// TODO Auto-generated method stub

}

@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
// TODO Auto-generated method stub


}

世界一流

collisionDet = new CollisionDetection(worldbox, 0);<br/>
worldbox.setContactListener(collisionDet);

谢谢

最佳答案

您可能正在使用 setTranform() 来移动对象...当我们使用 set transform 时,Box2d 不提供回调

关于java - 在 LibGDX 中每次都不会调用 ContactListner(Box2d) 的 EndContact,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15827955/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com