【问题标题】:How to overlay color on texture in libgdx?如何在 libgdx 中的纹理上叠加颜色?
【发布时间】:2014-07-13 14:10:13
【问题描述】:

我在 libgdx 中使用纹理和纹理图集。 此纹理加载白色圆圈的图像。

如何用另一种颜色覆盖它的颜色? 或者也许他们是另一种方法?

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

编辑: 正如我所说,我有一个白色圆圈,我想让它变成红色(不需要另一个带有红色圆圈的图像)

【问题讨论】:

  • 您需要澄清叠加的含义。非常模糊的词。
  • 您可以使用spriteBatch.setColor 设置色调。使用spritebatch 绘制的所有内容都将被着色。
  • 它不适用于白色...
  • 如果您使用Sprites 而不是手动将纹理区域提交到精灵批处理,那么请改用sprite.setColor。如果这不起作用,您需要准确解释您用于纹理的内容。带有 alpha 通道的 PNG 文件?
  • 您找到解决方案了吗?我有同样的问题

标签: colors libgdx overlay


【解决方案1】:

您可以在 Color 类中使用lerp 方法。

actor.setColor(Color.WHITE.cpy().lerp(tintingColor, .5f));

lerp 更改您的Color 对象,因此在它之前使用cpy 命令以保留原始颜色。在这种情况下,我使用白色作为我的原始颜色,它保留了 Actor 纹理的颜色。在这种情况下,lerp 将以 50% 的强度覆盖 tintingColor。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 2016-05-14
    相关资源
    最近更新 更多