2015-04-04 12 views
5

Wie erstelle ich Pixmap von TextureRegion oder von Sprite? Ich brauche das, um die Farbe einiger Pixel zu ändern und dann eine neue Textur aus Pixmap (während des Ladebildschirms) zu erstellen.libgdx TextureRegion zu Pixmap

Antwort

15
Texture texture = textureRegion.getTexture(); 
if (!texture.getTextureData().isPrepared()) { 
    texture.getTextureData().prepare(); 
} 
Pixmap pixmap = texture.getTextureData().consumePixmap(); 

Wenn Sie nur einen Teil dieser Textur (die Region), dann werden Sie einige manuelle Verarbeitung zu tun haben:

for (int x = 0; x < textureRegion.getRegionWidth(); x++) { 
    for (int y = 0; y < textureRegion.getRegionHeight(); y++) { 
     int colorInt = pixmap.getPixel(textureRegion.getRegionX() + x, textureRegion.getRegionY() + y); 
     // you could now draw that color at (x, y) of another pixmap of the size (regionWidth, regionHeight) 
    } 
} 
+0

danke, aber afaik 'textureRegion.getTexture()' wird den ganzen Text (Atlas) zurückgeben? –

+3

Ja, es tut genau das. Es gibt keinen anderen Weg, da es nur diese eine Textur gibt (das ist der ganze Sinn eines Atlas). Sie müssen Ihre eigenen kleineren Pixmaps erstellen und die Teile der Regionen kopieren. – noone

+0

Ich habe ein kleines Code-Snippet (ungetestet) hinzugefügt, wie man das machen könnte. – noone

Verwandte Themen