后面我用cocos2dx V3.8,并成功借鉴的东西与覆盖得出这样的:我怎么能借鉴的东西精灵精灵不
void Box2dManager::draw(Renderer *renderer, const Mat4& transform, uint32_t flags){
GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POSITION);
Director::getInstance()->pushMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
box2dWorld->DrawDebugData();
Director::getInstance()->popMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
// super::draw(renderer, transform, flags);
}
但它总是背后的精灵。它在修改z顺序后不能更改。
解决
现在我能处理的cocos2d 3.x版的Box2D DrawDebugData问题。 我粘贴所有的cocos2dx解决代码。 V2(简单,因为V2引擎的OpenGL平局是每个单一任务)
void Box2dManager::draw(){
ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position);
kmGLPushMatrix();
box2dWorld->DrawDebugData();
kmGLPopMatrix();
}
V3(V3引擎推动平局commond与quence核心,所以你需要创建一个回调)
void Box2dManager::draw(Renderer *renderer, const Mat4& transform, uint32_t flags){
super::draw(renderer, transform, _transformUpdated);
GL::enableVertexAttribs(cocos2d::GL::VERTEX_ATTRIB_FLAG_POSITION);
Director* director = Director::getInstance();
CCASSERT(nullptr != director, "Director is null when seting matrix stack");
director->pushMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
_modelViewMV = director->getMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
_customCommand.init(_globalZOrder);
_customCommand.func = CC_CALLBACK_0(Box2dManager::onDraw, this);
renderer->addCommand(&_customCommand);
director->popMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
}
void Box2dManager::onDraw() {
Director* director = Director::getInstance();
CCASSERT(nullptr != director, "Director is null when seting matrix stack");
Mat4 oldMV;
oldMV = director->getMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
director->loadMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW, _modelViewMV);
box2dWorld->DrawDebugData();
director->loadMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW, oldMV);
}
refrence: http://discuss.cocos2d-x.org/t/box2d-debug-drawing-for-cocos2d-x-3-0/11912/2 http://blog.csdn.net/zszeng/article/details/50000757
我不得不使用'_customCommand.init(_globalZOrder + 1);'到初始化第e自定义渲染命令,否则Box2d相关的东西会呈现在精灵之后。任何想法热解决这个?我正在使用cocos2d-x 3.10。 – rraallvv