so halb isses drin

master
Jonathan Hager 6 years ago
parent ab79a3d4b2
commit 45544c3406

@ -139,7 +139,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(Intersector.overlaps(tempObject.getCollisionSprite(), playerSprite)){
overlaps = true;
if(d.getCurrentEntities()[i].getType() == 2){
if(d.getCurrentEntities()[i].getType() == 2 && d.getCurrentEntities()[i].isTargetsPlayer()){
delete = true;
d.getCurrentEntities()[i].attack(d.getPlayer());
}
@ -565,6 +565,64 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
}
if(keycode == Input.Keys.LEFT){
if(mm != null){}
if(gs != null && gs.getIsLoading() == false){
Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos());
for(int k = 5; k < d.getCurrentEntities().length; k++){
if(d.getCurrentEntities()[k] == null){
d.getCurrentEntities()[k] = lol;
gs.generateNewEntitySprite(lol, k);
break;
}
}
}
}
if(keycode == Input.Keys.UP){
if(mm != null){}
if(gs != null && gs.getIsLoading() == false){
Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1);
for(int k = 5; k < d.getCurrentEntities().length; k++){
if(d.getCurrentEntities()[k] == null){
d.getCurrentEntities()[k] = lol;
gs.generateNewEntitySprite(lol, k);
break;
}
}
}
}
if(keycode == Input.Keys.RIGHT){
if(mm != null){}
if(gs != null && gs.getIsLoading() == false){
Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos());
for(int k = 5; k < d.getCurrentEntities().length; k++){
if(d.getCurrentEntities()[k] == null){
d.getCurrentEntities()[k] = lol;
gs.generateNewEntitySprite(lol, k);
break;
}
}
}
}
if(keycode == Input.Keys.DOWN){
if(mm != null){}
if(gs != null && gs.getIsLoading() == false){
Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1);
for(int k = 5; k < d.getCurrentEntities().length; k++){
if(d.getCurrentEntities()[k] == null){
d.getCurrentEntities()[k] = lol;
gs.generateNewEntitySprite(lol, k);
break;
}
}
}
}
return true;
}

@ -16,6 +16,7 @@ public abstract class Entity {
protected Inventory inv;
private boolean toDelete;
private double angle;
protected boolean targetsPlayer;
@ -27,6 +28,7 @@ public abstract class Entity {
this.movementY = 0;
this.direction = 2;
this.toDelete = false;
this.targetsPlayer = true;
}
public void attack(Entity e){
@ -185,5 +187,12 @@ public abstract class Entity {
public int getType() {
return type;
}
/**
* @return the targetsPlayer
*/
public boolean isTargetsPlayer() {
return targetsPlayer;
}
}

@ -114,7 +114,7 @@ public class Archer extends Entity{
alpha = 2*Math.PI - alpha;
}
}
a = new Projectile(this.xPos + 32, this.yPos + 32, this.lvl, 2);
a = new Projectile(this.xPos + 32, this.yPos + 32, this.lvl, 2, true);
movementX = (int) (6 * Math.cos(alpha));
movementY = (int) (6 * Math.sin(alpha));

@ -30,6 +30,7 @@ public class Player extends Entity {
type = -1;
inv = new Inventory(3,2);
// TODO: Sinnvolle Werte finden
this.targetsPlayer = false;
}
@ -55,5 +56,59 @@ public class Player extends Entity {
return false;
}
@Override
public Entity shoot(int xPosPlayer, int yPosPlayer){
Projectile a = null;
if(!isToDelete()){
float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos;
double alpha;
if(deltaY == 0){
if(deltaX < 0){
alpha = Math.PI;
}
else{
alpha = 0;
}
}
else 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;
}
}
a = new Projectile(this.xPos + 32, this.yPos + 32, this.lvl, 2, false);
int tempMovementX = (int) (6 * Math.cos(alpha));
int tempMovementY = (int) (6 * Math.sin(alpha));
a.setMovementX(tempMovementX);
a.setMovementY(tempMovementY);
a.setAngle(alpha);
if((alpha >= 0 && alpha <= Math.PI / 2) || (alpha <= 2 * Math.PI && alpha >= 2 * Math.PI - Math.PI / 2)){
setDirection(1);
}
else{
setDirection(0);
}
}
return a;
}
}

@ -14,7 +14,7 @@ public class Projectile extends Entity{
int direction;
int lifetime;
public Projectile(float xPos, float yPos, int lvl, int id){
public Projectile(float xPos, float yPos, int lvl, int id, boolean targetsPlayer){
super(xPos, yPos, lvl);
xStart = xPos;
yStart = yPos;
@ -22,6 +22,7 @@ public class Projectile extends Entity{
this.id = id;
type = 2;
this.lifetime = 0;
this.targetsPlayer = targetsPlayer;
}
public float getxStart(){

@ -122,7 +122,7 @@ public class Wizard extends Entity{
alpha = 2*Math.PI - alpha;
}
}
a = new Projectile(this.xPos + 32, this.yPos + 32, this.lvl, 4);
a = new Projectile(this.xPos + 32, this.yPos + 32, this.lvl, 4, true);
movementX = (int) (6 * Math.cos(alpha));
movementY = (int) (6 * Math.sin(alpha));

Loading…
Cancel
Save