Запълнете областта с текстура cocos2d-x

Опитвам се да направя клас "Препятствие", който изгражда 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.


person Eugene Alexeev    schedule 13.03.2015    source източник


Отговори (1)


Трябва да триангулирате многоъгълната форма, която сте изградили, за да рисувате.

poly2tri е добър вариант за триангулиране на фигури: https://code.google.com/p/poly2tri/

След като триангулирате вашата форма, картографирайте координатите на текстурата или задайте цветовете на върховете.

person Baris Atamer    schedule 14.03.2015