我的一个类继承了sprite,然后重写draw函数,在里面用ccDrawRect绘制了一个矩形框,结果我发现这个矩形框被绘制在了最底层,也就是说如果我加了背景,即使我的精灵在最高层ccDrawRect绘制出来的矩形框也是在最下面根本看不到,要把背景图去掉才能看到,请问一下这个要如何解决?
推荐你使用CCDrawNode
void MySprite::draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated){
Sprite::draw(renderer,transform,transformUpdated);
_customCommand.init(_globalZOrder);
_customCommand.func = CC_CALLBACK_0(MySprite::onDraw, this, transform, transformUpdated);
renderer->addCommand(&_customCommand);
}
void MySprite::onDraw(const kmMat4 &transform, bool transformUpdated)
{
kmGLPushMatrix();
kmGLLoadMatrix(&transform);
//draw
CHECK_GL_ERROR_DEBUG();
glLineWidth(1);
DrawPrimitives::setDrawColor4B(255,255,255,255);
DrawPrimitives::drawRect(ccp(100,100),ccp(150,150));
kmGLPopMatrix();
}
这样写就可以了