用纹理填充区域cocos2d-x
问题描述:
我一直在试图让“障碍”类通过点阵构建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点的阵列。
答
您应该对绘制的多边形进行三角测量。
poly2tri是三角形状的一个很好的选择:https://code.google.com/p/poly2tri/
三角测量你的形状,地图纹理坐标后或设置顶点颜色。