LoadSound3D()
Syntaxe
Resultat = LoadSound3D(#Son3D, NomFichier$ [, Option])Description
Charge un fichier son 3D en mémoire.
Arguments
#Son3D Le numéro d'identification du son 3D chargé.
#PB_Any peut être utilisé pour générer automatiquement ce numéro.NomFichier$ Le nom du fichier sonore, de type WAV ou OGG. Option (optionnel) #PB_Sound_Streaming: Active le support du streaming.
Valeur de retour
Renvoie une valeur non nulle en cas de succès, zéro sinon.
Remarques
Le son 3D doit être en mono.
Un son 3D n'a pas de position.
Il peut être attaché à un noeud pour avoir sa propre position. Un son 3D est joué par rapport à l'emplacement d'écoute. Pour modifier l'emplacement d'écoute, utilisez SoundListenerLocate().
Exemple
; Initialisation du monde 3D InitEngine3D() InitSprite() InitKeyboard() InitMouse() Add3DArchive(#PB_Compiler_Home+"Examples/3D/Data", #PB_3DArchive_FileSystem) Add3DArchive(#PB_Compiler_Home+"Examples/3D/Data/Packs/skybox.zip", #PB_3DArchive_Zip) Add3DArchive(#PB_Compiler_Home+"Examples/3D/Data/Textures", #PB_3DArchive_FileSystem) ; Ouverture de la fenêtre OpenWindow(0,0,0,1000,1000,"Le Son varie en fonction de la position de la planète",#PB_Window_ScreenCentered|#PB_Window_SystemMenu) OpenWindowedScreen(WindowID(0),0,0,1000,1000,1,0,0) ;Création du monde 3D SkyBox("stevecube.jpg"); cam=CreateCamera(#PB_Any, 0, 0, 100, 100) planete=CreateSphere(#PB_Any, 10) tex_planete=LoadTexture(#PB_Any, "clouds.jpg") material=CreateMaterial(#PB_Any,TextureID(tex_planete)) planeteE=CreateEntity(#PB_Any,MeshID(planete),MaterialID(material)) ; Chargement du fichier Son3d Wav ou Ogg, qui doit être mono son3D= LoadSound3D(#PB_Any,"Roar.ogg",#PB_Sound3D_Loop) SoundVolume3D(son3D, 20) ; Volume sonore à 20% SoundRange3D(son3D, 1, 100) ; Zone d'émission du son SoundCone3D(son3D, 90, 360, 20) ; Facultatif, Cône sonore ; Le Son est joué en boucle PlaySound3D(son3D, #PB_Sound3D_Loop) ; L'auditeur se déplace avec la caméra SoundListenerLocate(CameraX(cam),CameraY(cam),CameraZ(cam)) ; Le Son et la planète sont liés, ; ainsi si l'utilisateur déplace la planète, le son se déplace avec elle noeud=CreateNode(#PB_Any, 0, 0, -75) AttachNodeObject(noeud, SoundID3D(son3D)) AttachNodeObject(noeud, EntityID(planeteE)) ; Gestion de la fenêtre, du clavier et de la souris Repeat Repeat Event = WindowEvent() Select Event Case #PB_Event_CloseWindow End EndSelect Until Event = 0 ExamineKeyboard() ExamineMouse() If MouseDeltaX()>0 MoveNode(noeud,0.5,0,0) ElseIf MouseDeltaX()<0 MoveNode(noeud,-0.5,0,0) EndIf If MouseDeltaY()>0 MoveNode(noeud,0,-0.5,0) ElseIf MouseDeltaY()<0 MoveNode(noeud,0,0.5,0) EndIf If MouseButton(#PB_MouseButton_Left) <>0 End EndIf If MouseButton( #PB_MouseButton_Right) <>0 MoveNode(noeud,0,0,-75,#PB_Absolute) EndIf If KeyboardPushed(#PB_Key_Escape) quitter + 1 EndIf RotateNode(noeud,0.3,0.4,0.5,#PB_Relative) If KeyboardPushed(#PB_Key_Right) MoveNode(noeud,0.5,0,0) EndIf If KeyboardPushed(#PB_Key_Left) MoveNode(noeud,-0.5,0,0) EndIf If KeyboardPushed(#PB_Key_Up) MoveNode(noeud,0,0.5,0) EndIf If KeyboardPushed(#PB_Key_Down) MoveNode(noeud,0,-0.5,0) EndIf tiks = MouseWheel() If tiks > 0 MoveNode(noeud,0,0,5) EndIf If tiks < 0 MoveNode(noeud,0,0,-5) EndIf ; Affichage de la scène StartDrawing(WindowOutput(0)) DrawText(0,5,"X=" + Str(NodeX(noeud)) + " Y=" + Str(NodeY(noeud)) + " Z="+Str(NodeZ(noeud))) DrawText(0,30,"Souris ou Clavier: Haut, Bas, Droite, Gauche et Molette souris") DrawText(0,60,".: Echap ou clic gauche pour quitter :.") StopDrawing() RenderWorld() FlipBuffers() Until quitter End
Voir aussi
FreeSound3D(), IsSound3D()
OS Supportés
Tous