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();
}
}
我希望你能帮助我。 我有一个加载透明纹理的游戏,应该在游戏开始时根据用户的选择(十六进制代码)着色。
我的游戏中有放置游戏人物的图块(居中)。 瓷砖是 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();
}
}