Programme avec Pygame

Fermé
Melodie23 - 2 mars 2020 à 18:51
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 - 3 mars 2020 à 17:21
Bonjour,

Je fais un stage en sciences cognitives et je suis un peut perdue car je dois coder mon expériences et je n’arrive pas à faire quelque chose ! J’ai une liste de sons ( des mots dit à l’orale) et j’ai fait une boucle pour que les participants entendent les sons un après l’autre avec un random.randint pour que ce soit aléatoire mais malheureusement mes sons ce superpose et je n’arrive pas à les faire ce suivre l’un après l’autre avec quelques seconde d’écart (3s)...comment faire ?

5 réponses

Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 323
2 mars 2020 à 18:57
Bonjour,

Puisque tu as commencé à écrire du code et pour que quelqu'un puisse te conseiller, il serait bon que tu postes ce code ci-dessous en lui affectant le format ad hoc avec la balise
<>
.
0
<import pygame>
<import mixer>
<import pygame.mixer>
<import random>
<import np>

<pygame.mixer.init()>

<amitie=pygame.mixer.Sound("C:/Users/melod/Documents/FAC/Master 1 Sciences Cognitives/Stage/AUDIO/TRACKS/amitié.wav")>

<amour=pygame.mixer.Sound("C:/Users/melod/Documents/FAC/Master 1 Sciences Cognitives/Stage/AUDIO/TRACKS/amour.wav")>

<balle=pygame.mixer.Sound("C:/Users/melod/Documents/FAC/Master 1 Sciences Cognitives/Stage/AUDIO/TRACKS/balle.wav")>

<L=[amitie, amour,balle]>

<while len(L)!=0:>
 <i=random.randint(0,len(L)-1)>
 <sound=L[i]>
 <L[i]=L[len(L)-1]> 
 <sound.play(0,0)>
 <L.pop(len(L)-1)>



Voici ce que j'ai déjà effectuer en terme de codage ! :)
Merci pour le conseil même si j'ai pas réussie a le faire bien s'affiché
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 323
Modifié le 2 mars 2020 à 19:23
Quand tu édites ton code, il y a en haut de la fenêtre d'édition la balise que je t'ai indiquée ;-)

Je modifie ton message...

PS : pour l'emploi de la balise, d'abord tu tapes le code, tu le sélectionnes puis tu utilises la balise.
0
Dragonflame777 Messages postés 16 Date d'inscription vendredi 10 avril 2015 Statut Membre Dernière intervention 2 mars 2020 2
2 mars 2020 à 19:21
Bonjour

essaye de suivre une certaine logique dans ton code
enfin c est juste un conseil .
si tu déclare que tu as 100 point de vie et que tu perde 1 point de vie
il te reste donc 99 point de vie
simple suite logique
0
Je comprend bien, j'ai enlevé petit a petit les sons de la liste pour éviter qu'il soit par la suite ouvert encore une fois . Ce qui m'empêche d'avancer c'est que tous mes morceaux ce lancent en même temps ou plutôt la boucle continue son chemin bien avant que le son ouvert soit terminé ce qui induit que tout ce superpose.

J'aimerais trouver une ligne de code me permettant de demander a la boucle de s'effectuer seulement a chaque fin de lecture d'audio pour éviter ce chevauchement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 344
3 mars 2020 à 17:21
Bonjour,
vous une fois que vous avez lancé le son, vous pouvez utiliser get_busy() sur le resultat pour savoir si le son est terminé. Exemple :
import pygame.time

son = sound.play(0,0)
while son.get_busy():
    pygame.time.wait(100)
0