是否可以将纹理的颜色更改为随机颜色,如果可能,我该怎么做? 我认为另一种方法是创建一个精灵表与不同颜色的对象并随机更改区域,但我不知道。更改纹理的颜色
更改纹理的颜色
回答
如果你有一个白色的纹理,那么你可以改变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
您不能更改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);
设置颜色随机只是小逻辑,无论你想在一次或一定的延迟时间设置随机颜色。
如何在舞台上绘制精灵图形?使用stage.getBatch().draw? – user8340536
'sprite.draw(stage.getBatch())',同样在'begin()'和'end()'之间绘制。如果你使用的是scene2d,你应该使用'Image'而不是'Sprite' – Aryan
- 1. 用纹理图像更改纹理颜色
- 2. 在Three.js中更改MouseOver上纹理的颜色
- 3. 更改Three.js collada对象的纹理和颜色
- 4. GLSL 2.0颜色和纹理
- 5. 如何更改最大化按钮颜色/纹理
- 6. 更改颜色
- 7. 更改颜色
- 8. 更改处理后事件的颜色
- 9. 纹理获取错误的颜色
- 10. 纹理天空盒团结的颜色
- 11. OpenGL设置纹理的透明颜色
- 12. three.js额外的纹理颜色
- 13. 纹理影响对象的颜色
- 14. 纹理边缘的颜色精度
- 15. OpenGL纹理奇怪的颜色
- 16. GLSL中的纹理和颜色?
- 17. opengl设置顶点颜色的纹理颜色
- 18. Lwjgl正在改变我的纹理的颜色?
- 19. 更改NavigationDrawer的颜色点击颜色
- 20. SceneKit地板纹理改变了Xcode 8的颜色
- 21. 动态更改svg的颜色并将其作为纹理应用于three.js
- 22. 如何更改处理背景颜色?
- 23. 更改颜色处理程序CSS
- 24. 更改按钮带纹波的背景颜色
- 25. 更改Texbox颜色
- 26. 更改SVG颜色
- 27. 更改UIBarButtonItem颜色
- 28. 更改vim'gutter'颜色
- 29. 更改UIBarButtonItem颜色
- 30. 更改UIBarButtonSystem颜色
通过'PixMap',你可以进入单个像素来改变它。不确定你到底想要什么。 – Madmenyo