106 lines
3.1 KiB
TeX
106 lines
3.1 KiB
TeX
\documentclass[tikz,border=30pt]{standalone}
|
|
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{lmodern}
|
|
\usepackage{tikz}
|
|
\usepackage{tikz-uml}
|
|
\usepackage[french]{babel}
|
|
|
|
\begin{document}
|
|
\begin{tikzpicture}
|
|
\umlclass{Manager}{
|
|
window : fenêtre\\
|
|
clock : horloge\\
|
|
elapsed\_time : flottant\\
|
|
resource\_manager : \texttt{ResourceManager}\\
|
|
keys : \texttt{[booléen]}\\
|
|
view : \texttt{View}
|
|
}{
|
|
start() : vide\\
|
|
getWindow() : fenêtre\\
|
|
getElapsedTime() : flottant\\
|
|
getResourceManager() : \texttt{ResourceManager}\\
|
|
isKeyPressed(key : touche) : booléen
|
|
}
|
|
|
|
\umlabstract[x=-4,y=-4.5]{View}{
|
|
manager : \texttt{Manager}
|
|
}{
|
|
\umlvirt{frame() : vide}
|
|
}
|
|
\umluniassoc{Manager}{View}
|
|
|
|
\umlclass[x=4,y=-4.5]{ResourceManager}{
|
|
textures : dictionnaire \texttt{string -> texture}
|
|
}{
|
|
getTexture(name : string) : texture
|
|
}
|
|
\umluniassoc{Manager}{ResourceManager}
|
|
|
|
\umlabstract[x=-4,y=-8.5]{Level}{
|
|
name : chaîne de caractères\\
|
|
background : sprite\\
|
|
objects : \texttt{[Object]}\\
|
|
zone : \texttt{[[flottant, flottant]]}
|
|
}{
|
|
\umlvirt{frame() : vide}\\
|
|
draw() : vide\\
|
|
load(file : fichier en lecture) : vide\\
|
|
save(file : fichier en écriture) : vide
|
|
}
|
|
\umlinherit{View}{Level}
|
|
|
|
\umlclass[x=-7,y=-12.5]{Editor}{}{
|
|
frame() : vide
|
|
}
|
|
\umlinherit{Level}{Editor}
|
|
|
|
\umlclass[x=-1,y=-12.5]{Game}{}{
|
|
frame() : vide\\
|
|
update() : vide
|
|
}
|
|
\umlinherit{Level}{Game}
|
|
|
|
\umlabstract[x=-4,y=-19]{Object}{
|
|
acceleration : vecteur\\
|
|
velocity : vecteur\\
|
|
position : vecteur\\
|
|
mass : flottant\\
|
|
charge : flottant\\
|
|
restitution : flottant\\
|
|
static\_friction : flottant\\
|
|
dynamic\_friction : flottant\\
|
|
layer : entier
|
|
}{
|
|
\umlvirt{draw() : vide}\\
|
|
\umlvirt{getForces(manager : \texttt{Manager}, objects : \texttt{[Object]}) : vecteur}\\
|
|
\umlvirt{draw(manager : \texttt{Manager}) : vide}\\
|
|
\umlvirt{getAABB() : boîte}\\
|
|
\hfill\\
|
|
updateVelocity(manager : \texttt{Manager}, objects : \texttt{[Object]}, delta : flottant) : vide\\
|
|
updatePosition(manager : \texttt{Manager}, objects : \texttt{[Object]}, delta : flottant) : vide\\
|
|
detectCollision(object : \texttt{Object}) : \texttt{CollisionData}\\
|
|
solveCollision(object : \texttt{Object}, normal : vecteur) : vide\\
|
|
positionalCorrection(object : \texttt{Object}, normal : vecteur, depth : flottant) : vide\\
|
|
}
|
|
\umlunicompo{Game}{Object}
|
|
\umlunicompo{Editor}{Object}
|
|
|
|
\umlclass[x=-8,y=-26]{Player}{
|
|
player\_number : entier non-signé
|
|
}{
|
|
getForces(manager : \texttt{Manager}, objects : \texttt{[Object]}) : vecteur\\
|
|
draw(manager : \texttt{Manager}) : vide\\
|
|
getAABB() : boîte
|
|
}
|
|
\umlinherit{Object}{Player}
|
|
|
|
\umlclass[y=-26]{Block}{}{
|
|
draw(manager : \texttt{Manager}) : vide\\
|
|
getAABB() : boîte
|
|
}
|
|
\umlinherit{Object}{Block}
|
|
\end{tikzpicture}
|
|
\end{document}
|