box2d调试绘制不起作用

时间:2013-05-24 08:21:14

标签: ios cocos2d-iphone box2d

我正在尝试在IOS项目中使用box2d的调试绘图,使用看似正确的代码,但屏幕上没有显示任何内容。这是代码:

b2Vec2 gravity = b2Vec2(0.0f, 0.0f);
_world = new b2World(gravity);
_world->SetContinuousPhysics(true);
m_debugDraw = new GLESDebugDraw( PTM_RATIO );
_world->SetDebugDraw(m_debugDraw);
uint32 flags = 0;
flags += b2Draw::e_shapeBit;
flags += b2Draw::e_jointBit;
flags += b2Draw::e_centerOfMassBit;
flags += b2Draw::e_aabbBit;
flags += b2Draw::e_pairBit;
m_debugDraw->SetFlags(flags);

我错过了什么?

2 个答案:

答案 0 :(得分:2)

您必须覆盖 draw 方法。

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

答案 1 :(得分:0)

John Wordsworth在http://www.johnwordsworth.com/2011/09/wrapping-box2d-debug-into-a-cocos2d-layer/提出的解决方案对我来说非常有用。