如何在libgdx中对纹理叠加颜色?

5

我正在使用libgdx中的texture和textureAtlas。 这些纹理加载了白色圆形的图像。

我该如何将它们的颜色叠加到另一种颜色上呢? 或者还有其他方法吗?

private final static TextureAtlas textureAtlas = new TextureAtlas(Gdx.files.internal("spritesheet.atlas"));
private final static TextureAtlas.AtlasRegion texture = textureAtlas.findRegion("Bubble.001");

编辑: 正如我所说,我有一个白色的圆形,我想将它变成红色(不需要另一张红色圆形的图片)


你需要澄清一下“overlay”的含义,这个词非常模糊。 - Tenfour04
1
您可以使用spriteBatch.setColor设置着色颜色。然后,使用spritebatch绘制的所有内容都将被着色。 - Robert P
它不能在白色上工作... - Alex K
1
如果您正在使用Sprites而不是手动提交纹理区域到精灵批处理,则应改用sprite.setColor。如果这样做不起作用,您需要解释您用于纹理的确切内容。一个带有alpha通道的PNG文件吗? - Tenfour04
你有没有找到解决办法?我也遇到了同样的问题。 - Jose Martinez
1个回答

3
您可以在 Color 类中使用 "lerp" 方法。
actor.setColor(Color.WHITE.cpy().lerp(tintingColor, .5f));

lerp方法会改变你的Color对象,因此在使用之前请使用cpy命令保存原始颜色。在这种情况下,我使用白色作为原始颜色,以保持Actor纹理的颜色。在此情况下,lerp将以50%的强度覆盖色彩。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接