libGDX: 根据用户输入改变PNG的颜色

libGDX: Change the color of a PNG according to user's input

我希望你能帮助我。 我有一个加载透明纹理的游戏,应该在游戏开始时根据用户的选择(十六进制代码)着色。

我的游戏中有放置游戏人物的图块(居中)。 瓷砖是 50x50,我的 png 也是。它有一个透明的背景,我的图的矢量有透明的东西,应该是彩色的。 它看起来像这样:

我正在使用 libGDX 引擎,因为这个问题我真的很沮丧。 感谢您的帮助!

非常感谢!

要在 LibGDX 中以编程方式更改颜色,您需要使用具有 白色像素的图像(png 或 jpg) 您可以将图像分成两部分来实现此效果,一个用于您不想更改颜色的部分,一个用于您所做的部分。 这是一个例子:

代码:

public class ExampleGame extends InputAdapter {

    SpriteBatch batch;
    Color crownColor;

    public ExampleGame() {
        batch = new SpriteBatch();
        crownColor = Color.WHITE;
    }

    @Override
    public boolean touchDown(int screenX, int screenY, int pointer, int button) {
        crownColor = Color.RED;
        return false;
    }

    public void render(TextureRegion player, TextureRegion crown) {
        batch.begin();
        batch.setColor(Color.WHITE); // Else player will be affected by crownColor too
        batch.draw(player, 0, 0);
        batch.setColor(crownColor);
        batch.draw(crown, 0, 0);
        batch.end();
    }
}