2013-09-26 5 views
1

Je voudrais dessiner un polygone avec une texture répétée (par exemple, une brique). Voici mon code:Rendu polygone avec répétition Texture dans Libgdx en utilisant PolygonSpriteBatch

textureBrick = new Texture(Gdx.files.internal("data/brick.png")); 
textureBrick.setWrap(TextureWrap.Repeat, TextureWrap.Repeat); 


TextureRegion texreg = new TextureRegion(textureBrick,0,0,1f,1f); 
texreg.setTexture(textureBrick); 
PolygonRegion po = new PolygonRegion(texreg, floatvertices); 

et ensuite je dessine (rendu):

public void render(SpriteBatch spriteBatch, PolygonSpriteBatch polygonBatch) { 
    Gdx.gl.glEnable(GL10.GL_TEXTURE_2D); 
    polygonBatch.draw(po, 0,0, 512f, 256f); 
} 

Malheureusement, j'obtient toujours des polygones remplis par la couleur blanche. Pourquoi?

+0

votre code semble bien ... s'il vous plaît fournir plus de code pour résoudre le problème. fournir aussi la version LIBGDX que vous utilisez à partir des nuits actuelles 0.9.9 ce code ne sera pas valide car la région polygone prend aussi des triangles dans les nightlies. Je suppose que vous auriez utilisé seulement le lot d'images-objets Polygon et le rendu est fait entre polygonbatch.begin() et polygonbatch.end() –

Répondre

3

Vous pourriez appeler du code dans cet ordre

spriteBatch.begin(); 
spriteBatch.draw(textureRegion, 0, 0, 480, 480); 
polygonBatch.begin(); 
polygonBatch.draw(polygonRegion, 0,0, 400f, 400f); 
polygonBatch.end(); 
spriteBatch.end(); 

En utilisant SpriteBatch, polygonBatch, shapeRenders etc ensemble pourrait conduire à ce type de problème, vous devez les utiliser séparément:

spriteBatch.begin(); 
spriteBatch.draw(textureRegion, 0, 0, 480, 480); 
spriteBatch.end(); 
polygonBatch.begin(); 
polygonBatch.draw(polygonRegion, 0,0, 400f, 400f); 
polygonBatch.end(); 

Avant d'utiliser commencer de tout autre lot, vous devez terminer le lot précédent.

+0

après utilisation spriteBatch et polygonBatch dessine séparément des travaux de polygone – wwawrzy

Questions connexes