Comment faire pour avoir joué la musique dans une boucle ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Comment faire pour avoir joué la musique dans une boucl

Message par Bernie »

personne pour m'aider svp?
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Comment faire pour avoir joué la musique dans une boucl

Message par falsam »

Tu as placé un PlaySound(#Music) dans la boucle d'évenement.

Ce qui veut dire que plusieurs fois par seconde ton mp3 redémarre. Tu es donc sans cesse au début de ton mp3. Donc tu ne l'entends pas.

je pense que tu voulais ta musique en fond.

Modifie les lignes 85 à 90 de cette maniére

Code : Tout sélectionner

;---Affichage des procedures :
CreationEtoiles()
Initialisation()
JoueMusique=#True
PlaySound(#Music, #PB_Sound_Loop) ;Joue en boucle
;--- On joue la musique 
et supprime à la ligne 106

Code : Tout sélectionner

  If JoueMusique= #True
    PlaySound(#Music)
    SoundVolume(#Music,30)
  EndIf
J'espére que ça répond à ta demande.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Comment faire pour avoir joué la musique dans une boucl

Message par falsam »

Vue que tu utilises les niveaux il y a une autre façon de faire avec ce code.

Code : Tout sélectionner

Select gScenes
    Case 0 ; Intro du jeu
      If JoueMusique=#False ;Si la musique est en cours de lecture #True alors inutile de la relancer
        PlaySound(#Music, #PB_Sound_Loop)
        JoueMusique = #True
      EndIf
      
      Intro_Game() 

      ;Si on appuie sur Espace on lance le jeu 
      If KeyboardPushed(#PB_Key_Space)
        
        StopSound(#Music)
        gScenes =1
      EndIf
    Case 1 ; le jeu 
      
      EndSelect
  
  FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape)
On se trouve de nouveau dans la boucle d'évenement du jeu.

Dans ce cas il te faut des indicateurs pour savoir si tu joues de la musique ou pas. C'est ce que tu as fait mais tu les utilises mal.

Peut être que tu as prévu de la musique pour chaque niveau ? dans ce cas tu testes si la musique est en cours de lecture. Si non (valeur#False) alors il faut commencer la lecture.

Un exemple pour le niveau 0 intro du jeu.

Code : Tout sélectionner

    Case 0 ; Intro du jeu
      If JoueMusique=#False 
        PlaySound(#Music, #PB_Sound_Loop)
        JoueMusique = #True 
      EndIf
Pour chaque niveau tu peux faire de cette manière.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: Comment faire pour avoir joué la musique dans une boucl

Message par Bernie »

Merci falsam de tes conseils
Répondre