如何让从 COLOR class 获取的 HSB 颜色变为半透明(半透明)?
How can I make a HSB colour that was acquired from the COLOR class to become translucent (semi-transparent)?
所以我做了一个健康条,它会根据个人的健康状况改变颜色。但我想做到这一点,当玩家走到健康栏下方时,它会变成半透明的,我想知道如果健康栏是由 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);
}
从 Color.getHSBColor(...)
获得 Color
对象后,您可以创建第二个具有相同 RGB 值但不同 Alpha 值的 Color
对象。 Alpha 值定义透明度。例如:
color = Color.getHSBColor( (1f * HEALTH) / 360, 1f, 1f);
color = new Color( color.getRed(), color.getBlue(), color.getGreen(), 128 );
所以我做了一个健康条,它会根据个人的健康状况改变颜色。但我想做到这一点,当玩家走到健康栏下方时,它会变成半透明的,我想知道如果健康栏是由 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);
}
从 Color.getHSBColor(...)
获得 Color
对象后,您可以创建第二个具有相同 RGB 值但不同 Alpha 值的 Color
对象。 Alpha 值定义透明度。例如:
color = Color.getHSBColor( (1f * HEALTH) / 360, 1f, 1f);
color = new Color( color.getRed(), color.getBlue(), color.getGreen(), 128 );