zurückgesetzt

master
Jonathan Hager 6 years ago
parent 880414cf22
commit 8ecd09deb4

@ -131,6 +131,17 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
break;
}
}
for(int j = 0; j < m.entitySprites.length; j++){
if(i != j){
if(m.entitySprites[j] != null /*&& d.getCurrentEntities().get(j).getId() != 2*/){
if(Intersector.overlaps(tempObject.getBoundingRectangle(), m.entitySprites[j].getBoundingRectangle())){
overlaps = true;
break;
}
}
}
}
}
if(overlaps){

@ -65,7 +65,7 @@ public abstract class Entity {
}
}
abstract public void move(int xPosPlayer, int yPosPlayer);
abstract public Entity move(int xPosPlayer, int yPosPlayer);
// GETTER + SETTER
public float getxPos() {

@ -4,6 +4,8 @@ import com.dungeoncrawler.model.Entity;
public class Archer extends Entity{
int counter;
public Archer(float xPos, float yPos, int lvl) {
super(xPos, yPos, lvl);
@ -12,6 +14,7 @@ public class Archer extends Entity{
this.direction = 2;
this.dmg = 3*lvl;
this.id = 0;
counter = 0;
// TODO: Sinnvolle Werte finden
direction = 2;
@ -19,8 +22,67 @@ public class Archer extends Entity{
}
@Override
public void move(int xPosPlayer, int yPosPlayer) {
// Nothing
public Entity move(int xPosPlayer, int yPosPlayer) {
int deltaX = xPosPlayer - (int) xPos;
int 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;
}
}
int distance = (int) Math.abs((deltaY / Math.sin(alpha)));
Arrow a = null;
if(distance >= 124 && distance <= 164 && counter % 10 == 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);
}
else{
movementX = (int) (3 * Math.cos(alpha));
movementY = (int) (3 * Math.sin(alpha));
System.out.println(distance);
if(distance < 124){
movementX *= -1;
movementY *= -1;
}
else if(distance >= 124/* && distance <= 164*/){
movementX = 0;
movementY = 0;
}
else if(distance > 164){
}
xPos += movementX;
yPos += movementY;
}
counter++;
return a;
}

@ -31,7 +31,10 @@ public class Arrow extends Entity{
}
@Override
public void move(int xPosPlayer, int yPosPlayer) {
// Nothing
public Entity move(int xPosPlayer, int yPosPlayer) {
xPos += movementX;
yPos += movementY;
return null;
}
}

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

@ -18,7 +18,7 @@ public class Swordsman extends Entity {
}
@Override
public void move(int xPosPlayer, int yPosPlayer){
public Entity move(int xPosPlayer, int yPosPlayer){
int deltaX = xPosPlayer - (int) xPos;
int deltaY = yPosPlayer - (int) yPos;
@ -48,6 +48,8 @@ public class Swordsman extends Entity {
xPos += movementX;
yPos += movementY;
return null;
}

Loading…
Cancel
Save