2015-03-13 113 views
0

我一直在试图让“障碍”类通过点阵构建box2d物体并绘制我身体覆盖的区域。至于身体,它的工作完全正常,我收到一些点数,建立b2PolygonShape等。但是,我真的不知道,如何填充由点阵列构建的颜色或纹理。这是我的draw()方法:用纹理填充区域cocos2d-x

void Obstacle::draw(cocos2d::Renderer *renderer, const cocos2d::Mat4 &transform, uint32_t flags) 

{ CC_NODE_DRAW_SETUP();

glBlendFunc(CC_BLEND_SRC, CC_BLEND_DST); 
GL::bindTexture2D(obstacleTexture->getName()); 
//DrawPrimitives::setDrawColor4F(1.0, 1.0, 0.0, 1.0); 

glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, vertices); 
glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)shapePoints.size()); 

}

顶点是我用于创建b2body点的阵列。

回答

1

您应该对绘制的多边形进行三角测量。

poly2tri是三角形状的一个很好的选择:https://code.google.com/p/poly2tri/

三角测量你的形状,地图纹理坐标后或设置顶点颜色。