skizzle/docs/rapports/rapport-final/figures/analyse-uml-level.tex

129 lines
4.3 KiB
TeX

\begin{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% ÉTATS DE JEU PRINCIPAUX %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Spécifications de l'état de jeu abstrait "niveau"
% qui est une collection d'objets
\umlabstract{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) : vide\\
load(file : string) : vide\\
save(file : string) : vide\\
\umlvirt{frame() : vide}\\
draw() : vide\\
addObject(object : \texttt{Object})\\
removeObject(object : \texttt{Object})
}
% Spécifications de l'état de jeu "éditeur" qui permet
% de modifier des niveaux de jeu
\umlclass[x=-6]{Editor}{
selection : \texttt{[Object]}
}{
enable() : vide\\
processEvent(event) : vide\\
frame() : vide\\
select(objet: \texttt{Object}) : vide\\
selectAll() : vide\\
clearSelection() : vide\\
}
\umlinherit{Level}{Editor}
% Spécifications de l'état de jeu "jeu" qui permet
% de jouer aux niveaux créés
\umlclass[x=6]{Game}{
mode : mode\\
next\_frame\_time : temps\\
pending\_kill : \texttt{[Object]}\\
time\_left : flottant
}{
enable() : vide\\
processEvent(event) : vide\\
frame() : vide\\
update() : vide\\
kill(objet : \texttt{Object}) : vide
}
\umlinherit{Level}{Game}
% Spécifications des objets du jeu
\umlabstract[y=-6.5]{Object}{
acceleration : vecteur\\
velocity : vecteur\\
position : vecteur\\
}{
\umlvirt{getForces(game : \texttt{Game}) : vecteur}\\
\umlvirt{activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur}\\
\umlvirt{getAABB() : boîte}\\
\umlvirt{getRadius() : flottant}\\
\umlvirt{draw(level : \texttt{Level}) : vide}
}
\umlunicompo{Level}{Object}
% Spécifications de l'objet "joueur"
\umlclass[x=-4,y=-11]{Player}{
player\_number : entier non-signé
}{
getForces(game : \texttt{Game}) : vecteur\\
draw(level : \texttt{Level}) : vide\\
activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur\\
getAABB() : boîte\\
getRadius() : flottant\\
}
\umlinherit{Object}{Player}
% Spécifications de l'objet "bloc"
\umlclass[x=4,y=-11]{Block}{}{
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}
% Spécifications de l'objet "bloc de fin" permettant
% quand il est activé de terminer le niveau
\umlclass[x=-2,y=-14]{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=6,y=-14]{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=-2,y=-16.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=6,y=-16.5]{SwitchBlock}{}{
prepareDraw(resources : \texttt{ResourceManager}) : vide\\
activate(game : \texttt{Game}, object : \texttt{Object}) : vecteur
}
\umlinherit{Block}{SwitchBlock}
\end{tikzpicture}