调整纹理可见部分的精灵边界

时间:2012-06-26 11:15:28

标签: opengl-es cocos2d-iphone cocos2d-x

有没有办法调整精灵可见部分的边界?为了更容易理解:我有一个纹理,如图1所示。然后我将它分成几块并使用PRKit(图2和图3中的木纹理)填充结果片段。但是得到的碎片具有透明(图2和图3中的绿色),并且当从碎片创建精灵时,它们具有初始纹理的大小。有没有办法摆脱这种透明度,并调整可见部分(木材纹理)的大小,openGL或cocos2d-x是什么意思? example 也许它有用 - 来自PRKit的draw()方法:

void PRFilledPolygon::draw() {

//CCNode::draw();

glDisableClientState(GL_COLOR_ARRAY);

// we have a pointer to vertex points so enable client state
glBindTexture(GL_TEXTURE_2D, texture->getName());

glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ONE_MINUS_SRC_ALPHA);
glVertexPointer(2, GL_FLOAT, 0, areaTrianglePoints);
glTexCoordPointer(2, GL_FLOAT, 0, textureCoordinates);

glDrawArrays(GL_TRIANGLES, 0, areaTrianglePointCount);

glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

//Restore texture matrix and switch back to modelview matrix
glEnableClientState(GL_COLOR_ARRAY);}

1 个答案:

答案 0 :(得分:1)

好的,我这样做了。首先,我从PRFilledPolygon(PRKit)创建纹理,用于该CCRenderTexture,之后我将结果纹理应用于新的CCSprite,然后我创建了一个边界框,使用来自PRKit网站的数据并使用setTextureRect()将其应用于精灵