Outils pour utilisateurs

Outils du site


playground:music

Ceci est une ancienne révision du document !


14-Music.sb

Voir

14-Music.sb
;Babylon.sbi - Music
;Babylon.sbi - Template minimum
 
EnableExplicit
 
IncludeFile "babylon/babylon.sbi"
UseModule BJS
 
Global Scene, Camera, Light, Pop, Ground, GroundMat, Mesh
 
Declare LoadGame()
Declare RenderGame()
 
InitEngine(@LoadGame())
 
Procedure LoadGame()    
  Scene = CreateScene()
  If Scene
 
    ;Load Music
    MusicLoad("Loop", "data/sounds/loop.mp3", #True, #True)
    Pop = MusicLoad("pop", "data/sounds/pop.wav")
 
    ;Camera
    Camera = CreateCamera("camera", 0, 40, 20, #Free)
    CameraBodySize(Camera, 2, 20, 2)
    CameraLookAt(Camera, 500, 10, 1000)
    ClearScene(RGB(0, 0, 0))
    Light = CreateLight("Light", 0, 100, 0, 1, #Point)
 
    ;Ground
    Ground = CreateGround("Ground", 5000, 5000, 4)
    GroundMat = CreateMaterial("Ground", "data/textures/Beton1.png")
    SetMaterialColor(GroundMat, #Specular, RGBA(0, 0, 0, 255))
    ScaleMaterial(GroundMat, 40, 40)
    SetMaterial(Ground, GroundMat)    
    CreateBody(Ground, #PlaneBody, 0, 0, 0)
 
    ;Shadow
    InitShadow(Light, 2048)
    RenderShadows(Ground)
 
    RenderLoop(@RenderGame())
  EndIf
EndProcedure
 
Procedure RenderGame()  
  Select Random(1000, 1)
    Case 5, 25, 35
 
      Mesh = CreateSphere("sphere", Random(40, 20))
      CreateBody(Mesh, #SphereBody, 1, 0.5, 0.5)
      MoveMesh(Mesh, Random(500, 200), Random(500, 200), Random(500, 200))
      CreateBody(Mesh, #SphereBody, 10, 0.5, 10)
      ShadowEmitter(Mesh)
      MusicPlay(Pop)
 
    Case 10, 20, 30
      Mesh = CreateBox("Box", 1)
      ScaleMesh(Mesh, Random(40, 20), Random(20, 10), Random(40, 20))  
      CreateBody(Mesh, #BoxBody, 1, 0.5, 0.5)
      MoveMesh(Mesh, Random(500, 200), Random(500, 200), Random(500, 200))
      RotateMesh(Mesh, 0, Random(360), 0)
      CreateBody(Mesh, #BoxBody, 2, 1, 1)
      ShadowEmitter(Mesh)
      MusicPlay(Pop)
 
  EndSelect
 
  RenderWorld() 
EndProcedure
playground/music.1494597084.txt.gz · Dernière modification : 2023/03/15 15:51 (modification externe)