2015-03-13 2 views
0

J'ai essayé de faire la classe "Obstacle" qui construit le corps box2d par tableau de points et dessine la zone que couvre mon corps. En ce qui concerne le corps, cela fonctionne parfaitement, je reçois un tableau de points, construis b2PolygonShape et ainsi de suite. MAIS, je ne sais vraiment pas, comment remplir la zone avec la couleur ou la texture qui a été construite par le tableau de points. Voici mon tirage au sort() méthode:Remplissez la zone avec la texture 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()); 

}

sommets est le tableau de points que j'utiliser pour créer b2body.

Répondre

1

Vous devez trianguler la forme de polygone que vous avez construite pour dessiner.

poly2tri est une bonne option pour les formes trianguler: https://code.google.com/p/poly2tri/

Après trianguler votre forme, les coordonnées de texture de carte ou définir les couleurs de sommet.