ultra animationen mit raytracing

master
Jonathan Hager 6 years ago
parent f543073f97
commit d0fdc415e2

@ -167,7 +167,11 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(Intersector.overlaps(tempObject.getCollisionSprite(), rectangle)){ if(Intersector.overlaps(tempObject.getCollisionSprite(), rectangle)){
overlaps = true; overlaps = true;
delete = true;
if(d.getCurrentEntities()[i].getId() == 2){
delete = true;
}
break; break;
} }
} }
@ -215,13 +219,18 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
} }
} }
if(delete || d.getCurrentEntities()[i].getToDelete()){ if(delete || d.getCurrentEntities()[i].isToDelete()){
if(d.getCurrentEntities()[i].getId() == 2){ if(d.getCurrentEntities()[i].getId() == 2){
d.getCurrentEntities()[i] = null; d.getCurrentEntities()[i] = null;
gs.deleteEntitySprite(i); gs.deleteEntitySprite(i);
} }
else{ else{
if(gs.entitySprites[i].getDie() == 0){
gs.entitySprites[i].setDie(1);
}
else if(gs.entitySprites[i].getDie() == 2){
//d.getCurrentEntities()[i] = null;
}
} }
} }

@ -13,7 +13,7 @@ public abstract class Entity {
protected int id; protected int id;
protected int direction; protected int direction;
protected Inventory inv; protected Inventory inv;
protected boolean toDelete; private boolean toDelete;
private double angle; private double angle;
@ -147,7 +147,7 @@ public abstract class Entity {
} }
public boolean getToDelete(){ public boolean getToDelete(){
return this.toDelete; return this.isToDelete();
} }
/** /**
@ -163,5 +163,19 @@ public abstract class Entity {
public void setAngle(double angle) { public void setAngle(double angle) {
this.angle = angle; this.angle = angle;
} }
/**
* @return the toDelete
*/
public boolean isToDelete() {
return toDelete;
}
/**
* @param toDelete the toDelete to set
*/
public void setToDelete(boolean toDelete) {
this.toDelete = toDelete;
}
} }

@ -23,7 +23,7 @@ public class Archer extends Entity{
@Override @Override
public boolean move(int xPosPlayer, int yPosPlayer) { public boolean move(int xPosPlayer, int yPosPlayer) {
if(!toDelete){ if(!isToDelete()){
float deltaX = xPosPlayer - (int) xPos; float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos; float deltaY = yPosPlayer - (int) yPos;
@ -89,7 +89,7 @@ public class Archer extends Entity{
public Entity shoot(int xPosPlayer, int yPosPlayer){ public Entity shoot(int xPosPlayer, int yPosPlayer){
Arrow a = null; Arrow a = null;
if(!toDelete){ if(!isToDelete()){
float deltaX = xPosPlayer - (int) xPos; float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos; float deltaY = yPosPlayer - (int) yPos;

@ -39,7 +39,7 @@ public class Arrow extends Entity{
yPos += movementY; yPos += movementY;
if(this.lifetime > 50){ if(this.lifetime > 50){
this.toDelete = true; this.setToDelete(true);
} }
return false; return false;

@ -19,7 +19,7 @@ public class Swordsman extends Entity {
@Override @Override
public boolean move(int xPosPlayer, int yPosPlayer){ public boolean move(int xPosPlayer, int yPosPlayer){
if(!toDelete){ if(!isToDelete()){
float deltaX = xPosPlayer - (int) xPos; float deltaX = xPosPlayer - (int) xPos;
float deltaY = yPosPlayer - (int) yPos; float deltaY = yPosPlayer - (int) yPos;

@ -57,7 +57,7 @@ public class EntitySprite {
direction = e.getDirection(); direction = e.getDirection();
if(die >= 1){ if(getDie() >= 1){
updateDie(); updateDie();
} }
else if(attackState == 1){ else if(attackState == 1){
@ -73,8 +73,11 @@ public class EntitySprite {
} }
public void updateDie(){ public void updateDie(){
if(frames[3] >= 9){ if(die == 2){
die = 2; sprites[0].setRegion(regions[0][4][9]);
}
else if(frames[3] >= 9){
setDie(2);
} }
else{ else{
frames[3]++; frames[3]++;
@ -249,4 +252,18 @@ public class EntitySprite {
public void startAttack(){ public void startAttack(){
this.attackState = 1; this.attackState = 1;
} }
/**
* @return the die
*/
public int getDie() {
return die;
}
/**
* @param die the die to set
*/
public void setDie(int die) {
this.die = die;
}
} }

@ -287,6 +287,10 @@ public class GameScreen {
if(e.getId() == 2){ if(e.getId() == 2){
entitySprites[i].getSprites()[0].setRotation((float) Math.toDegrees(e.getAngle())); entitySprites[i].getSprites()[0].setRotation((float) Math.toDegrees(e.getAngle()));
} }
if(e.isToDelete()){
entitySprites[i].setDie(2);
}
} }
} }
@ -314,7 +318,7 @@ public class GameScreen {
if(Intersector.overlaps(entitySprites[i].getCollisionSprite(), attackSprite.getBoundingRectangle())){ if(Intersector.overlaps(entitySprites[i].getCollisionSprite(), attackSprite.getBoundingRectangle())){
if(e[i] != null){ if(e[i] != null){
if(e[i].getHp() - p.getDmg() <= 0){ if(e[i].getHp() - p.getDmg() <= 0){
e[i] = null; e[i].setToDelete(true);
} }
else{ else{
e[i].setHp(e[i].getHp() - p.getDmg()); e[i].setHp(e[i].getHp() - p.getDmg());
@ -334,7 +338,7 @@ public class GameScreen {
if(Intersector.overlaps(entitySprites[i].getCollisionSprite(), attackSprite.getBoundingRectangle())){ if(Intersector.overlaps(entitySprites[i].getCollisionSprite(), attackSprite.getBoundingRectangle())){
if(e[i] != null){ if(e[i] != null){
if(e[i].getHp() - p.getDmg() <= 0){ if(e[i].getHp() - p.getDmg() <= 0){
e[i] = null; e[i].setToDelete(true);
} }
else{ else{
e[i].setHp(e[i].getHp() - p.getDmg()); e[i].setHp(e[i].getHp() - p.getDmg());
@ -354,7 +358,7 @@ public class GameScreen {
if(Intersector.overlaps(entitySprites[i].getCollisionSprite(), attackSprite.getBoundingRectangle())){ if(Intersector.overlaps(entitySprites[i].getCollisionSprite(), attackSprite.getBoundingRectangle())){
if(e[i] != null){ if(e[i] != null){
if(e[i].getHp() - p.getDmg() <= 0){ if(e[i].getHp() - p.getDmg() <= 0){
e[i] = null; e[i].setToDelete(true);
} }
else{ else{
e[i].setHp(e[i].getHp() - p.getDmg()); e[i].setHp(e[i].getHp() - p.getDmg());
@ -374,7 +378,7 @@ public class GameScreen {
if(Intersector.overlaps(entitySprites[i].getCollisionSprite(), attackSprite.getBoundingRectangle())){ if(Intersector.overlaps(entitySprites[i].getCollisionSprite(), attackSprite.getBoundingRectangle())){
if(e[i] != null){ if(e[i] != null){
if(e[i].getHp() - p.getDmg() <= 0){ if(e[i].getHp() - p.getDmg() <= 0){
e[i] = null; e[i].setToDelete(true);
} }
else{ else{
e[i].setHp(e[i].getHp() - p.getDmg()); e[i].setHp(e[i].getHp() - p.getDmg());

Loading…
Cancel
Save