这是在还没有调用到画线方法的时候,界面显示的截图:

这是在调用了画线方法后,界面显示的截图,许多图片的order都发生了改变。每次调用画线都会出现这样的情况

下面是代码部分:
void SGLine::draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated){
_customCommand.init(_globalZOrder);
_customCommand.func = CC_CALLBACK_0(SGLine::onDraw, this, transform, transformUpdated);
renderer->addCommand(&_customCommand);
}
void SGLine::onDraw(const kmMat4 &transform, bool transformUpdated){
kmGLPushMatrix();
kmGLLoadMatrix(&transform);
CHECK_GL_ERROR_DEBUG();
//draw
switch(num_line){
case 1:
case 2:
case 3:drawlineNum1();break;
case 4:
case 5:drawlineNum2();break;
case 6:
case 7:
case 8:
case 9:drawlineNum2();break;
default:
break;
}
CHECK_GL_ERROR_DEBUG();
kmGLPopMatrix();
}
//线的数量为1条
void SGLine::drawlineNum1(){
Point point_start=line_nume1->getControlPointAtIndex(start_num);
Point point_end=line_nume1->getControlPointAtIndex(end_num);
glLineWidth(Line_width);//设置线的粗细
DrawPrimitives::setDrawColor4B(255,0,0,255);//设置中奖线的颜色
DrawPrimitives::drawLine(point_start,point_end);//设置中奖线的线路
//end draw
}
DraLine=SGLine::create(lineNo,begin,end);//根据服务器返回值,画出中奖线
addChild(DraLine,3);
DraLine->setTag(DrawTag);
DrawTag++;
画线的层数是3,当前最高的order值。