cocos2d-x 2.0下如何让BOX2D DEBUG DRAW的方法笔记

原文链接:

这两天玩 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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值