是否可以将纹理的颜色更改为随机颜色,如果可能,我该怎么做? 我认为另一种方法是创建一个精灵表与不同颜色的对象并随机更改区域,但我不知道。更改纹理的颜色
更改纹理的颜色
回答
如果你有一个白色的纹理,那么你可以改变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. GLSL更改纹理的像素颜色
- 2. 用纹理图像更改纹理颜色
- 3. 使用着色器更改纹理某些片段的颜色
- 4. 纹理GLSL颜色ontop的
- 5. 将颜色与纹理颜色不同
- 6. 使用OpenGL在Java中更改纹理中的某些颜色
- 7. 在Three.js中更改MouseOver上纹理的颜色
- 8. 更改Three.js collada对象的纹理和颜色
- 9. 用于纹理,颜色和纹理/颜色的片段着色器GLSL
- 10. GLSL 2.0颜色和纹理
- 11. OpenGL纹理颜色分离
- 12. 纹理缺乏颜色
- 13. SKSpriteNode只收纹理颜色
- 14. sknode颜色或纹理
- 15. openGL纹理和颜色
- 16. 如何更改最大化按钮颜色/纹理
- 17. 更改颜色
- 18. 更改颜色
- 19. 更改颜色
- 20. 更改颜色
- 21. 更改颜色
- 22. 更改颜色
- 23. 更改处理后事件的颜色
- 24. 渲染到纹理填充XNA中的颜色纹理
- 25. OpenGL设置纹理的透明颜色
- 26. 纹理边缘的颜色精度
- 27. three.js额外的纹理颜色
- 28. 用WebGL中的纹理替换颜色
- 29. 纹理获取错误的颜色
- 30. GLSL中的纹理和颜色?
通过'PixMap',你可以进入单个像素来改变它。不确定你到底想要什么。 – Madmenyo