Added special classes for Inventory and Herzen
This commit is contained in:
parent
23eba51e5c
commit
1f1f5bbc68
|
@ -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 ea.Knoten;
|
||||
import ea.Ticker;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
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 halbes_Herz;
|
||||
private BufferedImage leeres_Herz;
|
||||
private BufferedImage inventory;
|
||||
private BufferedImage hauptBild;
|
||||
private BufferedImage[] HPLeiste;
|
||||
private final static int SCALE = 50;
|
||||
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
|
||||
HPLeiste = new BufferedImage[3];
|
||||
Main.instance.manager.anmelden(this, 200);
|
||||
HPLeiste = new BufferedImage[5];
|
||||
HPLeisteY = new int [HPLeiste.length];
|
||||
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();
|
||||
}
|
||||
|
@ -44,27 +47,38 @@ public class HUD extends Knoten implements Ticker {
|
|||
HPLeiste[1] = volles_Herz;
|
||||
HPLeiste[2] = volles_Herz;
|
||||
}
|
||||
|
||||
private int shakeY() {
|
||||
shakingSwitch = !shakingSwitch;
|
||||
if (shakingSwitch == true) {
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int changeY () {
|
||||
int y = 0;
|
||||
if(Main.instance.getWorld().getPlayer().getHP() < 0.33f) {
|
||||
shakingSwitch = !shakingSwitch;
|
||||
if(shakingSwitch == true) {
|
||||
return y+=3;
|
||||
private int regenY() {
|
||||
if (HPVel > 0) {
|
||||
if (counter < HPLeiste.length + 1) {
|
||||
counter++;
|
||||
if (counter * 4 < HPLeiste.length + 1) {
|
||||
return 3;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
counter = 0;
|
||||
}
|
||||
}
|
||||
if(HPVel > 0) {
|
||||
|
||||
}
|
||||
return y;
|
||||
return 0;
|
||||
}
|
||||
|
||||
//wird alle 200ms ausgeführt:
|
||||
@Override
|
||||
// wird alle 200ms ausgeführt:
|
||||
public void tick() {
|
||||
// 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,
|
||||
// halb oder leer ist (BIG BRAIN):
|
||||
HPVel = Main.instance.getWorld().getPlayer().getHP() - lastHP;
|
||||
lastHP = Main.instance.getWorld().getPlayer().getHP();
|
||||
float localeHP;
|
||||
for (int i = 0; i < HPLeiste.length; i++) {
|
||||
localeHP = Main.instance.getWorld().getPlayer().getHP();
|
||||
|
@ -77,15 +91,24 @@ public class HUD extends Knoten implements Ticker {
|
|||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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,12 +1,14 @@
|
|||
package main;
|
||||
|
||||
import ea.Game;
|
||||
import main.HUD.HUD;
|
||||
import main.HUD.Herzen;
|
||||
|
||||
/**
|
||||
* Von hier wird alles initialisiert. Das ist die höchste Klasse.
|
||||
*/
|
||||
public class Main extends Game {
|
||||
|
||||
|
||||
public static Main instance;
|
||||
|
||||
private World world;
|
||||
|
@ -16,11 +18,10 @@ public class Main extends Game {
|
|||
super(World.SCALE * 15, World.SCALE * 11, 16);
|
||||
instance = this;
|
||||
|
||||
// Welt initialisieren und Spieler hinzufügen
|
||||
// Welt initialisieren und Spieler hinzufügen und die Welt zu EA hinzufügen
|
||||
world = new World();
|
||||
hud = new HUD();
|
||||
// die Welt zu EA hinzufügen
|
||||
wurzel.add(world);
|
||||
hud = new HUD();
|
||||
wurzel.add(hud);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue