是否可以将纹理颜色更改为随机颜色?如果可能,我该怎么做? 我认为另一种方法是使用不同颜色的对象创建一个精灵表,并随机更改该区域,但我不确定。
答案 0 :(得分: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
答案 1 :(得分:0)
您无法更改Texture
的颜色,因为这是在GPU内存中。由于它们位于OpenGL上下文中,因此您无法随时直接修改其像素。您可以使用Pixmap
这是保存在本地内存中的像素映射,并使用某些方法执行所有修改。
另外,您可以使用以下方式达到您的要求:
您可以使用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);
设置随机颜色只是一个小逻辑,要么您想要一次设置随机颜色,要么设置一些延迟时间。