Publié : mer. 30/mai/2007 17:03
Bon, après essai playsound(monson,2) n'est pas vraiment concluant. Le volume fini par baissé, et ce n'est pas vraiment polyphonique. J'en suis revenu à la solution évoquée plus haut, c'est à dire que je charge N fois le son dans une liste, avec N identifiants différents. A chaque fois que je joue le son, j'appelle l'élement suivant de la liste. On a alors une polyphonie à N sons. L'avantage est aussi de pouvoir changer la fréquence de chaque son.....
Code : Tout sélectionner
Structure Alien
sprite.l
sound.l
EndStructure
Global NewList SonAliens.l()
Global NewList Aliens.Alien()
#MaxSonAlien=5
If InitSprite()=0 Or InitKeyboard()=0 Or InitSound()=0
MessageRequester("Erreur","Pb ouverture DirectX",#PB_MessageRequester_Ok)
End
EndIf
OpenConsole()
ClearList(SonAliens())
For i=0 To #MaxSonAlien
AddElement(SonAliens())
SonAliens()=LoadSound(#PB_Any,"alien.wav")
If SonAliens()
Debug "Son AlienN°"+Str(i)+" initialisé :"+Str(SonAliens())
Else
Debug "Son AlienN°"+Str(i)+" pas initialisé ..."
EndIf
Next i
FirstElement(SonAliens())
Repeat
NbreAliens=NbreAliens+1
PrintN("Creation du sprite "+Str(NbreAliens))
;On crée un alien
AddElement(Aliens())
;aliens()\sprite=Ect
If NextElement(SonAliens())=0 ;On boucle la liste
FirstElement(SonAliens())
EndIf
Aliens()\sound=SonAliens()
PlaySound(Aliens()\sound)
SoundFrequency(Aliens()\sound,20000+Random(70000))
Delay(500+Random(1500))
ExamineKeyboard()
Until NbreAliens>100