diff --git a/Zoelda/src/main/Main.java b/Zoelda/src/main/Main.java index 872b4a6..24ef6d8 100644 --- a/Zoelda/src/main/Main.java +++ b/Zoelda/src/main/Main.java @@ -11,8 +11,8 @@ public class Main extends Game { private World world; - public static final int WIDTH = 1440; // Fensterbreite - public static final int HEIGHT = 1056; // Fensterhöhe + public static final int WIDTH = 1000; // Fensterbreite + public static final int HEIGHT = 800; // Fensterhöhe public Main() { super(WIDTH, HEIGHT); diff --git a/Zoelda/src/main/World.java b/Zoelda/src/main/World.java index f1d4903..ce2ffe7 100644 --- a/Zoelda/src/main/World.java +++ b/Zoelda/src/main/World.java @@ -5,7 +5,6 @@ import main.entities.Entity; import main.entities.Player; import main.entities.Snake; import main.entities.Spider; -import main.maps.Corridor; import main.maps.Map; import main.maps.TestMap; @@ -14,7 +13,7 @@ import main.maps.TestMap; */ public class World extends Knoten { - public static final int SCALE_FACTOR = 6; // Der Basis Zoomfaktor + 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 private Map currentMap; // Die Map die aktuell angezeigt werden soll. diff --git a/Zoelda/src/main/entities/Entity.java b/Zoelda/src/main/entities/Entity.java index 1651a5b..3a8dd90 100644 --- a/Zoelda/src/main/entities/Entity.java +++ b/Zoelda/src/main/entities/Entity.java @@ -105,7 +105,7 @@ public abstract class Entity implements Ticker { * @return die entifernung zu diesem Entity */ public float dist(Entity e) { - return (float) Math.sqrt(e.posX * e.posX + posY * posY); + return (float) Math.sqrt((e.posX - posX) * (e.posX - posX) + (e.posY - posY) * (e.posY - posY)); } } diff --git a/Zoelda/src/main/entities/Player.java b/Zoelda/src/main/entities/Player.java index ec50501..fe18eb1 100644 --- a/Zoelda/src/main/entities/Player.java +++ b/Zoelda/src/main/entities/Player.java @@ -1,6 +1,5 @@ package main.entities; -import ea.Farbe; import ea.Taste; import main.Main; import main.SheetLoader; diff --git a/Zoelda/src/main/entities/Snake.java b/Zoelda/src/main/entities/Snake.java index 6af69f9..5ff1cbf 100644 --- a/Zoelda/src/main/entities/Snake.java +++ b/Zoelda/src/main/entities/Snake.java @@ -9,7 +9,8 @@ import main.Tile; public class Snake extends LivingEntity { - private static SheetLoader loader = new SheetLoader("/res/images/snake_spritesheet_calciumtrice.png", 32, 32, new int[] { 10, 10, 10, 10, 10 }); + private static SheetLoader loader = new SheetLoader("/res/images/snake_spritesheet_calciumtrice.png", 32, 32, + new int[] { 10, 10, 10, 10, 10 }); public Snake() { super(loader.getFigur(0), "idle"); @@ -40,17 +41,24 @@ public class Snake extends LivingEntity { } } if (nearestPlayer != null && lineOfSightClear(nearestPlayer)) { - Vektor toPlayer = new Vektor(nearestPlayer.posX - posX, nearestPlayer.posY - posY); - toPlayer = toPlayer.normiert(); - velX += toPlayer.x * accelleration; - velY += toPlayer.y * accelleration; - zustandSetzen("walk"); - } else { + if (dist(nearestPlayer) < 1f) { + zustandSetzen("attack"); + } else { + Vektor toPlayer = new Vektor(nearestPlayer.posX - posX, nearestPlayer.posY - posY); + toPlayer = toPlayer.normiert(); + velX += toPlayer.x * accelleration; + velY += toPlayer.y * accelleration; + zustandSetzen("walk"); + } + + } else + + { if (actionFigur.aktuellesVerhalten().equals("walk")) { zustandSetzen("lost_sight"); } - if (actionFigur.aktuellesVerhalten().equals("lost_sight") - && actionFigur.aktuelleFigur().aktuellesBild() == actionFigur.aktuelleFigur().animation().length - 1) { + if (actionFigur.aktuellesVerhalten().equals("lost_sight") && actionFigur.aktuelleFigur() + .aktuellesBild() == actionFigur.aktuelleFigur().animation().length - 1) { actionFigur.aktuelleFigur().animationsBildSetzen(0); zustandSetzen("idle"); }