Skip to content
Snippets Groups Projects
Commit 5a5cd438 authored by Louis MALTERRE's avatar Louis MALTERRE
Browse files

j'ai rendu les choses un peu plus belles et claires pour l'evolution du...

j'ai rendu les choses un peu plus belles et claires pour l'evolution du personnage dans le jeu (evolution de ses coordonnees)
LM
parent 29815132
No related branches found
No related tags found
No related merge requests found
......@@ -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() {
......
......@@ -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--;
......
......@@ -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;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment