master
Jonathan Hager 6 years ago
parent 275f38a4d7
commit 8ebb0e3101

@ -117,8 +117,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
int x = (int) temp.getxPos();
int y = (int) temp.getyPos();
Entity arrow = d.getCurrentEntities()[i].move((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos());
if(arrow != null && gs.entitySprites[i].getAttackState() == 0){
boolean attacks = d.getCurrentEntities()[i].move((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos());
if(attacks && gs.entitySprites[i].getAttackState() == 0){
gs.entitySprites[i].startAttack();
}
@ -188,9 +189,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
gs.entitySprites[i] = tempObject;
if(arrow != null && gs.entitySprites[i].getAttackState() == 2){
if(d.getCurrentEntities()[i].getId() == 0 && gs.entitySprites[i].getAttackState() == 2){
for(int k = 5; k < d.getCurrentEntities().length; k++){
if(d.getCurrentEntities()[k] == null){
Entity arrow = d.getCurrentEntities()[i].shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos());
d.getCurrentEntities()[k] = arrow;
gs.generateNewEntitySprite(arrow, k);
gs.entitySprites[i].resetAttackState();

@ -39,6 +39,11 @@ public abstract class Entity {
e.setHp(e.getHp() - this.dmg);
}
}
public Entity shoot(int xPosPlayer, int yPosPlayer){
return null;
}
public void update(){
xPos += movementX;
yPos += movementY;
@ -56,12 +61,7 @@ public abstract class Entity {
public void die(){
}
public void move(){
xPos = xPos + movementX;
yPos = yPos + movementY;
movementX = 0;
movementY = 0;
}
abstract public boolean move(int xPosPlayer, int yPosPlayer);
public void updateDirection(){
if(movementX > 1){
@ -72,8 +72,6 @@ public abstract class Entity {
}
}
abstract public Entity move(int xPosPlayer, int yPosPlayer);
// GETTER + SETTER
public float getxPos() {
return xPos;

@ -22,7 +22,7 @@ public class Archer extends Entity{
}
@Override
public Entity move(int xPosPlayer, int yPosPlayer) {
public boolean move(int xPosPlayer, int yPosPlayer) {
float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos;
@ -49,15 +49,8 @@ public class Archer extends Entity{
int distance = (int) Math.abs((deltaY / Math.sin(alpha)));
Arrow a = null;
if(distance >= 104 && distance <= 184 && counter % 40 == 0){
a = new Arrow(this.xPos, this.yPos, this.lvl, 0);
movementX = (int) (4 * Math.cos(alpha));
movementY = (int) (4 * Math.sin(alpha));
a.setMovementX(movementX);
a.setMovementY(movementY);
return true;
}
else{
movementX = (int) (3 * Math.cos(alpha));
@ -79,9 +72,44 @@ public class Archer extends Entity{
}
counter++;
return a;
return false;
}
@Override
public Entity shoot(int xPosPlayer, int yPosPlayer){
float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos;
double alpha;
if(deltaX == 0 && deltaY >= 0){
alpha = Math.PI / 2;
}
else if(deltaX == 0 && deltaY < 0){
alpha = Math.PI / -2;
}
else{
alpha = Math.abs(Math.atan(deltaY / deltaX));
if(deltaX < 0 && deltaY < 0){
alpha = Math.PI + alpha;
}
else if(deltaX < 0 && deltaY > 0){
alpha = Math.PI - alpha;
}
else if(deltaX > 0 && deltaY < 0){
alpha = 2*Math.PI - alpha;
}
}
Arrow a = new Arrow(this.xPos, this.yPos, this.lvl, 0);
movementX = (int) (5 * Math.cos(alpha));
movementY = (int) (5 * Math.sin(alpha));
a.setMovementX(movementX);
a.setMovementY(movementY);
return a;
}
}

@ -32,7 +32,7 @@ public class Arrow extends Entity{
}
@Override
public Entity move(int xPosPlayer, int yPosPlayer) {
public boolean move(int xPosPlayer, int yPosPlayer) {
lifetime++;
xPos += movementX;
@ -42,6 +42,6 @@ public class Arrow extends Entity{
this.toDelete = true;
}
return null;
return false;
}
}

@ -50,8 +50,8 @@ public class Player extends Entity {
}
}
public Entity move(int x, int y){
return null;
public boolean move(int x, int y){
return false;
}

@ -18,7 +18,7 @@ public class Swordsman extends Entity {
}
@Override
public Entity move(int xPosPlayer, int yPosPlayer){
public boolean move(int xPosPlayer, int yPosPlayer){
float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos;
@ -49,8 +49,7 @@ public class Swordsman extends Entity {
xPos += movementX;
yPos += movementY;
System.out.println("Winkel: " + Math.toDegrees(alpha));
return null;
return false;
}

Loading…
Cancel
Save