1. 程式人生 > >cocos2d-x 2.0下怎樣讓BOX2D DEBUG DRAW的方法筆記

cocos2d-x 2.0下怎樣讓BOX2D DEBUG DRAW的方法筆記

name box 否則 方法 con ret 2.0 ng- cto

原文鏈接:

這兩天玩 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的方法筆記