Как сделать так, чтобы цвет HSB, полученный из класса COLOR, стал полупрозрачным (полупрозрачным)? - PullRequest
0 голосов
/ 21 апреля 2020

Итак, я сделал полоску здоровья, которая меняет цвет в зависимости от здоровья человека. Но я хочу сделать так, чтобы когда игрок шел под индикатором здоровья, он становился полупрозрачным, и мне интересно, как мне это сделать, если индикатор состояния сделан из цвета HSB?

private static float HEALTH = 100;

public void render(Graphics g) {
    g.setColor(Color.GRAY);
    g.fillRect(15, 15, 200, 32);

    color = Color.getHSBColor( (1f * HEALTH) / 360, 1f, 1f);

    g.setColor(Color.getHSBColor( (1f * HEALTH) / 360, 1f, 1f));
    g.fillRect(15, 15, (int) HEALTH * 2, 32); 

    g.setColor(Color.white);
    g.drawRect(15, 15, 200, 32);
}

1 Ответ

1 голос
/ 21 апреля 2020

После получения объекта Color из Color.getHSBColor(...) вы можете создать второй объект Color с теми же значениями RGB, но с другим значением Alpha. Альфа-значение - это то, что определяет прозрачность. Например:

color = Color.getHSBColor( (1f * HEALTH) / 360, 1f, 1f);
color = new Color( color.getRed(), color.getBlue(), color.getGreen(), 128 );
...