changed entity nextframesbuffer to a simpler ArrayList

This commit is contained in:
Azra Victor 2021-06-24 12:03:45 +02:00 committed by no
parent 5e7e0e2f89
commit 2e67c94d40
2 changed files with 34 additions and 19 deletions

View File

@ -14,7 +14,7 @@ public class Entity {
private int posx;
private int posy;
private nextFrameBuffer frames;
private ArrayList<Frame> frames;
/**
* base constructor of the entity class
@ -22,7 +22,7 @@ public class Entity {
public Entity() {
this.posx = 0;
this.posy = 0;
this.frames = new nextFrameBuffer();
this.frames = new ArrayList<Frame>();
}
/**
@ -34,8 +34,8 @@ public class Entity {
public Entity(int posx, int posy, Frame f) {
this.posx = posx;
this.posy = posy;
this.frames = new nextFrameBuffer();
this.frames.setCurrentFrame(f);
this.frames = new ArrayList<>();
this.frames.add(f);
}
public void setPos(int x, int y) {
@ -44,28 +44,30 @@ public class Entity {
}
public void setCurrentFrame(Frame f) {
this.frames.setCurrentFrame(f);
this.frames.set(0,f);
}
public int getPosX() {return this.posx;}
public int getPosY() {return this.posy;}
public Frame getCurrentframe() {return this.frames.getCurrentFrame();}
public Frame getCurrentframe() {return this.frames.get(0);}
public nextFrameBuffer getFrames() {
public ArrayList<Frame> getFrames() {
return this.frames;
}
public void setFrames(nextFrameBuffer nextFrames) {
public void setFrames(ArrayList<Frame> nextFrames) {
this.frames = nextFrames;
}
public void clearNextFrames() {
this.frames.emptyQueue();
Frame f = this.getCurrentframe();
this.frames.clear();
this.frames.add(f);
}
public void goToNextFrames() { this.frames.goToNext();}
public void goToNextFrames() { this.frames.remove(0);}
/**
* adds frames to the character queue.
@ -74,7 +76,7 @@ public class Entity {
*/
public void addNextFrames(Frame[] f) {
for(int i = 0; i < f.length; i++) {
this.frames.addFrameToQueue(f[i]);
this.frames.add(f[i]);
}
}
@ -85,9 +87,17 @@ public class Entity {
*/
public void addNextFramesList(ArrayList<Frame> f) {
for(int i = 0; i < f.size(); i++) {
this.frames.addFrameToQueue(f.get(i));
this.frames.add(f.get(i));
}
}
/**
* Adds a single Frame to the character's list of next frames
* @param f the frame to add at the end of the frames list
*/
public void addSingleFrame(Frame f) {
this.frames.add(f);
}
}

View File

@ -514,14 +514,19 @@ public class match {
|| (!atk.isSpecial() && c.getCurrentframe().isNormalCancellable()));
if(attackIsPossible) {
if(c.getStatus() == Status.JUMPING) {
nextFrameBuffer nJumpFb = new nextFrameBuffer();
nJumpFb.clone(c.getFrames());
nJumpFb.changeFramesExceptForMove(atk.getFrame());
c.setFrames(nJumpFb);
c.clearNextFrames();
for(int i = 0; (i < c.getFrames().size() - 1) || (i < atk.getFrame().size()); i++) {
Frame jumpf = c.getFrames().get(i+1);
jumpf.cloneWithoutMovement(atk.getFrame().get(i));
c.addSingleFrame(jumpf);
}
c.setAttackPartsArray(atk.getParts());
}
else {
c.clearNextFrames();
c.addNextFramesList(atk.getFrame());
c.setAttackPartsArray(atk.getParts());
}
actionSet = true;
}
atkCount++;