66 lines
1.6 KiB
TeX
66 lines
1.6 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[y=.5]{Engine}{
|
|
objects : tableau de \texttt{Object}\\
|
|
goLeftKey: booléen\\
|
|
goRightKey : booléen\\
|
|
clock : horloge
|
|
}{
|
|
draw() : vide\\
|
|
update() : vide
|
|
}
|
|
|
|
\umlclass[x=6,y=-1]{State}{
|
|
objects : tableau de \texttt{Object}\\
|
|
goLeftKey: booléen\\
|
|
goRightKey : booléen\\
|
|
delta : flottant
|
|
}{}
|
|
|
|
\umlabstract[y=-4]{Object}{
|
|
position : vecteur\\
|
|
charge : entier signé
|
|
}{
|
|
\umlvirt{draw(fenêtre : Fenêtre) : vide}\\
|
|
\umlvirt{update(état : State) : vide}\\
|
|
\umlvirt{getLayer() : entier}\\
|
|
getPosition() : vecteur\\
|
|
getCharge() : entier signé
|
|
}
|
|
|
|
\umlabstract[y=-8,x=4]{PhysicsObject}{
|
|
velocity : vecteur\\
|
|
mass : flottant
|
|
}{
|
|
getForces(état : State) : vecteur\\
|
|
update(état : State) : vide
|
|
}
|
|
|
|
\umlclass[y=-11.5,x=4]{Ball}{}{
|
|
draw(fenêtre : Fenêtre) : vide\\
|
|
getForces(état : State) : vecteur\\
|
|
getLayer() : 1
|
|
}
|
|
|
|
\umlclass[y=-8,x=-4]{Block}{}{
|
|
draw(fenêtre : Fenêtre) : vide\\
|
|
update(état : State) : vide\\
|
|
getLayer() : 0
|
|
}
|
|
|
|
\umlcompo{Engine}{Object}
|
|
\umlinherit{Object}{Block}
|
|
\umlinherit{Object}{PhysicsObject}
|
|
\umlinherit{PhysicsObject}{Ball}
|
|
\end{tikzpicture}
|
|
\end{document}
|