Merge branch 'jonathan2'

adölfkjasdölkfjsdaökljfaösljfaölk
master
Jonathan Hager 6 years ago
commit f8db6b1e57

Binary file not shown.

Before

Width:  |  Height:  |  Size: 644 B

After

Width:  |  Height:  |  Size: 769 B

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

@ -18,6 +18,7 @@ public abstract class Entity {
protected int direction; protected int direction;
protected Inventory inv; protected Inventory inv;
protected boolean toDelete; protected boolean toDelete;
private double angle;
@ -39,6 +40,11 @@ public abstract class Entity {
e.setHp(e.getHp() - this.dmg); e.setHp(e.getHp() - this.dmg);
} }
} }
public Entity shoot(int xPosPlayer, int yPosPlayer){
return null;
}
public void update(){ public void update(){
xPos += movementX; xPos += movementX;
yPos += movementY; yPos += movementY;
@ -56,12 +62,7 @@ public abstract class Entity {
public void die(){ public void die(){
} }
public void move(){ abstract public boolean move(int xPosPlayer, int yPosPlayer);
xPos = xPos + movementX;
yPos = yPos + movementY;
movementX = 0;
movementY = 0;
}
public void updateDirection(){ public void updateDirection(){
if(movementX > 1){ if(movementX > 1){
@ -72,8 +73,6 @@ public abstract class Entity {
} }
} }
abstract public Entity move(int xPosPlayer, int yPosPlayer);
// GETTER + SETTER // GETTER + SETTER
public float getxPos() { public float getxPos() {
return xPos; return xPos;
@ -154,5 +153,19 @@ public abstract class Entity {
public boolean getToDelete(){ public boolean getToDelete(){
return this.toDelete; return this.toDelete;
} }
/**
* @return the angle
*/
public double getAngle() {
return angle;
}
/**
* @param angle the angle to set
*/
public void setAngle(double angle) {
this.angle = angle;
}
} }

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

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

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

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

@ -27,7 +27,7 @@ public class EntitySprite {
// 0: links, 1: rechts // 0: links, 1: rechts
private int direction; private int direction;
public EntitySprite(Texture[] textures){ public EntitySprite(Texture[] textures, int width, int height){
sprites = new Sprite[1]; sprites = new Sprite[1];
regions = new TextureRegion[1][][]; regions = new TextureRegion[1][][];
@ -36,12 +36,12 @@ public class EntitySprite {
direction = 0; direction = 0;
attackState = 0; attackState = 0;
for(int i = 0; i < regions.length; i++){ for(int i = 0; i < sprites.length; i++){
regions[i] = TextureRegion.split(textures[i], 64, 64); regions[i] = TextureRegion.split(textures[i], width, height);
sprites[i] = new Sprite(regions[i][0][0]); sprites[i] = new Sprite(regions[i][0][0]);
collisionSprite = new Rectangle(0, 0, 32, 16);
} }
collisionSprite = new Rectangle(0, 0, 32, 16);
fullCollisionSprite = sprites[0].getBoundingRectangle(); fullCollisionSprite = sprites[0].getBoundingRectangle();
} }
@ -84,7 +84,7 @@ public class EntitySprite {
frames[0]++; frames[0]++;
} }
sprites[0].setRegion(regions[0][0][frames[0]]); sprites[0].setRegion(regions[0][2][frames[0]]);
updateFlip(); updateFlip();
} }
@ -99,7 +99,7 @@ public class EntitySprite {
frames[1]++; frames[1]++;
} }
sprites[0].setRegion(regions[0][2][frames[1]]); sprites[0].setRegion(regions[0][0][frames[1]]);
updateFlip(); updateFlip();
} }

@ -83,7 +83,7 @@ public class GameScreen {
playerTexture[2] = new Texture(Gdx.files.internal("sprites/player.png")); playerTexture[2] = new Texture(Gdx.files.internal("sprites/player.png"));
playerTexture[3] = new Texture(Gdx.files.internal("sprites/player.png")); playerTexture[3] = new Texture(Gdx.files.internal("sprites/player.png"));
player = new EntitySprite(playerTexture); player = new EntitySprite(playerTexture, 64, 64);
player.update(200, 200); player.update(200, 200);
@ -279,16 +279,22 @@ public class GameScreen {
Texture[] tx = new Texture[1]; Texture[] tx = new Texture[1];
if(e.getId() == 0){ //nimmt entity ID -> 0 = Archer || 1 = Swordsman || 2 = Arrow if(e.getId() == 0){ //nimmt entity ID -> 0 = Archer || 1 = Swordsman || 2 = Arrow
tx[0] = new Texture("sprites/archer.png"); tx[0] = new Texture("sprites/archer.png");
entitySprites[i] = new EntitySprite(tx, 64, 64);
} }
if(e.getId() == 1){ if(e.getId() == 1){
tx[0] = new Texture("sprites/swordsman.png"); tx[0] = new Texture("sprites/swordsman.png");
entitySprites[i] = new EntitySprite(tx, 64, 64);
} }
if(e.getId() == 2){ if(e.getId() == 2){
tx[0] = new Texture("sprites/player.png"); tx[0] = new Texture("sprites/arrow.png");
entitySprites[i] = new EntitySprite(tx, 18, 9);
} }
entitySprites[i] = new EntitySprite(tx);
entitySprites[i].update((int) e.getxPos(), (int) e.getyPos()); entitySprites[i].update((int) e.getxPos(), (int) e.getyPos());
if(e.getId() == 2){
entitySprites[i].getSprites()[0].setRotation((float) Math.toDegrees(e.getAngle() + Math.PI));
}
} }
} }

Loading…
Cancel
Save