diff --git a/Zoelda/src/main/Malin.java b/Zoelda/src/main/Malin.java index 901014d..406243b 100644 --- a/Zoelda/src/main/Malin.java +++ b/Zoelda/src/main/Malin.java @@ -10,7 +10,6 @@ import main.entities.Player; public class Malin extends Game { private World world; - private Player player; public static final int WIDTH = 1440; // Fensterbreite public static final int HEIGHT = 1056; // Fensterhöhe @@ -18,17 +17,10 @@ public class Malin extends Game { public Malin() { super(WIDTH, HEIGHT); - // Lönk - player = new Player(this); - // Welt initialisieren und Spieler hinzufügen - world = new World(player); + world = new World(this); // die Welt zu EA hinzufügen wurzel.add(world); - - Manager manager = new Manager(); - // Den Spieler als ticker registrieren (triggert dann die update methoden) - manager.anmelden(player, 20); } @Override diff --git a/Zoelda/src/main/World.java b/Zoelda/src/main/World.java index 51fc559..b793487 100644 --- a/Zoelda/src/main/World.java +++ b/Zoelda/src/main/World.java @@ -1,7 +1,9 @@ package main; import ea.Knoten; +import ea.Manager; import main.entities.Player; +import main.entities.Spider; import main.maps.Map; import main.maps.TestMap; @@ -15,14 +17,20 @@ public class World extends Knoten { private Map currentMap; // Die Map die aktuell angezeigt werden soll. - public World(Player player) { - + public World(Malin main) { + Player player = new Player(main); // Map initialisieren currentMap = new TestMap(); // Map zu EA hinzufügen add(currentMap); // und Spieler auch add(player.actionFigur); + //und Spinnen auch + add(new Spider(main).actionFigur); + + Manager manager = new Manager(); + // Den Spieler als ticker registrieren (triggert dann die update methoden) + manager.anmelden(player, 20); } public Map getCurrentMap() { diff --git a/Zoelda/src/main/LivingEntity.java b/Zoelda/src/main/entities/LivingEntity.java similarity index 95% rename from Zoelda/src/main/LivingEntity.java rename to Zoelda/src/main/entities/LivingEntity.java index 91cb9bf..d3e09fd 100644 --- a/Zoelda/src/main/LivingEntity.java +++ b/Zoelda/src/main/entities/LivingEntity.java @@ -1,8 +1,8 @@ -package main; +package main.entities; import ea.ActionFigur; import ea.Figur; -import main.entities.Entity; +import main.World; /* * Alles was zustände hat und sich Bewegen kann, ist ein LivingEntity. @@ -10,7 +10,7 @@ import main.entities.Entity; public class LivingEntity extends Entity { protected boolean side; // true = gespiegelt, false = nicht - protected ActionFigur actionFigur; // Sprite des Entities + public ActionFigur actionFigur; // Sprite des Entities protected float spriteScale = 1f; // Skalierung des Sprites protected float spriteOffsetX, spriteOffsetY; // Offset des Sprites. Hier kann man die relative render-Position nachjustieren. protected float hp; //hp des Entitys diff --git a/Zoelda/src/main/entities/Player.java b/Zoelda/src/main/entities/Player.java index ffea943..1e16d4e 100644 --- a/Zoelda/src/main/entities/Player.java +++ b/Zoelda/src/main/entities/Player.java @@ -1,7 +1,6 @@ package main.entities; import ea.Taste; -import main.LivingEntity; import main.Malin; import main.SheetLoader; diff --git a/Zoelda/src/main/entities/Spider.java b/Zoelda/src/main/entities/Spider.java new file mode 100644 index 0000000..71102ab --- /dev/null +++ b/Zoelda/src/main/entities/Spider.java @@ -0,0 +1,39 @@ +package main.entities; + +import ea.Figur; +import main.Malin; +import main.SheetLoader; + +public class Spider extends LivingEntity { + + private Malin main; // Referenz auf die main Klasse. Wird später für den Keyboardinput verwendet + private static SheetLoader loader = new SheetLoader("/res/images/spider_sprite_sheet.png", 64, 32, new int[] {5, 8, 7, 6, 2, 5, 4, 7}); + + public Spider(Malin main) { + super(loader.getFigur(5), "walk"); + this.main = main; + + width = 0.7f; + height = 0.8f; + spriteOffsetY = -0.14f; + spriteScale = 0.8f; + posX = 4f; + posY = 4f; + hp = 10f; + + } + protected void update() { + + // auf Kollisionen prüfen + checkTileCollisions(main.getWorld().getCurrentMap()); + // LivingEntity auch updaten lassen + super.update(); + velX = 0; + velY = 0; + + } + +} + + + diff --git a/Zoelda/src/res/images/spider_sprite_sheet.png b/Zoelda/src/res/images/spider_sprite_sheet.png new file mode 100644 index 0000000..89de203 Binary files /dev/null and b/Zoelda/src/res/images/spider_sprite_sheet.png differ