Accueil Github ↗
Itération 3

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.

VariableDescription
wordToFind / wordSimplifyLe mot à deviner et sa version sans accents ni espaces
wrongTryCompteur d’erreurs (limité à NbrOfWrongTry = 10)
nomEleveÉtiquette UI affichant quel élève (tiré au sort) doit répondre
MéthodeDescription
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).

VariableDescription
_apmvDuration, _aplDuration, _nbrCyclesParamètres de l’intervalle physique
segmentedProgressBarBarre de progression UI
_apmvAnimationsList / _aplAnimationsListListes d’animations chargées et mélangées
MéthodeDescription
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énementDéclencheur
OnPenduPhaseFinishedSignal pour démarrer la phase physique
OnAPPhaseFinishedSignal 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.

VariableDescription
imageTransitionImage UI noire pour l’effet de masque
taillePosMaxImageTransition / taillePosMinImageTransitionTailles 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éthodeDescription
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.