diff --git a/Zoelda/src/main/Malin.java b/Zoelda/src/main/Malin.java index 406243b..3ca2f80 100644 --- a/Zoelda/src/main/Malin.java +++ b/Zoelda/src/main/Malin.java @@ -1,8 +1,6 @@ package main; import ea.Game; -import ea.Manager; -import main.entities.Player; /** * Von hier wird alles initialisiert. Das ist die höchste Klasse. diff --git a/Zoelda/src/main/World.java b/Zoelda/src/main/World.java index b793487..634cd73 100644 --- a/Zoelda/src/main/World.java +++ b/Zoelda/src/main/World.java @@ -1,7 +1,9 @@ package main; +import java.util.ArrayList; + import ea.Knoten; -import ea.Manager; +import main.entities.Entity; import main.entities.Player; import main.entities.Spider; import main.maps.Map; @@ -11,28 +13,38 @@ import main.maps.TestMap; * Hier werden alle Maps gespeichert. */ public class World extends Knoten { - + 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 + 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. - + private ArrayList entities; + public World(Malin main) { - Player player = new Player(main); + + entities = new ArrayList<>(100); + // Map initialisieren currentMap = new TestMap(); // Map zu EA hinzufügen add(currentMap); - // und Spieler auch + + // und Entities auch + Player player = new Player(main); 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); + entities.add(player); + + Spider spider = new Spider(main); + // und Spinnen auch + add(spider.actionFigur); + entities.add(spider); + + // Alle Entities als ticker registrieren (triggert dann die update methoden) + for (Entity e : entities) { + main.manager.anmelden(e, 20); + } } - + public Map getCurrentMap() { return currentMap; } diff --git a/Zoelda/src/main/entities/LivingEntity.java b/Zoelda/src/main/entities/LivingEntity.java index d3e09fd..0819091 100644 --- a/Zoelda/src/main/entities/LivingEntity.java +++ b/Zoelda/src/main/entities/LivingEntity.java @@ -13,7 +13,7 @@ public class LivingEntity extends Entity { 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 + protected float hp = 1f; //hp des Entitys /** * @param figur - erstes (standart) Sprite * @param name - name des Zustands diff --git a/Zoelda/src/main/entities/Player.java b/Zoelda/src/main/entities/Player.java index 1e16d4e..f1e1792 100644 --- a/Zoelda/src/main/entities/Player.java +++ b/Zoelda/src/main/entities/Player.java @@ -20,7 +20,6 @@ public class Player extends LivingEntity { spriteScale = 0.8f; posX = 4f; posY = 4f; - hp = 10f; // unterschiedliche Animationsgeschwindigkeiten // für idle diff --git a/Zoelda/src/main/entities/Spider.java b/Zoelda/src/main/entities/Spider.java index 71102ab..7fbca37 100644 --- a/Zoelda/src/main/entities/Spider.java +++ b/Zoelda/src/main/entities/Spider.java @@ -1,39 +1,35 @@ 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}); - + private static SheetLoader loader = new SheetLoader("/res/images/spider_sprite_sheet.png", 32, 32, + new int[] { 5, 6, 9, 1, 4, 3, 9, 6, 5, 6, 9, 1, 4, 3, 9, 6 }); + public Spider(Malin main) { - super(loader.getFigur(5), "walk"); + super(loader.getFigur(0), "walk"); this.main = main; - - width = 0.7f; - height = 0.8f; - spriteOffsetY = -0.14f; - spriteScale = 0.8f; - posX = 4f; - posY = 4f; - hp = 10f; - - } + + width = 0.7f; + height = 0.8f; + spriteOffsetY = -0.14f; + spriteScale = 0.8f; + posX = 4f; + posY = 4f; + } + protected void update() { - + // auf Kollisionen prüfen checkTileCollisions(main.getWorld().getCurrentMap()); // LivingEntity auch updaten lassen super.update(); - velX = 0; - velY = 0; - + velX = 0; + velY = 0; + } - + } - - -