Prototype HP HUD added
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package main;
|
||||
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -10,40 +11,79 @@ import ea.Knoten;
|
||||
import ea.Ticker;
|
||||
|
||||
public class HUD extends Knoten implements Ticker {
|
||||
|
||||
Bild[] FULL_HEART;
|
||||
Bild HALF_HEART;
|
||||
Bild[] EMPTY_HEART;
|
||||
BufferedImage mainImage;
|
||||
private Bild[] volles_Herz;
|
||||
private Bild halbes_Herz;
|
||||
private Bild[] leeres_Herz;
|
||||
private BufferedImage hauptBild;
|
||||
private Bild[] HPLeiste;
|
||||
private final static int SCALE = 50;
|
||||
|
||||
public HUD() {
|
||||
FULL_HEART = new Bild[3];
|
||||
EMPTY_HEART = new Bild[3];
|
||||
// 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 {
|
||||
mainImage = ImageIO.read(HUD.class.getResourceAsStream("/res/images/icons.png"));
|
||||
hauptBild = ImageIO.read(HUD.class.getResourceAsStream("/res/images/icons.png"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// FULL_HEART:
|
||||
BufferedImage buff = mainImage.getSubimage(16, 0, 16, 16);
|
||||
for (int i = 0; i > FULL_HEART.length; i++) {
|
||||
FULL_HEART[i] = new Bild(i * 48, 0, buff);
|
||||
}
|
||||
// HALF_HEART:
|
||||
buff = mainImage.getSubimage(32, 0, 16, 16);
|
||||
HALF_HEART = new Bild(0, 0, buff);
|
||||
for (int i = 0; i > EMPTY_HEART.length; i++) {
|
||||
EMPTY_HEART[i] = new Bild(i * 48, 0, buff);
|
||||
}
|
||||
// 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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
//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]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,10 +21,10 @@ public class Main extends Game {
|
||||
|
||||
// Welt initialisieren und Spieler hinzufügen
|
||||
world = new World();
|
||||
// hud = new HUD();
|
||||
hud = new HUD();
|
||||
// die Welt zu EA hinzufügen
|
||||
wurzel.add(world);
|
||||
// wurzel.add(hud);
|
||||
wurzel.add(hud);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,11 +2,8 @@ package main;
|
||||
|
||||
import ea.Knoten;
|
||||
import main.entities.Entity;
|
||||
import main.entities.Player;
|
||||
import main.entities.Snake;
|
||||
import main.entities.Spider;
|
||||
import main.maps.Corridor;
|
||||
import main.maps.Map;
|
||||
import main.maps.TestMap;
|
||||
|
||||
/**
|
||||
* Hier werden alle Maps gespeichert.
|
||||
|
||||
Reference in New Issue
Block a user