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

时间:2019-05-26 09:51:37

标签: java user-interface libgdx game-engine

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

我的游戏中有放置游戏人形的瓷砖(居中)。 瓷砖是50x50,我的png也是如此。它具有透明的背景,并且我的Figure的矢量具有应着色的透明材质。 看起来像这样:

enter image description here

我正在使用libGDX引擎,由于这个问题,我感到非常沮丧。 任何帮助表示赞赏!

非常感谢!

1 个答案:

答案 0 :(得分:1)

要在LibGDX中以编程方式更改颜色,您需要使用具有白色像素的图像(png或jpg),您可以实现将图像分为两部分的效果,对于您不喜欢的部分想要更改颜色,并希望更改一种颜色。 这是一个示例:

Example color

代码:

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();
    }
}