有没有办法调整精灵可见部分的边界?为了更容易理解:我有一个纹理,如图1所示。然后我将它分成几块并使用PRKit(图2和图3中的木纹理)填充结果片段。但是得到的碎片具有透明(图2和图3中的绿色),并且当从碎片创建精灵时,它们具有初始纹理的大小。有没有办法摆脱这种透明度,并调整可见部分(木材纹理)的大小,openGL或cocos2d-x是什么意思? 也许它有用 - 来自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);}
答案 0 :(得分:1)
好的,我这样做了。首先,我从PRFilledPolygon(PRKit)创建纹理,用于该CCRenderTexture,之后我将结果纹理应用于新的CCSprite,然后我创建了一个边界框,使用来自PRKit网站的数据并使用setTextureRect()将其应用于精灵