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

<- IsSound3D() - Sound3D Index - PlaySound3D() ->