Я немного путался с пулей, и теперь я хочу отлаживать отладки. У меня есть мир opengl с рабочей физикой пули и всем.Ящик для отладки пули с OpenGL
То, что я попытался это: Я создал класс GLDebugDrawer так:
#include "LinearMath/btIDebugDraw.h"
class GLDebugDrawer : public btIDebugDraw
{
int m_debugMode;
public:
GLDebugDrawer();
virtual ~GLDebugDrawer();
virtual void drawLine(const btVector3& from, const btVector3& to, const btVector3& fromColor, const btVector3& toColor);
virtual void drawLine(const btVector3& from, const btVector3& to, const btVector3& color);
virtual void drawSphere(const btVector3& p, btScalar radius, const btVector3& color);
virtual void drawTriangle(const btVector3& a, const btVector3& b, const btVector3& c, const btVector3& color, btScalar alpha);
virtual void drawContactPoint(const btVector3& PointOnB, const btVector3& normalOnB, btScalar distance, int lifeTime, const btVector3& color);
virtual void reportErrorWarning(const char* warningString);
virtual void draw3dText(const btVector3& location, const char* textString);
virtual void setDebugMode(int debugMode);
virtual int getDebugMode() const { return m_debugMode; }
};
Тогда в игре я включил этот заголовок и создать экземпляр.
Где инициализировать Бритиш мир, я установить тип отладки рисовать, как это:
debugDraw->DBG_DrawWireframe; // this breaks when I run the app
debugDraw->setDebugMode(btIDebugDraw::DBG_DrawWireframe); // so does this
debugDraw->setDebugMode(1); // this doesn't
Я тогда установить отладки в скоростном мире, как это:
bt_dynamicsWorld->setDebugDrawer(debugDraw);
И, наконец, сделайте отладочную ничью после того, как я сделаю тела пули следующим образом:
bt_dynamicsWorld->debugDrawWorld();
Должно быть что-то такое Я пропал без вести, так как я не получаю никаких каркасов или чего-то еще при работе.
Я знаю, что это старое сообщение, но оно появилось на вершине, когда я искал. Вы случайно реализовали какие-либо из этих методов в своем классе GLDebugDrawer? – Jamie