From 5a5cd4386c737cde7404db1869187d38df636fe9 Mon Sep 17 00:00:00 2001 From: Louis MALTERRE <malterre.louis@laposte.net> Date: Sun, 27 Nov 2022 21:21:57 +0100 Subject: [PATCH] j'ai rendu les choses un peu plus belles et claires pour l'evolution du personnage dans le jeu (evolution de ses coordonnees) LM --- .../src/main/java/entity/Character.java | 35 +++++++++---------- MAVENProject/src/main/java/jeu/Jeu.java | 23 +++++------- .../main/java/loaders/CharacterLoader.java | 8 ++--- 3 files changed, 30 insertions(+), 36 deletions(-) diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index 72bb088..e1f836b 100644 --- a/MAVENProject/src/main/java/entity/Character.java +++ b/MAVENProject/src/main/java/entity/Character.java @@ -35,7 +35,7 @@ public class Character extends Entity{ } @Override public void deplacements(){ // alpha indique si il est au sol ou non, il vaut 0 ou 1 en fonction - getGameCommand(); + double delta = Math.pow(10, -3); // pas de temps remis en secondes //on actualise les positions @@ -57,7 +57,7 @@ public class Character extends Entity{ else vitesseActuZ = vitesseActuZ + 7*((1-alpha)*Physique.g - tableCommande.get("CommandZ"))*delta; //System.out.println("vitesse z: "+vitesseActuZ); - resetCommand(); + } @Override public void attaque(){ @@ -66,35 +66,34 @@ public class Character extends Entity{ public void getGameCommand(){ Map<String,Boolean> commandeJeu = Jeu.getDirectionJeu(); - if (commandeJeu.get("Right") && commandeJeu.get("Left")){} + if (commandeJeu.get("Right") && commandeJeu.get("Left")){tableCommande.replace("CommandX", (double)0);} else if (commandeJeu.get("Right")) tableCommande.replace("CommandX", vitesseMax); else if (commandeJeu.get("Left")) tableCommande.replace("CommandX", -vitesseMax); - if (commandeJeu.get("Jump")) { - if (this.getCoord().getZ() < Jeu.getCoordSol().getZ())alpha = 0; - else if (this.getVitesseActuZ() == 0){tableCommande.replace("CommandZ", impulsionSaut);/*A.add(charac.getCoord().getZ());n++;*/} - } - else { - tableCommande.replace("CommandZ", (double)0); - if (this.getCoord().getZ() < Jeu.getCoordSol().getZ()) { //a retoucher, j'ai besoin d'autres choses pour avancer - alpha = 0; - } - else{ - alpha = 1; - } + + if (commandeJeu.get("Jump")) { + if ((alpha == 1) && (this.getVitesseActuZ() == 0)){ + tableCommande.replace("CommandZ", impulsionSaut); + } } - - } - void resetCommand(){ + public void checkIfOnGround(){ // faut modifier la condition pour la gestion de colisions avec le sol + if (this.getCoord().getZ() < Jeu.getCoordSol().getZ())alpha = 0; + else alpha = 1; + } + + public void resetCommand(){ for (String key : tableCommande.keySet()){ tableCommande.replace(key, (double)0); } } public void evolveCharacter(){ + getGameCommand(); + checkIfOnGround(); deplacements(); + resetCommand(); } public double getVitesseMax() { diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java index 1814208..7ad7b95 100644 --- a/MAVENProject/src/main/java/jeu/Jeu.java +++ b/MAVENProject/src/main/java/jeu/Jeu.java @@ -4,9 +4,9 @@ import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.net.URL; -import java.util.ArrayList; + import java.util.HashMap; -import java.util.List; + import java.util.Map; import entity.Character; @@ -66,16 +66,11 @@ public class Jeu implements Game{ directionJeu.put("Attack",false); //on remplit la map des frames - Map<String,List<String>> tempMap = gameCharacterLoader.getPathTable(); + Map<String,Integer> tempMap = gameCharacterLoader.getPathTable(); - tempMap.put(movement,new ArrayList<String>()); - tempMap.get(movement).add("1"); - tempMap.get(movement).add("2"); + tempMap.put(movement,2); - tempMap.put("Character_attack",new ArrayList<String>()); - tempMap.get("Character_attack").add("1"); - tempMap.get("Character_attack").add("2"); - tempMap.get("Character_attack").add("3"); + tempMap.put("Character_attack",3); gameCharacterLoader.setPathTable(tempMap); @@ -96,10 +91,10 @@ public class Jeu implements Game{ boolean Attack = command.get("Attack"); - //perso evolue dans le jeu + //perso evolue dans le jeu (en actualisant ses coordonnees) gameCharacter.evolveCharacter(); - //animation du perso dans le jeu (definir la bonne frame a tel instant) + //animation du perso dans le jeu (definir la bonne frame a cet instant) if (Attack) { movement = "Character_attack"; characterAttacking = true; @@ -121,14 +116,14 @@ public class Jeu implements Game{ //si on a change de mouvement, le jeu doit redemarrer a la premiere frame correspondante if (previousMovement != movement){numberOfMovement = 1;nbBeforeFramechgt = nbIterationPerFrame;} - if (numberOfMovement == gameCharacterLoader.getPathTable().get(movement).size()){ + if (numberOfMovement == gameCharacterLoader.getPathTable().get(movement)){ //characterNotMoving = true; if (movement == "Character_attack"){ characterAttacking = false; } } if ((nbIterationPerFrame-nbBeforeFramechgt) == nbIterationPerFrame) { // timer pour changer de frame - numberOfMovement = numberOfMovement%gameCharacterLoader.getPathTable().get(movement).size() + 1; //a revoir + numberOfMovement = numberOfMovement%gameCharacterLoader.getPathTable().get(movement) + 1; //a revoir nbBeforeFramechgt = nbIterationPerFrame; } else nbBeforeFramechgt--; diff --git a/MAVENProject/src/main/java/loaders/CharacterLoader.java b/MAVENProject/src/main/java/loaders/CharacterLoader.java index e33010a..177fdad 100644 --- a/MAVENProject/src/main/java/loaders/CharacterLoader.java +++ b/MAVENProject/src/main/java/loaders/CharacterLoader.java @@ -13,13 +13,13 @@ public class CharacterLoader { // classe qui cree le perso private String skinPath; // chemin du skin a l'instant t du jeu //private String nameImageOfSkin; // nom de l'image du skin (le truc fonctionne comme ca) private Image imageCharacter; - private Map<String,List<String>> pathTable; // objet utilise a revoir + private Map<String,Integer> pathTable; // objet utilise a revoir public CharacterLoader(String path,Character charac){ gameCharacter = charac; skinPath = path; imageCharacter = new ImageIcon(path).getImage(); - pathTable = new HashMap<String,List<String>>(); + pathTable = new HashMap<String,Integer>(); } @@ -44,11 +44,11 @@ public class CharacterLoader { // classe qui cree le perso this.skinPath = skinPath; } - public Map<String, List<String>> getPathTable() { + public Map<String, Integer> getPathTable() { return pathTable; } - public void setPathTable(Map<String, List<String>> pathTable) { + public void setPathTable(Map<String, Integer> pathTable) { this.pathTable = pathTable; } -- GitLab