我是为了实现显示一张图片,然后指定图片显示的顶点来实现显示图片的任意形状。然后继承了Sprite并重写了onDraw,代码如下。
void SpritePoly::draw(Renderer *renderer, const Mat4 &transform, uint32_t flags){
Sprite::draw(renderer,transform,flags);
_customCommand.init(_globalZOrder);
_customCommand.func = =](){
CC_NODE_DRAW_SETUP();
if(getTexture()!=NULL){
GL::bindTexture2D(getTexture()->getName());
}else{
GL::bindTexture2D(0);
}
GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POS_COLOR_TEX);
//顶点
glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, vertexs_);
//纹理
glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_TEX_COORDS, 2, GL_FLOAT, GL_FALSE, 0, uvs_);
//颜色。
glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, colors_);
//根据索引draw三角形
glDrawElements(GL_TRIANGLES, (verCont_-2)*3 , GL_UNSIGNED_SHORT, indices_);
};
renderer->addCommand(&_customCommand);
}
问题来了,我自己绘制的精灵坐标在0.0点,而系统的可以正确的位置。怎么样才能让我绘制的和系统的精灵保持同一位置? 

