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

animation idle faite, uml a peu pres a jour LM

parent 9e9bd570
No related branches found
No related tags found
No related merge requests found
Frames_perso/Character_attack3.png

2.51 KiB

...@@ -15,6 +15,13 @@ engine.GamePainter <|-- engine.DrawingPanel ...@@ -15,6 +15,13 @@ engine.GamePainter <|-- engine.DrawingPanel
environment.Coordonnees <|-- entity.Entity environment.Coordonnees <|-- entity.Entity
entity.Character <|-- environment.Physique 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 { interface engine.GameController {
+ Cmd getCommand() + Cmd getCommand()
} }
...@@ -73,9 +80,9 @@ class entity.Character { ...@@ -73,9 +80,9 @@ class entity.Character {
} }
class entity.Monster{ class entity.Monster{
+ Coordonnees positions + Coordonnees positions
+ int vmax
+ void deplacements() + void deplacements()
+ void attaque() + void attaque()
+ int vmax
} }
...@@ -86,6 +93,7 @@ abstract class entity.Entity{ ...@@ -86,6 +93,7 @@ abstract class entity.Entity{
- double entityWIDTH - double entityWIDTH
- double entityHEIGHT - double entityHEIGHT
+ void deplacements() + void deplacements()
+ Coordonnes getCoord()
+ void attaque() + void attaque()
} }
entity.Entity <|.. entity.Character entity.Entity <|.. entity.Character
...@@ -105,13 +113,24 @@ class environment.Coordonnees{ ...@@ -105,13 +113,24 @@ class environment.Coordonnees{
+ double getZ() + 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{ class jeu.Painter{
# {static} int WIDTH # {static} int WIDTH
# {static} int HEIGHT # {static} int HEIGHT
+ <<Create>> Painter() + <<Create>> Painter()
+ void draw(BufferedImage) + void draw(BufferedImage)
- void drawCharacter(Graphics2D) - void drawCharacter(Graphics2D,Character,Image)
- void drawSol(Graphics2D) - void drawSol(Graphics2D)
- void drawObstacle(Graphics2D) - void drawObstacle(Graphics2D)
+ int getWidth() + int getWidth()
...@@ -130,6 +149,8 @@ class jeu.Jeu{ ...@@ -130,6 +149,8 @@ class jeu.Jeu{
+ void evolve(Cmd) + void evolve(Cmd)
- HashMap directionJeu - HashMap directionJeu
+ boolean isFinished() + boolean isFinished()
- Character gameCharacter
- CharacterLoader gameCharacterLoader
} }
class environment.Physique{ class environment.Physique{
- double g - double g
......
package engine; package engine;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
/** /**
......
...@@ -46,7 +46,7 @@ public class Character extends Entity{ ...@@ -46,7 +46,7 @@ public class Character extends Entity{
if ((tableCommande.get("CommandZ") == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ()))newZ = Jeu.getCoordSol().getZ(); 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(); 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 this.setCoord(new Coordonnees(newX, newZ)); // on set les nouvelles coordonnees
...@@ -56,7 +56,7 @@ public class Character extends Entity{ ...@@ -56,7 +56,7 @@ public class Character extends Entity{
if ((tableCommande.get("CommandZ") == 0) && (this.getCoord().getZ() >= Jeu.getCoordSol().getZ())) vitesseActuZ = 0; 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; 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(); resetCommand();
} }
@Override @Override
......
...@@ -11,6 +11,7 @@ import engine.Game; ...@@ -11,6 +11,7 @@ import engine.Game;
import environnement.Coordonnees; import environnement.Coordonnees;
import loaders.CharacterLoader; import loaders.CharacterLoader;
public class Jeu implements Game{ public class Jeu implements Game{
private static Coordonnees coordSol = new Coordonnees(200,700); //coordonnees du sol (en realite juste Z nous interesse) 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{ ...@@ -18,11 +19,20 @@ public class Jeu implements Game{
private static Map<String,Boolean> directionJeu; private static Map<String,Boolean> directionJeu;
static CharacterLoader gameCharacterLoader; static CharacterLoader gameCharacterLoader;
String characterSkinPath; // jsp si c'est le jeu qui doit gerer ca, au pire vous pouvez changer 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) { public Jeu(String source) {
BufferedReader helpReader; 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>(); /*A = new ArrayList<Double>();
n = 0;*/ n = 0;*/
gameCharacterLoader = new CharacterLoader(characterSkinPath,new Character(new Coordonnees(200, 300), 2000, 1,600000)); gameCharacterLoader = new CharacterLoader(characterSkinPath,new Character(new Coordonnees(200, 300), 2000, 1,600000));
...@@ -47,9 +57,9 @@ public class Jeu implements Game{ ...@@ -47,9 +57,9 @@ public class Jeu implements Game{
@Override @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. 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().getX());
System.out.println(gameCharacter.getCoord().getZ()); System.out.println(gameCharacter.getCoord().getZ());*/
/*double comX,comZ; /*double comX,comZ;
int a = 1; int a = 1;
...@@ -83,7 +93,17 @@ public class Jeu implements Game{ ...@@ -83,7 +93,17 @@ public class Jeu implements Game{
} }
}*/ }*/
gameCharacter.evolveCharacter(); 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 @Override
......
...@@ -45,8 +45,8 @@ public class Painter implements GamePainter{ ...@@ -45,8 +45,8 @@ public class Painter implements GamePainter{
private void drawCharacter(Graphics2D crayon, Character charac,Image imageCharac){ private void drawCharacter(Graphics2D crayon, Character charac,Image imageCharac){
int x = (int) gameCharacter.getCoord().getX(); int x = (int) gameCharacter.getCoord().getX();
int y = (int) gameCharacter.getCoord().getZ(); int y = (int) gameCharacter.getCoord().getZ();
crayon.fillRect(x-15,y-30, (int) gameCharacter.getEntityWIDTH(),(int) gameCharacter.getEntityHEIGHT()); //crayon.fillRect(x-15,y-30, (int) gameCharacter.getEntityWIDTH(),(int) gameCharacter.getEntityHEIGHT());
crayon.drawImage(imageCharac, x-15, y-30, null, null); crayon.drawImage(imageCharac, x-30, y-60, null, null);
} }
......
...@@ -2,10 +2,6 @@ package loaders; ...@@ -2,10 +2,6 @@ package loaders;
import entity.Character; import entity.Character;
import java.awt.Image; import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
public class CharacterLoader { // classe qui cree le perso public class CharacterLoader { // classe qui cree le perso
...@@ -21,12 +17,8 @@ public class CharacterLoader { // classe qui cree le perso ...@@ -21,12 +17,8 @@ public class CharacterLoader { // classe qui cree le perso
} }
public void refreshImage(){ public void refreshImage(){
try { imageCharacter = new ImageIcon(skinPath).getImage();
imageCharacter = ImageIO.read(new File(skinPath));
} catch (IOException e) {
e.printStackTrace();
}
} }
public Character getGameCharacter() { public Character getGameCharacter() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment