diff --git a/Zoelda/src/main/World.java b/Zoelda/src/main/World.java index 19b2e71..a9ecb4b 100644 --- a/Zoelda/src/main/World.java +++ b/Zoelda/src/main/World.java @@ -1,13 +1,7 @@ package main; import ea.Knoten; -import main.entities.Entity; -import main.entities.Snake; -import main.entities.Spider; -import main.maps.Corridor; -import main.entities.player.Player; import main.maps.Map; -import main.maps.TestMap; import main.maps.TutorialMap; /** @@ -24,31 +18,8 @@ public class World extends Knoten { // Map initialisieren currentMap = new TutorialMap(); - // Map zu EA hinzuf�gen + // Map zu EA hinzufügen add(currentMap); - - // und Entities auch - Player player = new Player(); - add(player.actionFigur); - currentMap.getEntities().add(player); - - // und Spinnen auch - Spider spider = new Spider(); - add(spider.actionFigur); - currentMap.getEntities().add(spider); - - //und - Snake snake = new Snake(); - add(snake.actionFigur); - currentMap.getEntities().add(snake); - - currentMap.setPlayer(player); - - - // Alle Entities als ticker registrieren (triggert dann die update methoden) - for (Entity e : currentMap.getEntities()) { - Main.instance.manager.anmelden(e, 20); - } } public Map getCurrentMap() { diff --git a/Zoelda/src/main/entities/LivingEntity.java b/Zoelda/src/main/entities/LivingEntity.java index 75b4b7d..87fcc99 100644 --- a/Zoelda/src/main/entities/LivingEntity.java +++ b/Zoelda/src/main/entities/LivingEntity.java @@ -48,7 +48,6 @@ public abstract class LivingEntity extends Entity { velX = 0; velY = 0; if (actionFigur.aktuelleFigur().aktuellesBild() == actionFigur.aktuelleFigur().animation().length - 1) { - System.out.println("adasd"); deleteEntity(); } } diff --git a/Zoelda/src/main/entities/player/Player.java b/Zoelda/src/main/entities/player/Player.java index 8baa6a5..eb6f414 100644 --- a/Zoelda/src/main/entities/player/Player.java +++ b/Zoelda/src/main/entities/player/Player.java @@ -1,5 +1,7 @@ package main.entities.player; +import java.util.ArrayList; + import ea.Taste; import ea.Vektor; import main.Main; @@ -7,9 +9,6 @@ import main.SheetLoader; import main.entities.Entity; import main.entities.LivingEntity; -import java.awt.event.ActionListener; -import java.util.ArrayList; - public class Player extends LivingEntity { private static SheetLoader loader = new SheetLoader("/res/images/player_sprite_sheet.png", 64, 32, new int[] { 5, 8, 7, 6, 2, 5, 4, 7 }); @@ -107,7 +106,7 @@ public class Player extends LivingEntity { if ((toE.x > 0 && !side) || (toE.x <= 0 && side)) { le.setVelX(le.getVelX() + toE.x * 0.05f); le.setVelY(le.getVelY() + toE.y * 0.05f); - le.takeDamage(0.1f, this); + le.takeDamage(0.4f, this); } } } diff --git a/Zoelda/src/main/maps/Map.java b/Zoelda/src/main/maps/Map.java index 4c57e1e..3057a95 100644 --- a/Zoelda/src/main/maps/Map.java +++ b/Zoelda/src/main/maps/Map.java @@ -18,17 +18,18 @@ public abstract class Map extends Knoten implements Ticker { protected Tile[][] map; // Die Tiles der map in einem 2D Array. private ArrayList entities; private Player player; - + public Map(int width, int height) { map = new Tile[width][height]; entities = new ArrayList<>(100); - + Main.instance.manager.anmelden(this, 20); } - + /** - * Gibt das Tile-Objekt an der gegebenen Koordinate zurück. (nur wenn es existiert) + * Gibt das Tile-Objekt an der gegebenen Koordinate zurück. (nur wenn es + * existiert) */ public Tile getTile(int x, int y) { if (x >= 0 && x < map.length && y >= 0 && y < map[0].length) { @@ -36,24 +37,25 @@ public abstract class Map extends Knoten implements Ticker { } return null; } - + @Override public void tick() { for (int i = 0; i < entities.size(); i++) { Entity e = entities.get(i); - if (e instanceof LivingEntity) { - if (e.isReadyToDelete()) { - Main.instance.manager.abmelden(e); - entities.remove(e); + if (e.isReadyToDelete()) { + if (e instanceof LivingEntity) { + entfernen(((LivingEntity) e).actionFigur); } + Main.instance.manager.abmelden(e); + entities.remove(e); } } } - + public int getWidth() { return map.length; } - + public int getHeight() { return map[0].length; } @@ -61,7 +63,7 @@ public abstract class Map extends Knoten implements Ticker { public ArrayList getEntities() { return entities; } - + public Player getPlayer() { return player; } @@ -69,4 +71,10 @@ public abstract class Map extends Knoten implements Ticker { public void setPlayer(Player player) { this.player = player; } + + public void registerEntities() { + for (Entity e : getEntities()) { + Main.instance.manager.anmelden(e, 20); + } + } } diff --git a/Zoelda/src/main/maps/TutorialMap.java b/Zoelda/src/main/maps/TutorialMap.java index 097b998..168cce2 100644 --- a/Zoelda/src/main/maps/TutorialMap.java +++ b/Zoelda/src/main/maps/TutorialMap.java @@ -1,6 +1,9 @@ package main.maps; import main.Tile; +import main.entities.Snake; +import main.entities.Spider; +import main.entities.player.Player; public class TutorialMap extends Map { @@ -25,5 +28,24 @@ public class TutorialMap extends Map { } } } + + Player player = new Player(); + add(player.actionFigur); + getEntities().add(player); + + // und Spinnen auch + Spider spider = new Spider(); + add(spider.actionFigur); + getEntities().add(spider); + + //und + Snake snake = new Snake(); + add(snake.actionFigur); + getEntities().add(snake); + + setPlayer(player); + + // Alle Entities als ticker registrieren (triggert dann die update methoden) + registerEntities(); } }