sanke damage animation attempt

This commit is contained in:
Tim
2021-06-24 11:17:24 +02:00
parent 14e85df71c
commit 3b424d4c98
2 changed files with 29 additions and 14 deletions

View File

@@ -3,6 +3,7 @@ package main.entities;
import java.util.ArrayList;
import ea.Taste;
import ea.Vektor;
import main.Main;
import main.SheetLoader;
@@ -75,24 +76,30 @@ public class Player extends LivingEntity {
if (Main.instance.tasteGedrueckt(Taste.F)) {
zustandSetzen("die");
}
if (actionFigur.aktuellesVerhalten().equals("swipe") && actionFigur.aktuelleFigur().aktuellesBild() == 1) {
ArrayList<Entity> entities = Main.instance.getWorld().getCurrentMap().getEntities();
for (Entity e : entities) {
if (e instanceof LivingEntity) {
((LivingEntity) e).takeDamage(0.1f);
}
}
}
}
// auf Kollisionen prüfen
checkTileCollisions(Main.instance.getWorld().getCurrentMap());
// LivingEntity auch updaten lassen
super.update();
} else {
velX = 0;
velY = 0;
}
// auf Kollisionen prüfen
checkTileCollisions(Main.instance.getWorld().getCurrentMap());
if (actionFigur.aktuellesVerhalten().equals("swipe") && actionFigur.aktuelleFigur().aktuellesBild() == 1) {
ArrayList<Entity> entities = Main.instance.getWorld().getCurrentMap().getEntities();
for (Entity e : entities) {
if (e instanceof LivingEntity && e != this) {
LivingEntity le = (LivingEntity) e;
Vektor toE = vectorToEntity(le);
toE = toE.normiert();
le.velX += toE.x * 0.05f;
le.velY += toE.y * 0.05f;
le.takeDamage(0.1f);
}
}
}
}
}

View File

@@ -5,7 +5,6 @@ import java.util.ArrayList;
import ea.Vektor;
import main.Main;
import main.SheetLoader;
import main.Tile;
public class Snake extends LivingEntity {
@@ -41,7 +40,7 @@ public class Snake extends LivingEntity {
}
}
}
if (nearestPlayer != null && lineOfSightClear(nearestPlayer)) {
if (nearestPlayer != null && lineOfSightClear(nearestPlayer) && !actionFigur.aktuellesVerhalten().equals("damage")) {
if (dist(nearestPlayer) < 1f) {
zustandSetzen("attack");
} else {
@@ -64,7 +63,16 @@ public class Snake extends LivingEntity {
zustandSetzen("idle");
}
}
if (actionFigur.aktuellesVerhalten().equals("damage") && actionFigur.aktuelleFigur().aktuellesBild() < actionFigur.aktuelleFigur().animation().length - 1){
zustandSetzen("walk");
}
this.checkTileCollisions(Main.instance.getWorld().getCurrentMap());
super.update();
}
@Override
public void takeDamage(float damage) {
zustandSetzen("damage");
super.takeDamage(damage);
}
}