Hi,
I am currently developing an experiment that involves a training procedure, and I need to show correct or incorrect answers using a gauge. The issue I’m encountering is that my progress bar does not fill up completely or decrease with each correct or incorrect response. Instead, it only has three positions. Ideally, after each trial, the bar should take the last position and either increase or decrease by a specific step, resulting in a new position.
I am using PsychoPy version: v2014.1.5.
Any advice or help would be greatly appreciated!
Here is my code in Begin routine :
progress = 0.5
step = 0.05
Barre de progression
bar = visual.Rect(win, width=progress, height=0.1, pos=[0, 0], fillColor=“gray”, lineColor=None)
Texte explicatif
progress_text = visual.TextStim(win, text=“Progression”, pos=(0, 0.15), color=“black”, height=0.04)
Déterminer le feedback à afficher
if reinforcement == “positif”:
feedback_text.setText(“Correct !”)
feedback_text.setColor(‘green’)
progress = min(progress + step, 1.0) # Limite à 100%
bar.fillColor = “green”
elif reinforcement == “négatif”:
feedback_text.setText(“Incorrect !”)
feedback_text.setColor(‘red’)
progress = max(progress - step, 0.0) # Limite à 0%
bar.fillColor = “red”
Afficher les éléments (affichage automatique activé)
feedback_text.setAutoDraw(True)
progress_text.setAutoDraw(True)
bar.setAutoDraw(True)
Durée du feedback
feedback_duration = 2.0
feedback_clock = core.Clock()
feedback_clock.reset()
And here is my code in Each Frame :
Mise à jour de la largeur de la barre à chaque frame
bar.width = progress * 1.0 # La largeur de la barre est définie par la progression
Dessiner les éléments à chaque frame (la barre, le texte, etc.)
progress_text.draw() # Dessiner le texte explicatif
bar.draw() # Dessiner la barre de progression
Fin du feedback après le délai spécifié
if feedback_clock.getTime() >= feedback_duration:
feedback_text.setAutoDraw(False)
progress_text.setAutoDraw(False)
bar.setAutoDraw(False)
continueRoutine = False # Arrêter la routine après 2 secondes