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