Accueil Github ↗
Itération 3

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)
  1. 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.
  2. Boucle : NbrCycles répétitions de StartIntervalle — une fois APMV (effort), une fois APL (repos).
  3. Un intervalle : animation affichée, son vocal lancé, compte à rebours sonore 2s avant la fin, temps comptabilisé via DailyGoalManager.
  4. 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égorieChampTypeDescription
UInomMouvementAutoResizableLabelAffiche le nom de l’animation en cours
UIdbValueAutoResizableLabelAffiche le solde de Dynamo-Blocs
UIsegmentedProgressBarSegmentedProgressBarBarre de progression segmentée
UIbilanAPBilanAPPanneau de résumé affiché en fin d’activité
UIstartFrameGameObjectFenêtre de démarrage
PersonnagesrobotAnimationControllerAnimationControllerAnimations du robot
PersonnagesavatarAnimationControllerAnimationControllerAnimations de l’avatar
DiversdollyCartCameraTravellingTravelling Cinemachine déclenché en fin d’activité

Méthodes importantes

MéthodeDescription
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

ChampTypeDescription
effortDurationTimeSelectorDurée d’un intervalle d’effort (secondes)
recuperationDurationTimeSelectorDurée d’un intervalle de récupération (secondes)
repetitionsIntSelectorNombre de cycles complets
isSilentBoolSelectorActive ou désactive le mode silencieux
activityDurationTextMeshProUGUIAffiche la durée totale estimée

Méthodes importantes

MéthodeDescription
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éfautDescription
ApmvDuration20fDurée d’un intervalle d’effort (s)
AplDuration10fDurée d’un intervalle de récupération (s)
NbrCycles4Nombre de cycles complets
IsSilentfalseMode silencieux activé ou non
TagsApmvAP, APMVTags pour filtrer les animations d’effort
TagsAplAP, APLTags pour filtrer les animations de récupération
MéthodeDescription
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.