MàJ du diagramme de classes

This commit is contained in:
Mattéo Delabre 2016-04-17 21:12:32 +02:00
parent 3fa5387763
commit 137bdff9b1
2 changed files with 168 additions and 47 deletions

Binary file not shown.

View File

@ -9,60 +9,106 @@
\begin{document} \begin{document}
\begin{tikzpicture} \begin{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%
%% CLASSES GÉNÉRALES %%
%%%%%%%%%%%%%%%%%%%%%%%
% Spécifications du gestionnaire de jeu
\umlclass{Manager}{ \umlclass{Manager}{
window : fenêtre\\ window : fenêtre\\
clock : horloge\\
elapsed\_time : flottant\\
resource\_manager : \texttt{ResourceManager}\\ resource\_manager : \texttt{ResourceManager}\\
keys : \texttt{[booléen]}\\ clock : horloge\\
view : \texttt{View} states : pile de \texttt{State}
}{ }{
start() : vide\\ start() : vide\\
getWindow() : fenêtre\\ pushState(state : \texttt{State}) : vide\\
getElapsedTime() : flottant\\ popState() : vide
getResourceManager() : \texttt{ResourceManager}\\
isKeyPressed(key : touche) : booléen
} }
\umlabstract[x=-4,y=-4.5]{View}{ % Spécifications du gestionnaire de ressources
manager : \texttt{Manager}
}{
\umlvirt{frame() : vide}
}
\umluniassoc{Manager}{View}
\umlclass[x=4,y=-4.5]{ResourceManager}{ \umlclass[x=4,y=-4.5]{ResourceManager}{
textures : dictionnaire \texttt{string -> texture} textures : dictionnaire \texttt{string -> texture}\\
fonts : dictionnaire \texttt{string -> police}
music : musique
}{ }{
getTexture(name : string) : texture getTexture(name : string) : texture\\
getFont(name : string) : texture\\
getLevelPath(name : string) : string\\
playMusic(name : string) : vide\\
stopMusic() : vide
} }
\umluniassoc{Manager}{ResourceManager} \umluniassoc{Manager}{ResourceManager}
\umlabstract[x=-4,y=-8.5]{Level}{ % Spécfications d'un état de jeu
name : chaîne de caractères\\ \umlabstract[x=-4,y=-4.5]{State}{
background : sprite\\ manager : \texttt{Manager}
objects : \texttt{[Object]}\\
zone : \texttt{[[flottant, flottant]]}
}{ }{
\umlvirt{enable() : vide}\\
\umlvirt{processEvent(event : événement) : vide}\\
\umlvirt{frame() : vide}
}
\umlunicompo{Manager}{State}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% ÉTATS DE JEU PRINCIPAUX %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Spécifications de l'état de jeu abstrait "niveau"
% qui est une collection d'objets
\umlabstract[y=-11]{Level}{
name : string\\
background : sprite\\
music : string\\
camera : vue\\
gravity\_direction : direction\\
total\_time : entier\\
players : \texttt{[Player]}\\
objects : \texttt{[Object]}\\
zone : \texttt{[vecteur]}
}{
enable() : vide\\
processEvent(event : événement) : vide\\
load(file : string) : vide\\
save(file : string) : vide\\
\umlvirt{frame() : vide}\\ \umlvirt{frame() : vide}\\
draw() : vide\\ draw() : vide\\
load(file : fichier en lecture) : vide\\ addObject(object : \texttt{Object})\\
save(file : fichier en écriture) : vide removeObject(object : \texttt{Object})
} }
\umlinherit{View}{Level} \umlinherit{State}{Level}
\umlclass[x=-7,y=-12.5]{Editor}{}{ % Spécifications de l'état de jeu "éditeur" qui permet
frame() : vide % de modifier des niveaux de jeu
\umlclass[x=-3.5,y=-18]{Editor}{
selection : \texttt{[Object]}
}{
enable() : vide\\
processEvent(event : événement) : vide\\
frame() : vide\\
select(objet: \texttt{Object}) : vide\\
selectAll() : vide\\
clearSelection() : vide\\
} }
\umlinherit{Level}{Editor} \umlinherit{Level}{Editor}
\umlclass[x=-1,y=-12.5]{Game}{}{ % Spécifications de l'état de jeu "jeu" qui permet
% de jouer aux niveaux créés
\umlclass[x=3.5,y=-18]{Game}{
mode : mode\\
next\_frame\_time : temps\\
pending\_kill : \texttt{[Object]}\\
time\_left : flottant
}{
enable() : vide\\
processEvent(event : événement) : vide\\
frame() : vide\\ frame() : vide\\
update() : vide update() : vide\\
kill(objet : \texttt{Object}) : vide
} }
\umlinherit{Level}{Game} \umlinherit{Level}{Game}
\umlabstract[x=-4,y=-19]{Object}{ % Spécifications des objets du jeu
\umlabstract[y=-25]{Object}{
acceleration : vecteur\\ acceleration : vecteur\\
velocity : vecteur\\ velocity : vecteur\\
position : vecteur\\ position : vecteur\\
@ -73,33 +119,108 @@
dynamic\_friction : flottant\\ dynamic\_friction : flottant\\
layer : entier layer : entier
}{ }{
\umlvirt{draw() : vide}\\ \umlvirt{getForces(game : \texttt{Game}) : vecteur}\\
\umlvirt{getForces(manager : \texttt{Manager}, objects : \texttt{[Object]}) : vecteur}\\ \umlvirt{activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur}\\
\umlvirt{draw(manager : \texttt{Manager}) : vide}\\
\umlvirt{getAABB() : boîte}\\ \umlvirt{getAABB() : boîte}\\
\hfill\\ \umlvirt{getRadius() : flottant}\\
updateVelocity(manager : \texttt{Manager}, objects : \texttt{[Object]}, delta : flottant) : vide\\ \umlvirt{draw(level : \texttt{Level}) : vide}\\
updatePosition(manager : \texttt{Manager}, objects : \texttt{[Object]}, delta : flottant) : vide\\ updateVelocity(game : \texttt{Game}) : vide\\
detectCollision(object : \texttt{Object}) : \texttt{CollisionData}\\ updatePosition() : vide\\
solveCollision(object : \texttt{Object}, normal : vecteur) : vide\\ solveCollision(game : \texttt{Game}, object : \texttt{Object}, normal : vecteur) : vide\\
positionalCorrection(object : \texttt{Object}, normal : vecteur, depth : flottant) : vide\\ positionalCorrection(object : \texttt{Object}, normal : vecteur, depth : flottant) : vide\\
} }
\umlunicompo{Game}{Object} \umlunicompo{Level}{Object}
\umlunicompo{Editor}{Object}
\umlclass[x=-8,y=-26]{Player}{ % Spécifications de l'objet "joueur"
\umlclass[x=-4,y=-31.5]{Player}{
player\_number : entier non-signé player\_number : entier non-signé
}{ }{
getForces(manager : \texttt{Manager}, objects : \texttt{[Object]}) : vecteur\\ getForces(game : \texttt{Game}) : vecteur\\
draw(manager : \texttt{Manager}) : vide\\ draw(level : \texttt{Level}) : vide\\
getAABB() : boîte activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur\\
getAABB() : boîte\\
getRadius() : flottant\\
} }
\umlinherit{Object}{Player} \umlinherit{Object}{Player}
\umlclass[y=-26]{Block}{}{ % Spécifications de l'objet "bloc"
draw(manager : \texttt{Manager}) : vide\\ \umlclass[x=4,y=-31.5]{Block}{}{
getAABB() : boîte draw(level : \texttt{Level}) : vide\\
prepareDraw(resources : \texttt{ResourceManager}) : vide\\
activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur\\
getAABB() : boîte\\
getRadius() : flottant\\
} }
\umlinherit{Object}{Block} \umlinherit{Object}{Block}
% Spécifications de l'objet "bloc de fin" permettant
% quand il est activé de terminer le niveau
\umlclass[x=0,y=-35]{FinishBlock}{}{
prepareDraw(resources : \texttt{ResourceManager}) : vide\\
activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur
}
\umlinherit{Block}{FinishBlock}
% Spécifications de l'objet "bloc de gravité" permettant
% quand il est activé de réorienter la gravité du niveau
\umlclass[x=8,y=-35]{GravityBlock}{
gravity\_direction : direction
}{
prepareDraw(resources : \texttt{ResourceManager}) : vide\\
activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur
}
\umlinherit{Block}{GravityBlock}
% Spécifications de l'objet "bloc tueur" permettant
% quand il est activé par un joueur de le tuer
\umlclass[x=0,y=-37.5]{KillBlock}{}{
prepareDraw(resources : \texttt{ResourceManager}) : vide\\
activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur
}
\umlinherit{Block}{KillBlock}
% Spécifications de l'objet "bloc d'échange" permettant
% quand il est activé par un joueur d'échanger sa charge
\umlclass[x=8,y=-37.5]{SwitchBlock}{}{
prepareDraw(resources : \texttt{ResourceManager}) : vide\\
activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur
}
\umlinherit{Block}{SwitchBlock}
%%%%%%%%%%%%%%%%%%%%%%%%%%
%% ÉTATS DE JEU DU MENU %%
%%%%%%%%%%%%%%%%%%%%%%%%%%
% Spécifications de l'état de jeu "menu"
% qui est le premier état au démarrage et permet
% d'afficher les différents choix de jeu
\umlclass[x=-7,y=-11]{Menu}{
background : sprite\\
choices : \texttt{[string]}\\
actions : \texttt{[callback]}\\
selection : entier non-signé
}{
loadMainMenu() : vide\\
loadLevelMenu() : vide\\
loadEditorMenu() : vide\\
launchGame(path : string) : vide\\
launchEditor(path : string) : vide\\
launchRules() : vide\\
quit() : vide\\
enable() : vide\\
processEvent(event : événement) : vide\\
frame() : vide
}
\umlinherit{State}{Menu}
% Spécifications de l'état de jeu "règles" qui
% affiche l'image décrivant les règles
\umlclass[x=-14,y=-11]{Rules}{
background : sprite\\
}{
processEvent(event : événement) : vide\\
frame() : vide
}
\umlinherit{State}{Rules}
\end{tikzpicture} \end{tikzpicture}
\end{document} \end{document}