Itération 3 / Gameplay
AP — Entraînement par intervalles
Pause Active : mécanique d'intervalles APMV/APL, configuration (MenuParameters) et transfert de données (UserSettings).
L’entraînement par intervalles est le seul mode du dossier Gameplay/AP/. La classe fait des cycles alternés d’effort intense (APMV) et de récupération (APL), sans composante cognitive.
Flux de l’activité
MenuParameters → UserSettings → SceneLoader → GameManager
↓
(listes d'animations, durées, nb cycles, mode silencieux)
- Démarrage : musique aléatoire (
apPlaylist), personnages en Idle (ID 37), animations APMV et APL chargées et mélangées depuis AnimationDatabase selon les tags.
- Boucle :
NbrCycles répétitions de StartIntervalle — une fois APMV (effort), une fois APL (repos).
- Un intervalle : animation affichée, son vocal lancé, compte à rebours sonore 2s avant la fin, temps comptabilisé via
DailyGoalManager.
- Fin : interface nettoyée, travelling caméra, animation de célébration,
BilanAP affiché après 3 secondes.
GameManager.cs
Orchestrateur de la scène. Pilote les animations des personnages, la progression et le comptage du temps.
Champs sérialisés
| Catégorie | Champ | Type | Description |
|---|
| UI | nomMouvement | AutoResizableLabel | Affiche le nom de l’animation en cours |
| UI | dbValue | AutoResizableLabel | Affiche le solde de Dynamo-Blocs |
| UI | segmentedProgressBar | SegmentedProgressBar | Barre de progression segmentée |
| UI | bilanAP | BilanAP | Panneau de résumé affiché en fin d’activité |
| UI | startFrame | GameObject | Fenêtre de démarrage |
| Personnages | robotAnimationController | AnimationController | Animations du robot |
| Personnages | avatarAnimationController | AnimationController | Animations de l’avatar |
| Divers | dollyCart | CameraTravelling | Travelling Cinemachine déclenché en fin d’activité |
Méthodes importantes
| Méthode | Description |
|---|
LoadAnimations(AnimationTag intensity) | Récupère les animations filtrées par UserSettings.TagsApmv / TagsApl et les mélange (Fisher-Yates). |
StartActivity() | Point d’entrée public. Stoppe toute coroutine précédente et lance StartActivity_Coroutine(). |
StartIntervalle(...) | Coroutine gérant un intervalle : affichage, audio, chrono, compte à rebours sonore, enregistrement AP. |
EndActivity() | Stoppe l’activité. Si le jeu n’avait pas commencé, recharge le menu principal. Sinon, lance la séquence de fin. |
EndActivityAfterBilanAP() | Appelée par le panneau de bilan pour retourner au menu principal via SceneLoaderWithChargement. |
Gère l’interface de configuration avant le lancement. Écoute les sélecteurs (temps, répétitions), calcule la durée totale en temps réel, enregistre les paramètres et charge la scène.
Champs sérialisés
| Champ | Type | Description |
|---|
effortDuration | TimeSelector | Durée d’un intervalle d’effort (secondes) |
recuperationDuration | TimeSelector | Durée d’un intervalle de récupération (secondes) |
repetitions | IntSelector | Nombre de cycles complets |
isSilent | BoolSelector | Active ou désactive le mode silencieux |
activityDuration | TextMeshProUGUI | Affiche la durée totale estimée |
Méthodes importantes
| Méthode | Description |
|---|
DisplayDuration() | Calcule la durée totale (effort + récupération) × répétitions et formate le texte (ex. “1 min et 30 sec”). |
Commencer() | Sauvegarde les paramètres dans UserSettings, pioache une scène aléatoire via ScenesDatabase.GetRandomAPScenePath(), lance la transition. |
SetPresetTabata2() / SetPresetTabata4() | Effort 20 s, récupération 10 s — 4 ou 8 répétitions. |
SetPresetEquilibre15() / SetPresetEquilibre10() | Effort et récupération identiques (15 s ou 10 s) — 4 ou 6 répétitions. |
UserSettings.cs
Classe statique servant de pont entre MenuParameters et GameManager. Stocke les choix de l’utilisateur pour qu’ils survivent au chargement de scène.
| Propriété | Valeur par défaut | Description |
|---|
ApmvDuration | 20f | Durée d’un intervalle d’effort (s) |
AplDuration | 10f | Durée d’un intervalle de récupération (s) |
NbrCycles | 4 | Nombre de cycles complets |
IsSilent | false | Mode silencieux activé ou non |
TagsApmv | AP, APMV | Tags pour filtrer les animations d’effort |
TagsApl | AP, APL | Tags pour filtrer les animations de récupération |
| Méthode | Description |
|---|
SaveSettings(...) | Écrase les anciennes valeurs. Si isSilent est vrai, ajoute AnimationTag.Silencieux aux listes de tags. |
ResetTags() | Remet les tags à leur état d’origine pour qu’un réglage silencieux précédent ne persiste pas. |