网上的代码找来找去,都是一样的.都用不了.
代码中有一句是
m_pDebugDraw = new GLESDebugDraw(PTM_RATIO);
如果写了这句就会报错,说无法解析的外部符号.我记得在b2World中,不能用指针不能用new创建,要用create方法创建.
但是GLESDebugDraw中没有找到create方法,b2World中也没找到相关的create方法.求各位前辈指导一下,该如何正确开启debugDraw.Cocos2d-xDebugDrawGLESDebugDrawBOX2D

解决方案 »

  1.   

    高人就谈不上了,最近开始学cocos2d-x,前天刚刚做了个东西,正好需要加入debugDraw,和你分享下经验吧
    1 cocos2d中testcpp->box2dTestBed文件夹,下面有GLES-Render.h/GLES-Render.cpp,这两个文件先要拷到你的项目中
    2 在你的helloworldscene.h中创建  GLESDebugDraw *m_DebugDraw 对象 再写个 void draw()方法
    3 在helloworldscene.cpp中 init()函数里:
     //PTM_RATIO是box2d中单位米和像素转换比率 #define PTM_RATIO 32
     m_DebugDraw = new GLESDebugDraw(PTM_RATIO);
    //m_World 是世界对象
     m_World->SetDebugDraw(m_DebugDraw);
     uint32 flags = 0;
     flags += b2Draw::e_shapeBit;
     m_DebugDraw->SetFlags(flags);
     draw();
    4 在helloworldscene.cpp中 定义刚写的void draw()方法
    void HelloWorld::draw()
    {
    CCLayer::draw(); ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position ); kmGLPushMatrix(); m_World->DrawDebugData();//这个是一定要写的 其他几句不知道啥意思 看别人代码抄的 kmGLPopMatrix(); CHECK_GL_ERROR_DEBUG();
    }
     如果没有问题的话,这些就可以画出刚体了,但好像不会绘制关节,还有就是如果你的刚体上加图片了,刚体绘制会被遮挡到图片后面 也许也会露出一点点边框能看到,那就这样了,祝你成功!
      

  2.   

    额,忘了说了#define PTM_RATIO 32  这个是自定义的 找个地方自己写