Je suis en train d'écrire un jeu en java et je veux implémenter un compteur de puissance pour comment dur vous allez tirer quelque chose.
J'ai besoin d'écrire une fonction qui prend un int entre 0 et 100, et en fonction de ce nombre est, elle sera de retour d'une couleur entre le Vert (de 0 sur la gamme de puissance) et Rouge (100 sur la gamme de puissance).
Similaire à la façon dont les contrôles du volume de travail:
Quelle opération dois-je faire sur le Rouge, Vert et Bleu d'une couleur pour générer des couleurs entre le Vert et le Rouge?
Donc, j'ai pu courir le dire, getColor(80) et il sera de retour une couleur orangée (ses valeurs dans R, G, B) ou getColor(10), qui sera de retour une plus Vert/Jaune valeur rvb.
Je sais que j'ai besoin d'augmenter les composantes de la R, G, B les valeurs d'une nouvelle couleur, mais je ne sais pas précisément ce qui se passe vers le haut ou vers le bas comme les couleurs changement de Vert-Rouge.
Progrès:
J'ai fini par utiliser le HSV/HSB espace de couleurs parce que j'ai aimé le gradiant mieux (pas de bruns foncés dans le milieu).
La fonction que j'ai utilisé était (en java):
public Color getColor(double power)
{
double H = power * 0.4; // Hue (note 0.4 = Green, see huge chart below)
double S = 0.9; // Saturation
double B = 0.9; // Brightness
return Color.getHSBColor((float)H, (float)S, (float)B);
}
D'où le "pouvoir" est un nombre compris entre 0.0 et 1.0. 0.0 retour d'un rouge vif, 1.0 sera de retour d'un vert lumineux.
Java Teinte Graphique:
Merci à tous de m'aider avec ça!