Merci Fred d'avoir améliorer le moteur Physique
Code sans les textures.
Code : Tout sélectionner
EnableExplicit
Enumeration 10
#Camera
#Light
#Cube
#Cube_Mesh
#Cylindre
#Cylindre_Mesh
#Sphere
#Sphere_Mesh
#Ground
#Ground_Mesh
EndEnumeration
Global Entity.i, RotX.i, RotY.i, RotZ, i.f, Sense.s="Right"
If InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(0,0,0,800,600,"3d",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,800,600,0,0,0)
WorldShadows(#PB_Shadow_Additive)
EnableWorldPhysics(1)
CreateCamera(#Camera,0,0,800,600)
CameraLocate(#Camera,5,5,-20)
CameraLookAt(#Camera,5,5,0)
CreateLight(#Light,RGB(255,255,255),0,50,-20)
CreateCylinder(#Cylindre_Mesh, 1, 5)
CreateEntity(#Cylindre, MeshID(#Cylindre_Mesh), #PB_Material_None)
EntityLocate(#Cylindre, 1, 1,0)
RotateEntity(#Cylindre, 90, 0, 90)
CreateCube(#Cube_Mesh, 1)
CreateEntity(#Cube, MeshID(#cube_Mesh), #PB_Material_None)
ResizeEntity(#Cube, 15, 0.2, 5)
EntityLocate(#Cube, 1, 2.2, 0)
RotateEntity(#Cube, 0, 0, -18)
EntityPhysicBody(#Cube, #PB_Entity_StaticBody, 2, 0, 0)
CreateSphere(#Sphere_Mesh, 1)
CreateEntity(#Sphere, MeshID(#Sphere_Mesh), #PB_Material_None)
EntityLocate(#Sphere, -1, 6,0)
EntityPhysicBody(#Sphere, #PB_Entity_BoxBody, 1, 0, 1)
CreateCube(#Ground_Mesh, 20)
CreateEntity(#Ground,MeshID(#Ground_Mesh), #PB_Material_None)
EntityLocate(#Ground,5,-10,-5)
EntityPhysicBody(#Ground, #PB_Entity_StaticBody, 1, 0, 0)
Repeat
RenderWorld()
;Balançoire
If i<18 And Sense="Right"
i + 0.3
Else
Sense="Left"
EndIf
If i>-18 And Sense="Left"
i - 0.3
Else
Sense="Right"
EndIf
RotateEntity(#Cube, 0, 0, i)
If ExamineMouse()
RotY = -MouseDeltaX()/10
RotX = -MouseDeltaY()/10
EndIf
RotateCamera(#Camera, RotX, RotY, RotZ, #PB_Relative)
FlipBuffers()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
ForEver
Else
MessageRequester("Information", "Impossible d'initialiser le moteur 3D")
EndIf