Cocos2d iphone IOS Box2d版本2.1 DebugDraw不工作
我是box2d新手,我必须处理物理引擎。我正在创建固定装置和物理机构并设置位置。现在我想在调试模式下查看物理对象。 我已经访问了很多论坛并尝试了代码,但运气不好 创建我的世界后,我正在使用以下代码Cocos2d iphone IOS Box2d版本2.1 DebugDraw不工作,cocos2d-iphone,box2d,physics,ios6.1,Cocos2d Iphone,Box2d,Physics,Ios6.1,我是box2d新手,我必须处理物理引擎。我正在创建固定装置和物理机构并设置位置。现在我想在调试模式下查看物理对象。 我已经访问了很多论坛并尝试了代码,但运气不好 创建我的世界后,我正在使用以下代码 m_debugDraw = new GLESDebugDraw( PTM_RATIO ); _world->SetDebugDraw(m_debugDraw); uint32 flags = 0; flags += b2Draw::e_shapeBit;
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启用调试绘图,或者是否有其他方式查看物理对象
谢谢在确定标志时,您应该使用GLESDebugDraw:
uint32 flags = 0;
flags += GLESDebugDraw::e_shapeBit;
flags += GLESDebugDraw::e_jointBit;
.....
debugDraw->SetFlags(flags);
此调试形状在第0层绘制…仅当精灵的z顺序小于0时才可见。尝试为您的雪碧(雪碧附在身体上)设置-1。谢谢,它可以工作。我已经将zIndex设置为-1,我的背景精灵和物理对象正在显示:)@Guru我如何才能将它带到前面?请看我的问题:@Narek,很简单,让你的精灵z阶小于0。@Guru我有一个更深层次的问题:在Cocos2d-x中,原形是在所有精灵下绘制的:(因此我不能把它们放在前面。我不知道这是一个bug还是按照设计,但我不能做我想做的。唯一的方法是使用Z维度,把它们放在前面,但在这种情况下,我将其他坐标的位置改为,当你放大Z坐标时,图像会变大。