为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

函数式编程 2022-12-15 10:50:21
我希望你能帮助我。我有一个加载透明纹理的游戏,应该在游戏开始时根据用户的选择(十六进制代码)进行着色。我的游戏有放置游戏人物的图块(居中)。瓷砖是 50x50,我的 png 也是。它有一个透明的背景,我的图的矢量有透明的东西,应该是彩色的。它看起来像这样:我正在使用 libGDX 引擎,因为这个问题我真的很沮丧。任何帮助表示赞赏!非常感谢!
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

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

//img1.sycdn.imooc.com//639a8baf0001d28211810281.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();

    }

}


查看完整回答
反对 回复 2022-12-15
  • 1 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信