From f8fcd35e24bd3f022e9f0e2a2f50ce1103caeca2 Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Mon, 4 May 2020 20:58:27 +0200 Subject: [PATCH] =?UTF-8?q?ge=C3=B6lakdsjf=C3=B6alj?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dungeoncrawler/control/Controller.java | 43 +++++++++++-------- .../com/dungeoncrawler/view/EntitySprite.java | 3 +- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 967cdcf..f2507f4 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -135,30 +135,31 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ boolean overlaps = false; boolean delete = false; - if(Intersector.overlaps(tempObject.getCollisionSprite(), playerSprite)){ - overlaps = true; - - if(d.getCurrentEntities()[i].getId() == 2){ + + if(d.getCurrentEntities()[i].getId() == 2){ + if(Intersector.overlaps(tempObject.getCollisionSprite(), gs.getPlayer().getFullCollisionSprite())){ + overlaps = true; delete = true; d.getCurrentEntities()[i].attack(d.getPlayer()); } - else{ - if(d.getCurrentEntities()[i].getId() != 0){ - switch(gs.entitySprites[i].getAttackState()){ - case 0: - gs.entitySprites[i].startAttack(); - break; - case 1: - break; - case 2: - d.getCurrentEntities()[i].attack(d.getPlayer()); - gs.entitySprites[i].resetAttackState(); - break; - default: - } + } + else if(Intersector.overlaps(tempObject.getCollisionSprite(), playerSprite)){ + + overlaps = true; + if(d.getCurrentEntities()[i].getId() != 0){ + switch(gs.entitySprites[i].getAttackState()){ + case 0: + gs.entitySprites[i].startAttack(); + break; + case 1: + break; + case 2: + d.getCurrentEntities()[i].attack(d.getPlayer()); + gs.entitySprites[i].resetAttackState(); + break; + default: } } - } else{ for(RectangleMapObject rectangleObject : mapObjects.getByType(RectangleMapObject.class)){ @@ -187,6 +188,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ } + if(gs.entitySprites[i].getAttackState() == 2 && d.getCurrentEntities()[i].getId() != 0){ + gs.entitySprites[i].resetAttackState(); + } + if(overlaps){ d.getCurrentEntities()[i].setxPos(x); d.getCurrentEntities()[i].setyPos(y); diff --git a/core/src/com/dungeoncrawler/view/EntitySprite.java b/core/src/com/dungeoncrawler/view/EntitySprite.java index 7e5696e..61b61a7 100644 --- a/core/src/com/dungeoncrawler/view/EntitySprite.java +++ b/core/src/com/dungeoncrawler/view/EntitySprite.java @@ -43,7 +43,7 @@ public class EntitySprite { collisionSprite = new Rectangle(0, 0, 32, 16); } - fullCollisionSprite = sprites[0].getBoundingRectangle(); + this.fullCollisionSprite = sprites[0].getBoundingRectangle(); } public void updateAnimation(Entity e){ @@ -134,6 +134,7 @@ public class EntitySprite { public void updateCollision(int xPos, int yPos){ collisionSprite.setPosition(xPos, yPos); + getFullCollisionSprite().setPosition(xPos, yPos); } public void updateCollisionX(int xPos){ collisionSprite.setX(xPos);