2

我是 box2d 的新手,我必须处理物理引擎。我正在创建固定装置和物理体并设置位置。现在我想在调试模式下查看物理对象。我访问了许多论坛并尝试了代码,但没有运气。

创建我的世界后,我正在使用以下代码

    m_debugDraw = new GLESDebugDraw( PTM_RATIO );
    _world->SetDebugDraw(m_debugDraw);
    uint32 flags = 0;
    flags += b2Draw::e_shapeBit;
    flags += b2Draw::e_jointBit;
    flags += b2Draw::e_aabbBit;
    flags += b2Draw::e_pairBit;
    flags += b2Draw::e_centerOfMassBit;
    m_debugDraw->SetFlags(flags);

并且还覆盖了 Draw 方法并包括 GLES_Render.h 。没有编译错误,但调试模式下的物理对象未显示。

-(void) draw
{
    [super draw];
    ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position );
    kmGLPushMatrix();
    _world->DrawDebugData();
    kmGLPopMatrix();
}

如何使用 cocos2d/Box2d 2.1 版启用 Debug Draw 或者是否有其他方法可以查看物理对象?

谢谢

4

1 回答 1

0

确定标志时应使用GLESDebugDraw :

uint32 flags = 0;

flags += GLESDebugDraw::e_shapeBit;
flags += GLESDebugDraw::e_jointBit;
 .....
debugDraw->SetFlags(flags);
于 2014-03-09T19:08:09.137 回答