我正在尝试在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);
我错过了什么?
答案 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/提出的解决方案对我来说非常有用。