Accueil Github ↗
Itération 3

Évaluation et roue de la chance

Bilan post-activité : smileys d'évaluation (1–3), aiguillage vers la Roue de la Chance si note de 3, animation de rotation et attribution des DB gagnés.

Le dossier UserInterface/Evaluation/ gère le pipeline de fin d’activité.

Pipeline

  1. Le joueur arrive sur l’évaluation avec 3 smileys (Mauvais = 1, Moyen = 2, Bon = 3).
  2. Si note ≤ 2 : l’interface enregistre le score et retourne au menu principal.
  3. Si note = 3 : l’évaluation se masque et la Roue de la Chance apparaît.
  4. Le joueur tourne la roue, reçoit des DB, puis quitte.

EvaluationMenu — passerelle

Gère la première étape. Capture le clic sur un smiley, enregistre la note et décide de la suite.

ChampTypeDescription
titreTextMeshProUGUIEn-tête (passe de “Évaluation” à “Roue de la chance”)
evaluationCanvaGameObjectPanneau des 3 smileys
luckyWheelCanvaGameObjectPanneau de la roue (masqué par défaut)

onSmileyClick(int value) : déclenche OnSmileyClick, cache l’évaluation et affiche la roue si value == 3, sinon charge le menu principal.

LuckyWheelMenu — interface de la roue

Bloque les interactions pendant la rotation et ajoute les DB gagnés au joueur à la fin.

ChampTypeDescription
luckyWheelLuckyWheelComposant mécanique de la roue
_textTextMeshProUGUIConsigne, puis message de victoire (“Bravo ! Tu as gagné X DB !”)
_spinButtonButtonBouton de lancement
_nextButtonGameObjectBouton de sortie (n’apparaît qu’une fois la récompense distribuée)
MéthodeDescription
RotateNow()Désactive le bouton, demande à LuckyWheel de tourner avec OnWheelRotationComplete comme callback
OnWheelRotationComplete(int giftValue)Ajoute les DB via DBManager.AddDynamoBloc(), met à jour le texte et affiche le bouton de sortie

LuckyWheel — mécanique de la roue

Moteur physique et mathématique. Génère les récompenses sur les tranches et anime la rotation.

ChampTypeDescription
_numberOfGiftintNombre de tranches (défaut : 8)
_timeRotate, _numberCircleRotatefloatDurée de l’animation et nombre de tours complets
curveAnimationCurveCourbe d’accélération/décélération pour un effet réaliste
_giftsList<int>Montants de DB possibles (ex. 10, 50, 100, 500)
MéthodeDescription
InitializeGift()Au Start(), parcourt les tranches et assigne un montant aléatoire depuis _gifts
RotateWheel(Action<int> onRotationComplete)Coroutine : calcule l’angle d’arrivée (tours complets + angle précis de la case gagnante), fait tourner via AnimationCurve, puis renvoie la valeur gagnante au menu via le callback