码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2d-x 2.0下怎样让BOX2D DEBUG DRAW的方法笔记

时间:2017-05-07 13:07:34      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:cocos2d-x   ott   family   丢失   void   layer   cocos2d   ica   问题   

原文链接:

这两天玩 cocos2d-x 和 box2d,发现 cocos2d-x 2.0 版本号要使用老方法 debug 渲染会出错。于是找到了新方法来 debug draw:

首先在你的头文件中添加这么一条:

public:

//.....

virtual void      draw();

//.....

然后在你的 cpp 里实现它:

void HelloWorld::draw() {
    CCLayerColor::draw();
    ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position );
    kmGLPushMatrix();
    glScalef(CC_CONTENT_SCALE_FACTOR(), CC_CONTENT_SCALE_FACTOR(), 1.0f);
    world->DrawDebugData();
    kmGLPopMatrix();
}

这里注意2个地方,首先第一个是 CCLayerColor::draw(); 

假设你继承的是 CCLayerColor 就用 CCLayerColor::draw();  否则使用 CCLayer::draw(); 

假设在继承了 CCLayerColor 的时候使用了CCLayer::draw();那么你图层颜色会丢失。

其次 IOS 上有个 retina 模式。不开启倒也无所谓可是开启了,那么 debug draw 渲染出来的仅仅有一半尺寸

解决问题加一句

glScalef(CC_CONTENT_SCALE_FACTOR(), CC_CONTENT_SCALE_FACTOR(), 1.0f);


cocos2d-x 2.0下怎样让BOX2D DEBUG DRAW的方法笔记

标签:cocos2d-x   ott   family   丢失   void   layer   cocos2d   ica   问题   

原文地址:http://www.cnblogs.com/brucemengbm/p/6820148.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!