From 8cdf1c22d4e4b650a0d8202478d13180b1e9a016 Mon Sep 17 00:00:00 2001 From: maxlm128 Date: Sun, 27 Jun 2021 20:29:00 +0200 Subject: [PATCH] Added new Prototype for Heart HUD --- Zoelda/src/main/HUD.java | 96 +++++---------------- Zoelda/src/main/entities/LivingEntity.java | 2 +- Zoelda/src/res/images/herzen.png | Bin 0 -> 327 bytes 3 files changed, 23 insertions(+), 75 deletions(-) create mode 100644 Zoelda/src/res/images/herzen.png diff --git a/Zoelda/src/main/HUD.java b/Zoelda/src/main/HUD.java index 0f51778..77761e4 100644 --- a/Zoelda/src/main/HUD.java +++ b/Zoelda/src/main/HUD.java @@ -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(); } } diff --git a/Zoelda/src/main/entities/LivingEntity.java b/Zoelda/src/main/entities/LivingEntity.java index 87fcc99..361dc66 100644 --- a/Zoelda/src/main/entities/LivingEntity.java +++ b/Zoelda/src/main/entities/LivingEntity.java @@ -67,7 +67,7 @@ public abstract class LivingEntity extends Entity { actionFigur.zustandSetzen(name); } - protected float getHealthPoints() { + public float getHealthPoints() { return hp; } diff --git a/Zoelda/src/res/images/herzen.png b/Zoelda/src/res/images/herzen.png new file mode 100644 index 0000000000000000000000000000000000000000..c64d5e7fef160260d3e2afea2e8973014faf0e77 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!3-qz8@W<}6k~CayA#8@b22Z19F}xPUq=Rp zjs4tz5?O(K{s5m4*C*C4-%6_%sToU%r~<`A%9=q2vX%t-1^)*EhTq%xf`I~@1s;*b z3=DjSK$uZf!>a)(xWUuKF~q`u?SyE)W&<9U$q#Jh--eV${R^eq3RIcB?8wQ zt)5Q_KYIAoieu3qwraF+x<;`-n)X$xq$XYWZgRS(jPtS#