@startuml title Diagramme UML des Cyberpac 2077 java.awt.event.KeyListener <|-- engine.GameController engine.GameController <|.. jeu.Controller engine.Game <|.. jeu.Jeu javax.swing.JPanel <|-- engine.DrawingPanel engine.GameController <|-- engine.GameEngineGraphical engine.Game <|-- engine.GameEngineGraphical engine.GamePainter <|-- engine.GameEngineGraphical engine.GraphicalInterface <|-- engine.GameEngineGraphical engine.DrawingPanel <|-- engine.GraphicalInterface 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() } class engine.GraphicalInterface { - DrawingPanel panel + <<Create>> GraphicalInterface(GamePainter,GameController) + void paint() } class engine.DrawingPanel { - {static} long serialVersionUID - GamePainter painter - BufferedImage nextImage - BufferedImage currentImage - int width + <<Create>> DrawingPanel(GamePainter) + void drawGame() + void paint(Graphics) } class start.Main { + {static} void main(String[]) } interface engine.GamePainter { + {abstract}void draw(BufferedImage) + {abstract}int getWidth() + {abstract}int getHeight() } interface engine.Game { + void evolve(Cmd) + boolean isFinished() } class engine.GameEngineGraphical { - Game game - GamePainter gamePainter - GameController gameController - GraphicalInterface gui + <<Create>> GameEngineGraphical(Game,GamePainter,GameController) + void run() } class entity.Character { - double masse - double impulsionSaut - HashMap tableCommand - int alpha - int nbLifePoints - double entityWIDTH - double entityHEIGHT - double vitesseActuX - double vitesseActuZ + void deplacements() + void resetCommand() + void getGameCommand() + void attaque() + void evolveCharacter() + void collisionsGestion() + int getNbLifePoints() + void setNbLifePoints(int) + int getAlpha() + double getM() + double getVitesseActuX() + double getVitesseActuZ() } class entity.Monster{ + void deplacements() + void attaque() } abstract class entity.Entity{ - HitBox hitBox - double vitesseMax - Coordonnees coord - double entityWIDTH - double entityHEIGHT + void deplacements() + Coordonnes getCoord() + void attaque() } entity.Entity <|.. entity.Character entity.Entity <|.. entity.Monster class environment.Obstacle{ } class environment.Hitbox{ - HashMap<String, Coordonnees> extremites + public {static} Boolean Collision() } class environment.Coordonnees{ - int x - int z + {static} int distance(Object,Object) + double getX() + 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,Character,Image) - void drawSol(Graphics2D) - void drawObstacle(Graphics2D) + int getWidth() + int getHeight() } class jeu.Controller { - boolean isRightPressed, isLeftPressed, isSpacePressed + <<Create>> Controller() + HashMap<String,Boolean> getCommand() + void keyPressed(KeyEvent) + void keyReleased(KeyEvent) + void keyTyped(KeyEvent) } class jeu.Jeu{ + <<Create>> Jeu(String) + void evolve(Cmd) - HashMap directionJeu + boolean isFinished() - Character gameCharacter - CharacterLoader gameCharacterLoader } class environment.Physique{ - double g } @enduml