libGDX: изменить цвет PNG в соответствии с пользовательским вводом - PullRequest
0 голосов
/ 26 мая 2019

Я надеюсь, что вы можете мне помочь. У меня есть игра, в которой прозрачные текстуры загружаются и должны быть окрашены в соответствии с выбором пользователя (HEX-код) в начале игры.

В моей игре есть плитки, в которые будут помещены игровые фигуры (по центру). Плитки 50х50, так же как и мой png. у него прозрачный фон, а вектор моего рисунка имеет прозрачный материал, который должен быть цветным. Это выглядит примерно так:

enter image description here

Я использую движок libGDX, и я очень расстроен из-за этой проблемы. Любая помощь приветствуется!

Большое спасибо!

1 Ответ

1 голос
/ 26 мая 2019

Чтобы программно изменить цвета в LibGDX, вам нужно использовать изображение (png или jpg) с белыми пикселями . Вы можете добиться этого эффекта, разделив изображение на 2 части, одну на часть, которую вы не делаете.хотите, чтобы цвет был изменен и один для частей, которые вы делаете.Вот пример:

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