@startuml activity-diagram start :Lancer la partie; repeat if (Le joueur percute un obstacle ?) then (Oui) :Le joueur meurt; :Animation de mort; :Augmenter le nombre d'essais de 1; :Perdre toutes les pièces et bonus; else (Non) ' --- Première Ligne --- partition "Saut" { if (L'utilisateur clique sur l'écran ?) then (Oui) :Le joueur effectue un saut; endif } partition "Bumper" { if (Le joueur touche un bumper ?) then (Oui) group Bumper Logic :Le joueur effectue un grand saut; if (Le bumper est actif ?) then (Oui) :Activer des particules; :Jouer un son de rebond; else (Non) :Aucune action; endif end group endif } partition "Forme" { if (Le joueur passe un portail ?) then (Oui) :Changement de forme; group Forme Details switch (Forme) case (Forme fusée) :Mode fusée; case (Forme roue) :Mode roue; case (Forme sens inversé) :Mode sens inversé; case (Forme gravité inversée) :Mode gravité inversée; endswitch end group endif } partition "Bonus" { if (Le joueur touche un bonus ?) then (Oui) group Bonus Logic :Ajouter le bonus à l'inventaire; end group endif if (Le joueur clique sur un bonus dans son inventaire ?) then (Oui) group Activation de Bonus :Le joueur clique sur un bonus dans l'inventaire; switch (Type de bonus) case (Temps ralenti) :Activer ralentissement du temps; :Temps ralenti : 3 secondes; case (Annulation d'obstacle) :Supprimer tous les obstacles; :Durée : 3 secondes; endswitch end group endif } partition "Collecte des Pièces" { if (Le joueur touche une pièce ?) then (Oui) group Collecte de Pièces :Ajouter la pièce au niveau; end group endif } endif ' --- Fin du Niveau --- partition "Fin du Niveau" { if (Le joueur touche la zone de fin ?) then (Oui) :Terminer le niveau; :Animation de fin de niveau; :Conserver les pièces obtenues; break endif } repeat while (Le joueur n'a pas fini le niveau) stop @enduml