diff --git a/MAVENProject/src/main/java/engine/GameEngineGraphical.java b/MAVENProject/src/main/java/engine/GameEngineGraphical.java index e82d3951f3d75db77ef33168ba9d682921c84eed..57078d9e416e45bf3eb588efc639a7a29fdf729c 100644 --- a/MAVENProject/src/main/java/engine/GameEngineGraphical.java +++ b/MAVENProject/src/main/java/engine/GameEngineGraphical.java @@ -15,6 +15,8 @@ public class GameEngineGraphical { */ private Game game; + public int i; + /** * l'afficheur a utiliser pour le rendu */ @@ -63,7 +65,11 @@ public class GameEngineGraphical { // fait evoluer le game this.game.evolve(a); // affiche le game - this.gui.paint(); + i +=1; + if ( i == 5){ + i = 0; + this.gui.paint(); + } // met en attente Thread.sleep(2); } diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index 6d9d7a3bd43dbd9acf3a03896d9b45548fbd6ffa..deb6505ea893390441f839b6be5b3b7e32f8d1c6 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -8,6 +8,7 @@ import environnement.HitBox; import map.Obstacle; import environnement.Physique; import jeu.Jeu; +import jeu.Painter; public class Character extends Entity{ @@ -52,13 +53,26 @@ public class Character extends Entity{ newZ = ((1-alpha)*Physique.g - tableCommande.get("CommandZ"))/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ(); if (newZ+entityHEIGHT/2 >= obstacleBeneath.getHitbox().getExtremites().get("HautGauche").getZ()){ - newZ = obstacleBeneath.getHitbox().getExtremites().get("HautGauche").getZ()-entityHEIGHT/2; + newZ = obstacleBeneath.getHitbox().getExtremites().get("HautGauche").getZ()-entityHEIGHT/2+1; //alpha = 1; } //(tableCommande.get("CommandZ") == 0) this.getCoord().getZ()(tableCommande.get("CommandZ") == 0) && this.setCoord(new Coordonnees(newX, newZ)); // on set les nouvelles coordonnees + + if (obstacleNextTo != null){ + if (tableCommande.get("CommandX") > 0){ + if (this.getCoord().getX()+entityWIDTH/2 < obstacleNextTo.getHitbox().getExtremites().get("HautGauche").getX()){ + this.setCoord(new Coordonnees(obstacleNextTo.getHitbox().getExtremites().get("HautGauche").getX()-entityWIDTH/2, this.getCoord().getZ())); + } + } + else if (tableCommande.get("CommandX") < 0){ + if (this.getCoord().getX()-entityWIDTH/2 > obstacleNextTo.getHitbox().getExtremites().get("HautDroite").getX()){ + this.setCoord(new Coordonnees(obstacleNextTo.getHitbox().getExtremites().get("HautDroite").getX()+entityWIDTH/2, this.getCoord().getZ())); + } + } + } //on actualise les vitesses @@ -110,23 +124,18 @@ public class Character extends Entity{ } public void checkIfNextToWall(){ - if ((Obstacle.collisionDroite(this, Jeu.getObstacleTable()) && tableCommande.get("CommandX") == -vitesseMax) || (Obstacle.collisionGauche(this, Jeu.getObstacleTable()) && tableCommande.get("CommandX") == vitesseMax)){ + if (((HitBox.collisionDroite(this.getHitBox(), Painter.test.getHitbox()) && tableCommande.get("CommandX") == -vitesseMax)) || (HitBox.collisionGauche(this.getHitBox(), Painter.test.getHitbox()) && tableCommande.get("CommandX") == vitesseMax)){ beta = 0; + obstacleNextTo = Painter.test; + System.out.println("beta :"); + System.out.println(beta); }else { beta = 1; + System.out.println("beta :"); + System.out.println(beta); + obstacleNextTo = null; } - if (obstacleNextTo != null){ - if (tableCommande.get("CommandX") > 0){ - if (this.getCoord().getX()+entityWIDTH/2 >= obstacleNextTo.getHitbox().getExtremites().get("HautGauche").getX()){ - this.setCoord(new Coordonnees(obstacleNextTo.getHitbox().getExtremites().get("HautGauche").getX()-entityWIDTH/2, this.getCoord().getZ())); - } - } - else if (tableCommande.get("CommandX") < 0){ - if (this.getCoord().getX()-entityWIDTH/2 <= obstacleNextTo.getHitbox().getExtremites().get("HautDroite").getX()){ - this.setCoord(new Coordonnees(obstacleNextTo.getHitbox().getExtremites().get("HautDroite").getX()+entityWIDTH/2, this.getCoord().getZ())); - } - } - } + } @@ -138,12 +147,12 @@ public class Character extends Entity{ } public void evolveCharacter(){ - System.out.println(beta); getGameCommand(); + checkIfNextToWall(); checkIfOnGround(); //checkIfNextToWall(); deplacements(); - checkIfNextToWall(); + //checkIfNextToWall(); resetCommand(); this.setHitBox(new HitBox(this.getCoord(),entityHEIGHT,entityWIDTH)); // mise à jour moins crade pour l'instant } diff --git a/MAVENProject/src/main/java/environnement/HitBox.java b/MAVENProject/src/main/java/environnement/HitBox.java index cd30ac78f38672c2841c11829edb9f321d3a61ed..ab26a579bdabfa6117462c5f00251c5edc04b4aa 100644 --- a/MAVENProject/src/main/java/environnement/HitBox.java +++ b/MAVENProject/src/main/java/environnement/HitBox.java @@ -63,7 +63,6 @@ public class HitBox { return !(A.extremites.get("HautDroite").getX() < B.extremites.get("HautGauche").getX());// A est à gauche de B } public static Boolean collisionBas(HitBox A, HitBox B){ - //System.out.println(A.extremites.get("HautGauche").getZ()+" "+B.extremites.get("BasGauche").getZ()); return !(A.extremites.get("HautGauche").getZ() > B.extremites.get("BasGauche").getZ());// A est en dessous de B } public static Boolean collisionHaut(HitBox A, HitBox B){ diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java index 5040ce7628f430badeb027369db766ea17b470ff..b1747a09465db53aaf2131e8662517bf451d7108 100644 --- a/MAVENProject/src/main/java/jeu/Painter.java +++ b/MAVENProject/src/main/java/jeu/Painter.java @@ -19,7 +19,7 @@ public class Painter implements GamePainter{ protected static final int WIDTH = 1000; protected static final int HEIGHT = 1000; - private Obstacle test = new Obstacle(new HitBox(new Coordonnees(300,550),32,128)); + public static Obstacle test = new Obstacle(new HitBox(new Coordonnees(300,550),32,128)); public Painter() { @@ -80,7 +80,6 @@ public class Painter implements GamePainter{ ObstacleLoader loader = new ObstacleLoader(Jeu.getSol(),"Terre.png"); HitBox hitBox = loader.getObstacle().getHitbox(); int z = (int) hitBox.getCentre().getZ(); - System.out.println(z); for (int x = 0;x<3000;x+=128) { crayon.drawImage(loader.getImageObstacle(),x,z ,null,null); } @@ -104,4 +103,5 @@ public class Painter implements GamePainter{ int x = (int) hitBox.getCentre().getX(); crayon.drawImage(loader.getImageObstacle(), x - (int) hitBox.getWidth()/2,z - (int) hitBox.getHeight()/2,null,null); } + }