Если вам нужен только градиент от зеленого к красному, то примерно так:
// import java.awt.Color;
static Color HealthToColor(double percentage) {
if (percentage > 1) {
percentage = 1;
}
else if (percentage < 0) {
percentage = 0;
}
int red = (int)(255.0 * (1 - percentage));
int green = (int)(255.0 * (percentage));
int blue = 0;
return new Color(red, green, blue);
}
Если нужно в процентах, очевидно, делите здоровье на 100.
- HealthToColor (1) // -> java .awt.Color [r = 0, g = 255, b = 0]
- HealthToColor (0) // -> java .awt.Color [r = 255, g = 0, b = 0]
- HealthToColor (0.5) // -> java .awt.Color [r = 127, g = 127, b = 0] (это оливковый, а не оранжевый)
- HealthToColor (0.1) // -> java .awt.Color [r = 229, g = 25, b = 0] (это оранжево-красный)