Debugging 在libGDX中调试绘图

Debugging 在libGDX中调试绘图,debugging,libgdx,bulletphysics,Debugging,Libgdx,Bulletphysics,在libGDX中调试draw Bullet物理的正确方法是什么,这样我就可以看到我正在设置的btCollisionObjects 到目前为止,我已经有了下面的内容,但似乎没有出现btCollisionObjects public void渲染(浮动增量){ 调试抽屉。开始(cam); collisionWorld.debugDrawWorld(); debugDrawer.end(); modelBatch.begin(cam); ... modelBatch.end(); } @凌驾 公开展览

在libGDX中调试draw Bullet物理的正确方法是什么,这样我就可以看到我正在设置的
btCollisionObjects

到目前为止,我已经有了下面的内容,但似乎没有出现
btCollisionObjects

public void渲染(浮动增量){
调试抽屉。开始(cam);
collisionWorld.debugDrawWorld();
debugDrawer.end();
modelBatch.begin(cam);
...
modelBatch.end();
}
@凌驾
公开展览({
Bullet.init();
...         
collisionConfig=新的btDefaultCollisionConfiguration();
dispatcher=新的btCollisionDispatcher(collisionConfig);
broadphase=新的btDbvtBroadphase();
collisionWorld=新的btCollisionWorld(调度程序、宽相位、collisionConfig);
debugDrawer=新的debugDrawer();
collisionWorld.setDebugDrawer(debugDrawer);
debugDrawer.setDebugMode(btIDebugDraw.DebugDrawModes.DBG_MAX_DEBUG_DRAW_MODE);
}

希望这在事件发生3个月后仍能对您有所帮助,因为您的代码片段确实帮助了我!;)

我将您的代码片段放入我的应用程序,并能够使调试绘图正常工作

记录在案,我使用的是dynamicsWorld,但是换掉了代码,它就工作了

dynamicsWorld=new btdiscreteddynamicsworld(调度程序、宽相位、约束解决程序、冲突配置);
我建议的一件事是在绘制模型和绘制调试时进行交换。如果将调试放在第二位,它将最后绘制,因此位于模型之上。否则,您将体验到调试绘图被模型所掩盖。请尝试以下方法:

public void渲染(浮动增量){
modelBatch.begin(cam);
...
modelBatch.end();
调试抽屉。开始(cam);
collisionWorld.debugDrawWorld();
debugDrawer.end();
}

将碰撞对象添加到碰撞世界帮助了我。此外,我几乎找不到这方面的文档。我想知道AWippler在哪里找到了用于libgdx的bullet3D包装的调试代码。任何有困难的人都可以试试这个

@Override
public void show() {
    Bullet.init();
    ...         
    collisionConfig = new btDefaultCollisionConfiguration();
    dispatcher = new btCollisionDispatcher(collisionConfig);
    broadphase = new btDbvtBroadphase();
    collisionWorld = new btCollisionWorld(dispatcher, broadphase, collisionConfig);
    for (Ball b : gameWorld.balls) {
        collisionWorld.addCollisionObject(b.getBallObject());
    }
    for (Brick b : gameWorld.bricks) {
        collisionWorld.addCollisionObject(b.getBrickObject());
    }
    debugDrawer = new DebugDrawer();
    collisionWorld.setDebugDrawer(debugDrawer);
    debugDrawer.setDebugMode(btIDebugDraw.DebugDrawModes.DBG_MAX_DEBUG_DRAW_MODE);
}

能否尝试从modelbatch开始/结束中获取调试绘图内容?另外请注意,DebugDrawer内存有严重问题。我认为它有内存泄漏。我已经更新了代码以反映我所做的更改。仍然看不到对象。
DebugDrawer
是来自测试的吗?它确实实现了一些回调?如果一切正常,我想这与您提供的摄像头有关。在DebugDrawer回调中设置一个断点,看看它们是否根本没有被调用,或者它们是否只是被绘制到屏幕外。