diff --git a/Frames_perso/Character_attack_1et3.png b/Frames_perso/Character_attack1.png similarity index 100% rename from Frames_perso/Character_attack_1et3.png rename to Frames_perso/Character_attack1.png diff --git a/Frames_perso/Character_attack3.png b/Frames_perso/Character_attack3.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8e144f54eb8b5d28d2a9d06b61ac8afc0e96d6 Binary files /dev/null and b/Frames_perso/Character_attack3.png differ diff --git a/MAVENProject/PlanUML.puml b/MAVENProject/PlanUML.puml index 5411cfaa26536741eedf1eb7ea6d9fe11688433b..af88d0c5fa140fd0c9e13083fe4aa2ce035ee6d0 100644 --- a/MAVENProject/PlanUML.puml +++ b/MAVENProject/PlanUML.puml @@ -15,6 +15,13 @@ engine.GamePainter <|-- engine.DrawingPanel environment.Coordonnees <|-- entity.Entity entity.Character <|-- environment.Physique +loaders.CharacterLoader <|-- jeu.Jeu +jeu.Painter <|-- loaders.CharacterLoader +entity.Character <|-- jeu.Jeu +jeu.Painter <|-- entity.Character +entity.Monster <|-- environment.Physique +entity.Character <|-- loaders.CharacterLoader + interface engine.GameController { + Cmd getCommand() } @@ -73,9 +80,9 @@ class entity.Character { } class entity.Monster{ + Coordonnees positions ++ int vmax + void deplacements() + void attaque() -+ int vmax } @@ -86,6 +93,7 @@ abstract class entity.Entity{ - double entityWIDTH - double entityHEIGHT + void deplacements() ++ Coordonnes getCoord() + void attaque() } entity.Entity <|.. entity.Character @@ -105,13 +113,24 @@ class environment.Coordonnees{ + double getZ() } +class loaders.CharacterLoader{ + - Character gameCharacter + - String skinPath + - Image imageCharacter + + void refreshImage() + + Character getGameCharacter() + + String getSkinPath() + + Image getImageCharacter() + + void setSkinPath(String) +} + class jeu.Painter{ # {static} int WIDTH # {static} int HEIGHT + <<Create>> Painter() + void draw(BufferedImage) -- void drawCharacter(Graphics2D) +- void drawCharacter(Graphics2D,Character,Image) - void drawSol(Graphics2D) - void drawObstacle(Graphics2D) + int getWidth() @@ -130,6 +149,8 @@ class jeu.Jeu{ + void evolve(Cmd) - HashMap directionJeu + boolean isFinished() +- Character gameCharacter +- CharacterLoader gameCharacterLoader } class environment.Physique{ - double g diff --git a/MAVENProject/src/main/java/engine/Game.java b/MAVENProject/src/main/java/engine/Game.java index 4cb58e5d63c02f45baeeb10e1b844b1836dd3dba..a3a4c8c7174a32057e8c411e24880320fc854835 100644 --- a/MAVENProject/src/main/java/engine/Game.java +++ b/MAVENProject/src/main/java/engine/Game.java @@ -1,6 +1,6 @@ package engine; -import java.util.ArrayList; + import java.util.HashMap; /** diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index ef49e4d4e2d9b1e743964d19f097eadc10206d00..26d30bfd9073d59a8634ffedc948026f36e79f35 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -46,7 +46,7 @@ public class Character extends Entity{ if ((tableCommande.get("CommandZ") == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ()))newZ = Jeu.getCoordSol().getZ(); else newZ = ((1-alpha)*Physique.g - tableCommande.get("CommandZ"))/2*delta*delta + vitesseActuZ*delta + this.getCoord().getZ(); - System.out.println("écart de hauteur: "+Math.abs(this.getCoord().getZ()-newZ)); + //System.out.println("écart de hauteur: "+Math.abs(this.getCoord().getZ()-newZ)); this.setCoord(new Coordonnees(newX, newZ)); // on set les nouvelles coordonnees @@ -56,7 +56,7 @@ public class Character extends Entity{ if ((tableCommande.get("CommandZ") == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ())) vitesseActuZ = 0; else vitesseActuZ = vitesseActuZ + 7*((1-alpha)*Physique.g - tableCommande.get("CommandZ"))*delta; - System.out.println("vitesse z: "+vitesseActuZ); + //System.out.println("vitesse z: "+vitesseActuZ); resetCommand(); } @Override diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 4ddbf2c602236dede0a0b48f85d8c19070c2b7d2..2f552446f9c1823a896e03214a27832dc626fb71 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -11,6 +11,7 @@ import engine.Game; import environnement.Coordonnees; import loaders.CharacterLoader; + public class Jeu implements Game{ private static Coordonnees coordSol = new Coordonnees(200,700); //coordonnees du sol (en realite juste Z nous interesse) @@ -18,11 +19,20 @@ public class Jeu implements Game{ private static Map<String,Boolean> directionJeu; static CharacterLoader gameCharacterLoader; String characterSkinPath; // jsp si c'est le jeu qui doit gerer ca, au pire vous pouvez changer + final String beginPath; + String movement; + int numberOfMovement; + int nbIterationPerFrame = 100; + int nbBeforeFramechgt = nbIterationPerFrame; public Jeu(String source) { + BufferedReader helpReader; - characterSkinPath = "E:\\Bureau\\Programmation\\Projet_ACL\\acl-project\\Frames_perso\\pixil-frame-0.png"; // path premiere frame + beginPath = "E:\\Bureau\\Programmation\\Projet_ACL\\acl-project\\Frames_perso\\"; + movement = "Character_idle"; + numberOfMovement = 1; + characterSkinPath = beginPath + movement + Integer.toString(numberOfMovement) + ".png"; // path premiere frame /*A = new ArrayList<Double>(); n = 0;*/ gameCharacterLoader = new CharacterLoader(characterSkinPath,new Character(new Coordonnees(200, 300), 2000, 1,600000)); @@ -47,9 +57,9 @@ public class Jeu implements Game{ @Override public void evolve(HashMap<String,Boolean> command) { // command est sous la forme list de Boolean qui represente les touches préssées. Voir Controller pour la compositions de cet list. - System.out.println("Execute "+command); + /*System.out.println("Execute "+command); System.out.println(gameCharacter.getCoord().getX()); - System.out.println(gameCharacter.getCoord().getZ()); + System.out.println(gameCharacter.getCoord().getZ());*/ /*double comX,comZ; int a = 1; @@ -83,7 +93,17 @@ public class Jeu implements Game{ } }*/ + gameCharacter.evolveCharacter(); + if ((nbIterationPerFrame-nbBeforeFramechgt) == nbIterationPerFrame) { // timer pour changer de frame + numberOfMovement = numberOfMovement%2 + 1; + nbBeforeFramechgt = nbIterationPerFrame; + } + else nbBeforeFramechgt--; + characterSkinPath = beginPath + movement + Integer.toString(numberOfMovement) + ".png"; + gameCharacterLoader.setSkinPath(characterSkinPath); + gameCharacterLoader.refreshImage(); + } @Override diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java index e3f101da0bfe683a3a797ef2e53030ee940d8e2c..9002459126d2c00b4e1ac82697782c0f27b63cb7 100644 --- a/MAVENProject/src/main/java/jeu/Painter.java +++ b/MAVENProject/src/main/java/jeu/Painter.java @@ -45,8 +45,8 @@ public class Painter implements GamePainter{ private void drawCharacter(Graphics2D crayon, Character charac,Image imageCharac){ int x = (int) gameCharacter.getCoord().getX(); int y = (int) gameCharacter.getCoord().getZ(); - crayon.fillRect(x-15,y-30, (int) gameCharacter.getEntityWIDTH(),(int) gameCharacter.getEntityHEIGHT()); - crayon.drawImage(imageCharac, x-15, y-30, null, null); + //crayon.fillRect(x-15,y-30, (int) gameCharacter.getEntityWIDTH(),(int) gameCharacter.getEntityHEIGHT()); + crayon.drawImage(imageCharac, x-30, y-60, null, null); } diff --git a/MAVENProject/src/main/java/loaders/CharacterLoader.java b/MAVENProject/src/main/java/loaders/CharacterLoader.java index bf04746eef0b845919c92abd6b10fe71298e47fc..4ba4b8de82d622e1f62e53f806bd13d726674340 100644 --- a/MAVENProject/src/main/java/loaders/CharacterLoader.java +++ b/MAVENProject/src/main/java/loaders/CharacterLoader.java @@ -2,10 +2,6 @@ package loaders; import entity.Character; import java.awt.Image; -import java.io.File; -import java.io.IOException; - -import javax.imageio.ImageIO; import javax.swing.ImageIcon; public class CharacterLoader { // classe qui cree le perso @@ -21,12 +17,8 @@ public class CharacterLoader { // classe qui cree le perso } public void refreshImage(){ - try { - imageCharacter = ImageIO.read(new File(skinPath)); - } catch (IOException e) { - - e.printStackTrace(); - } + imageCharacter = new ImageIcon(skinPath).getImage(); + } public Character getGameCharacter() {