From fc17421e0bdbd1dbddfd4742ad8a6948674bd668 Mon Sep 17 00:00:00 2001 From: Artem Didytschuk Date: Mon, 28 Jun 2021 09:37:08 +0200 Subject: [PATCH 1/2] Inventory HUD Implementation --- Zoelda/src/main/HUD.java | 15 +++++++++------ Zoelda/src/main/World.java | 6 +++--- .../res/images/{Inventar.png => inventory.png} | Bin 3 files changed, 12 insertions(+), 9 deletions(-) rename Zoelda/src/res/images/{Inventar.png => inventory.png} (100%) diff --git a/Zoelda/src/main/HUD.java b/Zoelda/src/main/HUD.java index c8e5db6..d998271 100644 --- a/Zoelda/src/main/HUD.java +++ b/Zoelda/src/main/HUD.java @@ -1,17 +1,19 @@ package main; -import java.awt.Graphics2D; -import java.awt.image.BufferedImage; -import java.io.IOException; -import javax.imageio.ImageIO; import ea.BoundingRechteck; import ea.Knoten; import ea.Ticker; +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.IOException; + public class HUD extends Knoten implements Ticker { private BufferedImage volles_Herz; private BufferedImage halbes_Herz; private BufferedImage leeres_Herz; + private BufferedImage inventory; private BufferedImage hauptBild; private BufferedImage[] HPLeiste; private final static int SCALE = 50; @@ -22,6 +24,7 @@ public class HUD extends Knoten implements Ticker { Main.instance.manager.anmelden(this, 50); try { hauptBild = ImageIO.read(HUD.class.getResourceAsStream("/res/images/icons.png")); + inventory = ImageIO.read(HUD.class.getResourceAsStream("/res/images/inventory.png")); } catch (IOException e) { e.printStackTrace(); } @@ -49,7 +52,6 @@ public class HUD extends Knoten implements Ticker { float localeHP; for (int i = 0; i < HPLeiste.length; i++) { localeHP = Main.instance.getWorld().getPlayer().getHP(); - ; localeHP -= ((float) i) * (1f / HPLeiste.length); if (localeHP <= 0f) { HPLeiste[i] = leeres_Herz; @@ -65,8 +67,9 @@ public class HUD extends Knoten implements Ticker { @Override public void zeichnen(Graphics2D g, BoundingRechteck r) { for (int i = 0; i < HPLeiste.length; i++) { - g.drawImage(HPLeiste[i], i * SCALE, 0, SCALE, SCALE, null); + g.drawImage(HPLeiste[i], (i+2) * SCALE, 0, SCALE, SCALE, null); } + g.drawImage(inventory,0,0,SCALE*2,SCALE*2,null); } } diff --git a/Zoelda/src/main/World.java b/Zoelda/src/main/World.java index bbf2589..f7ab4ec 100644 --- a/Zoelda/src/main/World.java +++ b/Zoelda/src/main/World.java @@ -1,18 +1,18 @@ package main; -import java.util.ArrayList; - import ea.Knoten; import main.entities.player.Player; import main.maps.ImageMap; import main.maps.Map; +import java.util.ArrayList; + /** * Hier werden alle Maps gespeichert. */ public class World extends Knoten { - public static final int SCALE_FACTOR = 6; // Der Basis Zoomfaktor + public static final int SCALE_FACTOR = 4; // Der Basis Zoomfaktor public static final int SCALE = SCALE_FACTOR * Tile.getSize(); // Eine Gameunit ist so viele pixel lang private Map currentMap; // Die Map die aktuell angezeigt werden soll. diff --git a/Zoelda/src/res/images/Inventar.png b/Zoelda/src/res/images/inventory.png similarity index 100% rename from Zoelda/src/res/images/Inventar.png rename to Zoelda/src/res/images/inventory.png From 595b9b26d970b0a008aebcb9aa77d2dd8851724a Mon Sep 17 00:00:00 2001 From: "maxim.derksen" Date: Mon, 28 Jun 2021 09:37:25 +0200 Subject: [PATCH 2/2] Shaking Hearts added --- Zoelda/src/main/HUD.java | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/Zoelda/src/main/HUD.java b/Zoelda/src/main/HUD.java index c8e5db6..225e20f 100644 --- a/Zoelda/src/main/HUD.java +++ b/Zoelda/src/main/HUD.java @@ -15,11 +15,13 @@ public class HUD extends Knoten implements Ticker { private BufferedImage hauptBild; private BufferedImage[] HPLeiste; private final static int SCALE = 50; + private boolean shakingSwitch; + private float HPVel; public HUD() { // inizialisieren der Variablen, laden der Bilder und für den ticker anmelden HPLeiste = new BufferedImage[3]; - Main.instance.manager.anmelden(this, 50); + Main.instance.manager.anmelden(this, 200); try { hauptBild = ImageIO.read(HUD.class.getResourceAsStream("/res/images/icons.png")); } catch (IOException e) { @@ -39,8 +41,22 @@ public class HUD extends Knoten implements Ticker { HPLeiste[1] = volles_Herz; HPLeiste[2] = volles_Herz; } + + private int changeY () { + int y = 0; + if(Main.instance.getWorld().getPlayer().getHP() < 0.33f) { + shakingSwitch = !shakingSwitch; + if(shakingSwitch == true) { + return y+=3; + } + } + if(HPVel > 0) { + + } + return y; + } - //wird alle 50ms ausgeführt: + //wird alle 200ms ausgeführt: @Override public void tick() { // teilt den Wert der HP in Teile auf, welche der Anzahl der Herzen entspricht @@ -65,7 +81,7 @@ public class HUD extends Knoten implements Ticker { @Override public void zeichnen(Graphics2D g, BoundingRechteck r) { for (int i = 0; i < HPLeiste.length; i++) { - g.drawImage(HPLeiste[i], i * SCALE, 0, SCALE, SCALE, null); + g.drawImage(HPLeiste[i], i * SCALE, changeY(), SCALE, SCALE, null); } }