From 5babed1078aceb0f65e0e1fe9923c4d4460cf3bb Mon Sep 17 00:00:00 2001
From: Louis <malterre.louis@laposte.net>
Date: Fri, 25 Nov 2022 23:33:28 +0100
Subject: [PATCH] animation idle faite, uml a peu pres a jour LM

---
 ..._attack_1et3.png => Character_attack1.png} | Bin
 Frames_perso/Character_attack3.png            | Bin 0 -> 2570 bytes
 MAVENProject/PlanUML.puml                     |  25 +++++++++++++++--
 MAVENProject/src/main/java/engine/Game.java   |   2 +-
 .../src/main/java/entity/Character.java       |   4 +--
 MAVENProject/src/main/java/jeu/Jeu.java       |  26 ++++++++++++++++--
 MAVENProject/src/main/java/jeu/Painter.java   |   4 +--
 .../main/java/loaders/CharacterLoader.java    |  12 ++------
 8 files changed, 53 insertions(+), 20 deletions(-)
 rename Frames_perso/{Character_attack_1et3.png => Character_attack1.png} (100%)
 create mode 100644 Frames_perso/Character_attack3.png

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
GIT binary patch
literal 2570
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
Dp1Qch

literal 0
HcmV?d00001

diff --git a/MAVENProject/PlanUML.puml b/MAVENProject/PlanUML.puml
index 5411cfa..af88d0c 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 4cb58e5..a3a4c8c 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 ef49e4d..26d30bf 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 4ddbf2c..2f55244 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 e3f101d..9002459 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 bf04746..4ba4b8d 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() {
-- 
GitLab