Galera quero q minha barra ai perder vida ela mude de cor gradativamente, ate consegui fazer ela mudar de cor de forma instantânea mas não e isso q quero, tentei criar um método que os fatores GRB se alterem de acordo com o dano tomado, deu uns Bos alguém me ajuda com isso.
tentei isso…
package Pack.Graphics;
import java.awt.Color;
import java.awt.Graphics;
import Pack.Entities.Player;
public class UI {
double vidaPerdida = (Player.vidaMaxima - Player.vidaPlayer);
double B = 255f;
double G = 0f;
double R = 0f;
// A intenção aqui e fazer com quer de acordo com o dano recebido
// a cor da barra de vida mude de cor!
public void BarraMudaDeCor() {
// enquanto a vida for maiso q 60 e o blue maisor q zero
// o blue vai decair de acordo com dano sofrido e o Green vai almentar.
if(Player.vidaPlayer >= 60 && B >= 0) {
B = (B - (vidaPerdida + 6.25));
G = (G + (vidaPerdida + 6.25));
}
// abaixo mesmo esquema so q perde green e ganha intencidade no red
if( Player.vidaPlayer < 60 && Player.vidaPlayer >= 30 && G >= 0) {
G = (G- (vidaPerdida + 6.25));
R = (R + (vidaPerdida + 6.25));
}
}
public void render(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(30, 10, 200, 30);
BarraMudaDeCor();
g.setColor(new Color((int)R,(int)G,(int)B));
// regra de 3
g.fillRect(30, 5, (int) ((Player.vidaPlayer / 100) * 200), 30);
}
}
O erro q da…
Exception in thread "main" java.lang.ExceptionInInitializerError
at Pack.Graphics.UI.<init>(UI.java:10)
at Pack.Game.Game.<init>(Game.java:48)
at Pack.Game.Game.main(Game.java:98)
Caused by: java.lang.NullPointerException: Cannot invoke "Pack.Graphics.SpriteSheet.getSprite_Sheet(int, int, int, int)" because "Pack.Game.Game.spriteSheet" is null
at Pack.Entities.Entity.<clinit>(Entity.java:16)
... 3 more