Added special classes for Inventory and Herzen
This commit is contained in:
28
Zoelda/src/main/HUD/HUD.java
Normal file
28
Zoelda/src/main/HUD/HUD.java
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
package main.HUD;
|
||||||
|
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
|
||||||
|
import ea.BoundingRechteck;
|
||||||
|
import ea.Knoten;
|
||||||
|
import main.Main;
|
||||||
|
|
||||||
|
public class HUD extends Knoten{
|
||||||
|
|
||||||
|
public final Herzen herzen;
|
||||||
|
public final Inventory inventory;
|
||||||
|
|
||||||
|
|
||||||
|
public HUD() {
|
||||||
|
herzen = new Herzen();
|
||||||
|
inventory = new Inventory();
|
||||||
|
add(herzen);
|
||||||
|
add(inventory);
|
||||||
|
Main.instance.manager.anmelden(herzen, 60);
|
||||||
|
Main.instance.manager.anmelden(inventory, 50);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void zeichnen(Graphics2D g, BoundingRechteck r) {
|
||||||
|
herzen.zeichnen(g);
|
||||||
|
inventory.zeichnen(g);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,32 +1,35 @@
|
|||||||
package main;
|
package main.HUD;
|
||||||
|
|
||||||
import ea.BoundingRechteck;
|
import java.awt.Graphics2D;
|
||||||
import ea.Knoten;
|
|
||||||
import ea.Ticker;
|
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
|
||||||
import java.awt.*;
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class HUD extends Knoten implements Ticker {
|
import javax.imageio.ImageIO;
|
||||||
|
|
||||||
|
import ea.Knoten;
|
||||||
|
import ea.Ticker;
|
||||||
|
import main.Main;
|
||||||
|
|
||||||
|
public class Herzen extends Knoten implements Ticker{
|
||||||
|
private final static int SCALE = 50;
|
||||||
private BufferedImage volles_Herz;
|
private BufferedImage volles_Herz;
|
||||||
private BufferedImage halbes_Herz;
|
private BufferedImage halbes_Herz;
|
||||||
private BufferedImage leeres_Herz;
|
private BufferedImage leeres_Herz;
|
||||||
private BufferedImage inventory;
|
|
||||||
private BufferedImage hauptBild;
|
private BufferedImage hauptBild;
|
||||||
private BufferedImage[] HPLeiste;
|
private BufferedImage[] HPLeiste;
|
||||||
private final static int SCALE = 50;
|
|
||||||
private boolean shakingSwitch;
|
private boolean shakingSwitch;
|
||||||
private float HPVel;
|
private float HPVel = 0.3f;
|
||||||
|
private int counter = 0;
|
||||||
|
private float lastHP;
|
||||||
|
private int y;
|
||||||
|
private int HPLeisteY[];
|
||||||
|
|
||||||
public HUD() {
|
public Herzen() {
|
||||||
// inizialisieren der Variablen, laden der Bilder und für den ticker anmelden
|
// inizialisieren der Variablen, laden der Bilder und für den ticker anmelden
|
||||||
HPLeiste = new BufferedImage[3];
|
HPLeiste = new BufferedImage[5];
|
||||||
Main.instance.manager.anmelden(this, 200);
|
HPLeisteY = new int [HPLeiste.length];
|
||||||
try {
|
try {
|
||||||
hauptBild = ImageIO.read(HUD.class.getResourceAsStream("/res/images/icons.png"));
|
hauptBild = ImageIO.read(HUD.class.getResourceAsStream("/res/images/icons.png"));
|
||||||
inventory = ImageIO.read(HUD.class.getResourceAsStream("/res/images/inventory.png"));
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -45,26 +48,37 @@ public class HUD extends Knoten implements Ticker {
|
|||||||
HPLeiste[2] = volles_Herz;
|
HPLeiste[2] = volles_Herz;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int changeY () {
|
private int shakeY() {
|
||||||
int y = 0;
|
shakingSwitch = !shakingSwitch;
|
||||||
if(Main.instance.getWorld().getPlayer().getHP() < 0.33f) {
|
if (shakingSwitch == true) {
|
||||||
shakingSwitch = !shakingSwitch;
|
return 3;
|
||||||
if(shakingSwitch == true) {
|
|
||||||
return y+=3;
|
|
||||||
}
|
}
|
||||||
}
|
return 0;
|
||||||
if(HPVel > 0) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return y;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//wird alle 200ms ausgeführt:
|
private int regenY() {
|
||||||
@Override
|
if (HPVel > 0) {
|
||||||
|
if (counter < HPLeiste.length + 1) {
|
||||||
|
counter++;
|
||||||
|
if (counter * 4 < HPLeiste.length + 1) {
|
||||||
|
return 3;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
counter = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// wird alle 200ms ausgeführt:
|
||||||
public void tick() {
|
public void tick() {
|
||||||
// teilt den Wert der HP in Teile auf, welche der Anzahl der Herzen entspricht
|
// teilt den Wert der HP in Teile auf, welche der Anzahl der Herzen entspricht
|
||||||
// und prüft dann für den eigenen Teil des Herzens, ob das jeweilige Herz voll,
|
// und prüft dann für den eigenen Teil des Herzens, ob das jeweilige Herz voll,
|
||||||
// halb oder leer ist (BIG BRAIN):
|
// halb oder leer ist (BIG BRAIN):
|
||||||
|
HPVel = Main.instance.getWorld().getPlayer().getHP() - lastHP;
|
||||||
|
lastHP = Main.instance.getWorld().getPlayer().getHP();
|
||||||
float localeHP;
|
float localeHP;
|
||||||
for (int i = 0; i < HPLeiste.length; i++) {
|
for (int i = 0; i < HPLeiste.length; i++) {
|
||||||
localeHP = Main.instance.getWorld().getPlayer().getHP();
|
localeHP = Main.instance.getWorld().getPlayer().getHP();
|
||||||
@@ -77,15 +91,24 @@ public class HUD extends Knoten implements Ticker {
|
|||||||
HPLeiste[i] = volles_Herz;
|
HPLeiste[i] = volles_Herz;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if(Main.instance.getWorld().getPlayer().getHP() < 0.33f) {
|
||||||
|
y = shakeY();
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < HPLeiste.length; i++) {
|
||||||
|
HPLeisteY[i] = regenY();
|
||||||
|
}
|
||||||
|
|
||||||
//Zeichnet alle Herzen im Array HPLeiste[] auf den Bildschirm
|
|
||||||
@Override
|
|
||||||
public void zeichnen(Graphics2D g, BoundingRechteck r) {
|
|
||||||
for (int i = 0; i < HPLeiste.length; i++) {
|
|
||||||
g.drawImage(HPLeiste[i], (i+2) * SCALE, changeY(), SCALE, SCALE, null);
|
|
||||||
}
|
}
|
||||||
g.drawImage(inventory,0,0,SCALE*2,SCALE*2,null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Zeichnet alle Herzen im Array HPLeiste[] auf den Bildschirm
|
||||||
|
public void zeichnen(Graphics2D g) {
|
||||||
|
for (int i = 0; i < HPLeiste.length; i++) {
|
||||||
|
if(Main.instance.getWorld().getPlayer().getHP() < 0.33f) {
|
||||||
|
g.drawImage(HPLeiste[i], (i + 2) * SCALE, y , SCALE, SCALE, null);
|
||||||
|
} else {
|
||||||
|
g.drawImage(HPLeiste[i], (i + 2) * SCALE, HPLeisteY[i] , SCALE, SCALE, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
34
Zoelda/src/main/HUD/Inventory.java
Normal file
34
Zoelda/src/main/HUD/Inventory.java
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package main.HUD;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
public class Inventory extends Knoten implements Ticker {
|
||||||
|
|
||||||
|
private static final int SCALE = 50;
|
||||||
|
private BufferedImage inventory;
|
||||||
|
|
||||||
|
public Inventory() {
|
||||||
|
try {
|
||||||
|
inventory = ImageIO.read(HUD.class.getResourceAsStream("/res/images/inventory.png"));
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void zeichnen(Graphics2D g) {
|
||||||
|
g.drawImage(inventory, 0, 0, SCALE * 2, SCALE * 2, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// wird alle 50ms ausgeführt:
|
||||||
|
public void tick() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
package main;
|
package main;
|
||||||
|
|
||||||
import ea.Game;
|
import ea.Game;
|
||||||
|
import main.HUD.HUD;
|
||||||
|
import main.HUD.Herzen;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Von hier wird alles initialisiert. Das ist die höchste Klasse.
|
* Von hier wird alles initialisiert. Das ist die höchste Klasse.
|
||||||
@@ -16,11 +18,10 @@ public class Main extends Game {
|
|||||||
super(World.SCALE * 15, World.SCALE * 11, 16);
|
super(World.SCALE * 15, World.SCALE * 11, 16);
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
// Welt initialisieren und Spieler hinzufügen
|
// Welt initialisieren und Spieler hinzufügen und die Welt zu EA hinzufügen
|
||||||
world = new World();
|
world = new World();
|
||||||
hud = new HUD();
|
|
||||||
// die Welt zu EA hinzufügen
|
|
||||||
wurzel.add(world);
|
wurzel.add(world);
|
||||||
|
hud = new HUD();
|
||||||
wurzel.add(hud);
|
wurzel.add(hud);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user