Added new Prototype for Heart HUD
This commit is contained in:
parent
4e6e4198f4
commit
8cdf1c22d4
|
@ -1,89 +1,37 @@
|
|||
package main;
|
||||
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
import ea.Bild;
|
||||
import ea.ActionFigur;
|
||||
import ea.Knoten;
|
||||
import ea.Ticker;
|
||||
|
||||
public class HUD extends Knoten implements Ticker {
|
||||
private Bild[] volles_Herz;
|
||||
private Bild halbes_Herz;
|
||||
private Bild[] leeres_Herz;
|
||||
private BufferedImage hauptBild;
|
||||
private Bild[] HPLeiste;
|
||||
private final static int SCALE = 50;
|
||||
private static SheetLoader loader = new SheetLoader("/res/images/herzen.png", 16, 16, new int[] { 1, 1, 1 });
|
||||
|
||||
public HUD() {
|
||||
// inizialisieren der Arrays, laden der Bilder und für den ticker anmelden
|
||||
volles_Herz = new Bild[3];
|
||||
leeres_Herz = new Bild[3];
|
||||
HPLeiste = new Bild[3];
|
||||
Main.instance.manager.anmelden(this, 20);
|
||||
try {
|
||||
hauptBild = ImageIO.read(HUD.class.getResourceAsStream("/res/images/icons.png"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// volles_Herz:
|
||||
BufferedImage buff = skalieren(hauptBild.getSubimage(16, 0, 16, 16));
|
||||
volles_Herz[0] = new Bild(0, 0, buff);
|
||||
volles_Herz[1] = new Bild(48, 0, buff);
|
||||
volles_Herz[2] = new Bild(96, 0, buff);
|
||||
// halbes_Herz:
|
||||
buff = skalieren(hauptBild.getSubimage(32, 0, 16, 16));
|
||||
halbes_Herz = new Bild(48, 0, buff);
|
||||
// leeres_Herz
|
||||
buff = skalieren(hauptBild.getSubimage(48, 0, 16, 16));
|
||||
leeres_Herz[0] = new Bild(0, 0, buff);
|
||||
leeres_Herz[1] = new Bild(48, 0, buff);
|
||||
leeres_Herz[2] = new Bild(96, 0, buff);
|
||||
}
|
||||
|
||||
private BufferedImage skalieren(BufferedImage buff) {
|
||||
BufferedImage scaled = new BufferedImage(SCALE, SCALE, BufferedImage.TYPE_INT_RGB);
|
||||
scaled.getGraphics().drawImage(buff, 0, 0, SCALE, SCALE, null);
|
||||
return scaled;
|
||||
ActionFigur herz_1 = new ActionFigur(loader.getFigur(0), "herz_1");
|
||||
ActionFigur herz_2 = new ActionFigur(loader.getFigur(1), "herz_2");
|
||||
ActionFigur herz_3 = new ActionFigur(loader.getFigur(2), "herz_3");
|
||||
herz_1.neuerZustand(loader.getFigur(0), "leeres_Herz");
|
||||
herz_1.neuerZustand(loader.getFigur(1), "halbes_Herz");
|
||||
herz_1.neuerZustand(loader.getFigur(2), "volles_Herz");
|
||||
herz_2.neuerZustand(loader.getFigur(0), "leeres_Herz");
|
||||
herz_2.neuerZustand(loader.getFigur(1), "halbes_Herz");
|
||||
herz_2.neuerZustand(loader.getFigur(2), "volles_Herz");
|
||||
herz_3.neuerZustand(loader.getFigur(0), "leeres_Herz");
|
||||
herz_3.neuerZustand(loader.getFigur(1), "halbes_Herz");
|
||||
herz_3.neuerZustand(loader.getFigur(2), "volles_Herz");
|
||||
herz_1.zustandSetzen("volles_Herz");
|
||||
herz_2.zustandSetzen("halbes_Herz");
|
||||
herz_3.zustandSetzen("leeres_Herz");
|
||||
add(herz_2);
|
||||
add(herz_3);
|
||||
add(herz_1);
|
||||
herz_1.positionSetzen(20, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
//Prototyp, deshalb erstmal nur lokale Hp und außerdem hardgecoded (bleibt wahrscheinlich nicht so)
|
||||
float localeHP = 1f;
|
||||
//erstes Herz:
|
||||
if (localeHP < 0.165f) {
|
||||
HPLeiste[0] = leeres_Herz[0];
|
||||
} else if (localeHP < 0.33f) {
|
||||
halbes_Herz.setX(0);
|
||||
HPLeiste[0] = halbes_Herz;
|
||||
} else {
|
||||
HPLeiste[0] = volles_Herz[0];
|
||||
}
|
||||
//zweites Herz:
|
||||
if (localeHP < 0.495f) {
|
||||
HPLeiste[1] = leeres_Herz[1];
|
||||
} else if (localeHP < 0.66f) {
|
||||
halbes_Herz.setX(48);
|
||||
HPLeiste[1] = halbes_Herz;
|
||||
} else {
|
||||
HPLeiste[1] = volles_Herz[1];
|
||||
}
|
||||
//drittes Herz:
|
||||
if (localeHP < 0.825f) {
|
||||
HPLeiste[2] = leeres_Herz[2];
|
||||
} else if (localeHP < 0.99f) {
|
||||
halbes_Herz.setX(96);
|
||||
HPLeiste[2] = halbes_Herz;
|
||||
} else {
|
||||
HPLeiste[2] = volles_Herz[2];
|
||||
}
|
||||
add(HPLeiste[0]);
|
||||
add(HPLeiste[1]);
|
||||
add(HPLeiste[2]);
|
||||
float localHp = Main.instance.getWorld().getCurrentMap().getPlayer().getHealthPoints();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ public abstract class LivingEntity extends Entity {
|
|||
actionFigur.zustandSetzen(name);
|
||||
}
|
||||
|
||||
protected float getHealthPoints() {
|
||||
public float getHealthPoints() {
|
||||
return hp;
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 327 B |
Loading…
Reference in New Issue