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
Branches
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
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
......
package engine;
import java.util.ArrayList;
import java.util.HashMap;
/**
......
......@@ -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
......
......@@ -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
......
......@@ -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);
}
......
......@@ -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() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment