Clonage réparé on skip toujours la première frame d'une suite pour l'inversion...
This commit is contained in:
parent
c1a696ae1c
commit
e6605bec94
@ -25,7 +25,7 @@ public class Frame {
|
||||
private boolean moveCancellable;
|
||||
private boolean isDashCancellable;
|
||||
private boolean lastFrameOfHit;
|
||||
private boolean isInverted;
|
||||
|
||||
/**
|
||||
* an int of 4 that determines the texture wrap for the frame
|
||||
*/
|
||||
@ -165,10 +165,6 @@ public class Frame {
|
||||
this.lastFrameOfHit = lastFrameOfHit;
|
||||
}
|
||||
|
||||
public boolean getIsInverted(){
|
||||
return this.isInverted;
|
||||
}
|
||||
|
||||
//Inverts all hitboxes of the frame horizontally. Used if the character looks to the left instead of the right
|
||||
public void invertHitBoxes() {
|
||||
for(Passive_HitBox p: this.passHitBox) {p.reverseHorizontally();}
|
||||
@ -176,17 +172,14 @@ public class Frame {
|
||||
for(Passive_throw_HitBox p: this.passThrowHitBox) {p.reverseHorizontally();}
|
||||
for(Active_throw_Hitbox p: this.actThrowHitBox) {p.reverseHorizontally();}
|
||||
this.pushHitBox.reverseHorizontally();
|
||||
isInverted = true;
|
||||
}
|
||||
|
||||
public void clone(Frame f) { //TODO le clonage ne fonctionne pas certain paramètre renvoie toujours le pointeur vers un objet
|
||||
public void clone(Frame f) {
|
||||
this.setMove_y(f.getMove_y());
|
||||
this.setMove_x(f.getMove_x());
|
||||
this.setPassHitBox(f.getPassHitBox());
|
||||
this.setActHitBox(f.getActHitBox());
|
||||
this.setPassThrowHitBox(f.getPassThrowHitBox());
|
||||
this.setActThrowHitBox(f.getActThrowHitBox());
|
||||
this.setPushHitBox(f.getPushHitBox());
|
||||
this.cloneArray(f); //Il faut cloner individuellement chaque hitbox des differentes listes pour ne pas garder les pointeurs
|
||||
Push_HitBox phb = f.getPushHitBox();
|
||||
this.setPushHitBox(new Push_HitBox(phb.getPosX(), phb.getPosY(), phb.getSize_x(), phb.getSize_y()));
|
||||
this.normalCancellable = f.isNormalCancellable();
|
||||
this.specialCancellable = f.isSpecialCancellable();
|
||||
this.jumpCancellable = f.jumpCancellable;
|
||||
@ -196,6 +189,25 @@ public class Frame {
|
||||
this.setSpriteWrap(f.sprite[0], f.sprite[1], f.sprite[2], f.sprite[3]);
|
||||
}
|
||||
|
||||
private void cloneArray(Frame f){
|
||||
for (Passive_HitBox hb : f.getPassHitBox()){
|
||||
Passive_HitBox nhb = new Passive_HitBox(hb.getPosX(), hb.getPosY(), hb.getSize_x(), hb.getSize_y());
|
||||
this.passHitBox.add(nhb);
|
||||
}
|
||||
for (Passive_throw_HitBox hb : f.getPassThrowHitBox()){
|
||||
Passive_throw_HitBox nhb = new Passive_throw_HitBox(hb.getPosX(), hb.getPosY(), hb.getSize_x(), hb.getSize_y());
|
||||
this.passThrowHitBox.add(nhb);
|
||||
}
|
||||
for (Active_HitBox hb : f.getActHitBox()){
|
||||
Active_HitBox nhb = new Active_HitBox(hb.getPosX(), hb.getPosY(), hb.getSize_x(), hb.getSize_y());
|
||||
this.actHitBox.add(nhb);
|
||||
}
|
||||
for (Active_throw_Hitbox hb : f.getActThrowHitBox()){
|
||||
Active_throw_Hitbox nhb = new Active_throw_Hitbox(hb.getPosX(), hb.getPosY(), hb.getSize_x(), hb.getSize_y());
|
||||
this.actThrowHitBox.add(nhb);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* sets the coordinates on the spritesheet for the texture for that frame
|
||||
* @param x coordinate of the lef tside
|
||||
|
@ -319,13 +319,6 @@ public class match {
|
||||
p2.removeFirstAttackPart();
|
||||
}
|
||||
|
||||
//Si la frame d'avant est inversé il faut la "nettoyer" pour le prochaine utilisation
|
||||
if (p1.getCurrentframe().getIsInverted()){
|
||||
p1.getCurrentframe().invertHitBoxes();
|
||||
} if (p2.getCurrentframe().getIsInverted()){
|
||||
p2.getCurrentframe().invertHitBoxes();
|
||||
|
||||
}
|
||||
nextFrame(p1,inputsP1);
|
||||
nextFrame(p2,inputsP2);
|
||||
|
||||
@ -343,11 +336,10 @@ public class match {
|
||||
objP2.setTextureWrap(f.getSprite()[0], f.getSprite()[1], f.getSprite()[2], f.getSprite()[3]);
|
||||
objP2.translate(new Vector3f(p2.getPosX() - oldPosXp2,p2.getPosY()-oldPosYp2,0));
|
||||
|
||||
// Frame nf = new Frame(); //TODO dans l'état le clonage ne fonctionne pas
|
||||
// nf.clone(p2.getCurrentframe());
|
||||
// nf.invertHitBoxes();
|
||||
// p2.setCurrentFrame(nf);
|
||||
f.invertHitBoxes();
|
||||
Frame nf = new Frame();
|
||||
nf.clone(p2.getCurrentframe());
|
||||
nf.invertHitBoxes();
|
||||
p2.setCurrentFrame(nf);
|
||||
objP2.flipTextureWrapH();
|
||||
|
||||
} else {
|
||||
@ -360,11 +352,10 @@ public class match {
|
||||
objP2.setTextureWrap(p2f.getSprite()[0], p2f.getSprite()[1], p2f.getSprite()[2], p2f.getSprite()[3]);
|
||||
objP2.translate(new Vector3f(p2.getPosX()-oldPosXp2,p2.getPosY()-oldPosYp2,0));
|
||||
|
||||
// Frame nf = new Frame();
|
||||
// nf.clone(p1.getCurrentframe());
|
||||
// nf.invertHitBoxes();
|
||||
// p1.setCurrentFrame(nf);
|
||||
p1f.invertHitBoxes();
|
||||
Frame nf = new Frame();
|
||||
nf.clone(p1.getCurrentframe());
|
||||
nf.invertHitBoxes();
|
||||
p1.setCurrentFrame(nf);
|
||||
objP1.flipTextureWrapH();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user