用纹理填充区域 cocos2d-x

Fill the area with texture cocos2d-x

我一直在尝试制作 "Obstacle" class,它通过点数组构建 box2d 主体并绘制我的主体覆盖的区域。至于主体,它完全可以工作,我收到点数组,构建 b2PolygonShape 等等。但是,我真的不知道如何用点数组构建的颜色或纹理填充该区域。这是我的 draw() 方法:

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());

}

vertices 是我用来创建 b2body 的点数组。

您应该对构建的多边形进行三角剖分以便绘制。

poly2tri 是对形状进行三角剖分的不错选择:https://code.google.com/p/poly2tri/

对形状进行三角测量后,映射纹理坐标或设置顶点颜色。