我知道你们都很忙,所以我要简短一点。
我目前正在开发一款有趣的小游戏。游戏中有敌人。为简单起见,请将其视为彩色正方形。我想最小化任何HUD,所以我决定通过颜色平滑显示生物的生命值(绿色代表健康,黄色代表受损,红色代表几乎死亡)。
但是,我真的很难想出一种像样的高效方法将hp值转换为RGB颜色。从0到255映射到单个int根本不是问题-这是一个示例函数,正是这样:
public int mapHpToGreyscale(int input) {
//input = current hp
double minHealth = 0;
double maxHealth = hpmax;
double minColValue = 0;
double maxColValue = 255;
int output = (int) ((input - minHealth) / (maxHealth - minHealth) * (maxColValue - minColValue) + minColValue);
return output;
}
Run Code Online (Sandbox Code Playgroud)
有没有快速便捷的方法来实现我想要的目标?我将不胜感激。