APA — Mode Pendu
Activité Physiquement Actif : alternance entre phase de réflexion (pendu) et phase physique, architecture ping-pong entre deux GameManagers.
[!NOTE] Ce mode n’est pas utilisé dans l’itération 3. La documentation couvre l’architecture pour référence.
Le mode Pendu alterne entre deux phases : une phase de réflexion (deviner des lettres) et une phase physique (intervalles APMV/APL). Deux GameManager distincts se passent le relais via un bus d’événements, masqués par une transition d’écran.
Architecture — le ping-pong
GameManagerAPAPendu_Pendu ←→ PenduEventManager ←→ GameManagerAPAPendu_AP
↑
TransitionCamera (masque le changement de caméra)
GameManagerAPAPendu_Pendu — phase de réflexion
Gère la phase de devinette. Charge les mots (depuis les bases du MELS ou des listes personnalisées), gère les clics sur le clavier virtuel, met à jour l’interface et distribue des DB en cas de victoire.
| Variable | Description |
|---|---|
wordToFind / wordSimplify | Le mot à deviner et sa version sans accents ni espaces |
wrongTry | Compteur d’erreurs (limité à NbrOfWrongTry = 10) |
nomEleve | Étiquette UI affichant quel élève (tiré au sort) doit répondre |
| Méthode | Description |
|---|---|
VerifyLetter(string letter) | Vérifie si la lettre est dans le mot, affiche la lettre ou comptabilise une erreur |
WordFind() / WordNotFind() | Gère les séquences de fin (gagné/perdu), animations, et déclenche le retour à l’AP |
StartPhaseAP() | Émet l’événement pour basculer sur la phase physique |
GameManagerAPAPendu_AP — phase physique
Variante simplifiée de l’entraînement par intervalles, calibrée pour les entre-deux du pendu (2 cycles : 20 s effort / 10 s repos).
| Variable | Description |
|---|---|
_apmvDuration, _aplDuration, _nbrCycles | Paramètres de l’intervalle physique |
segmentedProgressBar | Barre de progression UI |
_apmvAnimationsList / _aplAnimationsList | Listes d’animations chargées et mélangées |
| Méthode | Description |
|---|---|
InitialisationAPPendu() | Point d’entrée déclenché par l’événement. Initialise et lance l’activité. |
StartActivity_Coroutine() | Boucle principale des cycles effort/récupération |
StartIntervalle(...) | Gère un mouvement, le compte à rebours sonore et l’attribution des points |
PenduEventManager — bus d’événements
Classe statique servant de pont entre les deux GameManager pour éviter un couplage direct.
| Événement | Déclencheur |
|---|---|
OnPenduPhaseFinished | Signal pour démarrer la phase physique |
OnAPPhaseFinished | Signal pour reprendre la phase pendu |
TransitionCamera — masque de transition
Gère l’effet de transition (un cercle noir qui se referme puis se rouvre) pendant le changement de caméras et de Canvas entre les deux modes.
| Variable | Description |
|---|---|
imageTransition | Image UI noire pour l’effet de masque |
taillePosMaxImageTransition / taillePosMinImageTransition | Tailles d’interpolation pour l’effet de trou de serrure |
JouerTransition() : coroutine complète qui ferme l’écran, inverse les caméras et canvas, puis rouvre.
FloattingIslandManager_APAPendu — décor
Gère les îles volantes qui remplacent le bonhomme pendu classique. Chaque erreur fait tomber une île.
| Méthode | Description |
|---|---|
GenerateNewIslands() | Instancie les îles selon le nombre de vies (10) pour chaque nouveau mot |
RemoveOneIslandEntity() | Connectée à OnWrongTry. Fait couler la dernière île à chaque erreur. |