2017-07-25 101 views
0

是否可以將紋理的顏色更改爲隨機顏色,如果可能,我該怎麼做? 我認爲另一種方法是創建一個精靈表與不同顏色的對象並隨機更改區域,但我不知道。更改紋理的顏色

+0

通過'PixMap',你可以進入單個像素來改變它。不確定你到底想要什麼。 – Madmenyo

回答

0

如果你有一個白色的紋理,那麼你可以改變spritebatch的顏色來爲圖像着色。

batch.setColor(new Color(r,g,b,a)); 
batch.draw(texture, x, y); 
batch.setColor(new Color(1,1,1,1)); // reset to default colour 
0

您不能更改Texture的顏色,因爲它在GPU內存中。由於它們在OpenGL上下文中,因此無論何時都不能直接修改它們的像素。你可以使用Pixmap這是一個保存在本地存儲器中的像素映射,用一些方法來執行所有的修改。

在其他的方式,您可以使用這些下列方式實現您的要求:

  1. 您可以使用setColor()其超載Batch接口的方法。

    這些是setColor方法的原型。

    public void setColor (Color tint); 
    public void setColor (float r, float g, float b, float a); 
    public void setColor (float color); 
    

    設置SpriteBatch爲你的紋理,你想顯示彩色的顏色,你畫後再次把Spritebatch顏色爲白色。

OR

  • 可以使用Sprite保持的幾何形狀,顏色和紋理繪製2D精靈信息。

    Texture myTex=new Texture("badlogic.jpg"); 
    Sprite sprite=new Sprite(myTex); 
    sprite.setColor(Color.BLUE); 
    
  • 設置顏色隨機只是小邏輯,無論你想在一次或一定的延遲時間設置隨機顏色。

    +0

    如何在舞臺上繪製精靈圖形?使用stage.getBatch().draw? – user8340536

    +0

    'sprite.draw(stage.getBatch())',同樣在'begin()'和'end()'之間繪製。如果你使用的是scene2d,你應該使用'Image'而不是'Sprite' – Aryan