2

我正在尝试在 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);

我错过了什么?

4

2 回答 2

2

您必须重写draw方法。

- (void) draw
{
    [super draw];
    ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position);
    kmGLPushMatrix();
    world->DrawDebugData();
    kmGLPopMatrix();
}
于 2013-05-24T08:35:58.713 回答
0

John Wordsworth 在此处http://www.johnwordsworth.com/2011/09/wrapping-box2d-debug-into-a-cocos2d-layer/带来的解决方案非常适合我。

于 2013-05-25T07:25:11.347 回答