Oui j'ai vu les exceptions après coup, faudra que je nettoie un peu mieux l'archive. Mais ça n'empêche pas de faire fonctionner le code. Sauf que le code dans l'archive était prévu pour la 5.10.
J'ai oublié d'indiquer ici le code pour la 5.11, la seule différence c'est la commande CreateCompositorEffect() avec la 5.10 il fallait donner le numéro de la caméra, et la 5.11 c'est son ID (comme indiqué dans la doc).
Code : Tout sélectionner
;
; ------------------------------------------------------------
;
; PureBasic - Compositor
;
; (c) 2013 - Fantaisie Software
;
; ------------------------------------------------------------
;
#CameraSpeed = 2
IncludeFile "Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D(#PB_Engine3D_EnableCG)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
Add3DArchive("textures", #PB_3DArchive_FileSystem)
Add3DArchive("programs", #PB_3DArchive_FileSystem)
Add3DArchive("models", #PB_3DArchive_FileSystem)
Add3DArchive("packs/skybox.zip", #PB_3DArchive_Zip)
Add3DArchive("scripts", #PB_3DArchive_FileSystem)
Parse3DScripts()
; First create materials
;
CreateMaterial(0, LoadTexture(0,"grass1.png"))
MaterialBlendingMode(0, #PB_Material_AlphaBlend)
CreateMaterial(1, LoadTexture(1,"Dirt.jpg"))
; Then create the billboard group and use the previous material
;
;-Billboard
CreateBillboardGroup(0, MaterialID(0), 96, 96)
For i = 0 To 600
AddBillboard(#PB_Any, 0, Random(2000)-1000, Random(18) + 30, Random(2000) - 1000)
Next i
; create ground
CreatePlane(0, 2000, 2000, 40, 40, 4, 4)
CreateEntity(0, MeshID(0), MaterialID(1))
; Add house
LoadMesh(1, "tudorhouse.mesh")
LoadMesh(2, "tudorhouse.mesh")
CreateEntity(1, MeshID(1), #PB_Material_None, 0, 280, 0)
ScaleEntity(1, 0.5, 0.5, 0.5)
LoadMesh(3, "robot.mesh")
CreateEntity(3, MeshID(3), #PB_Material_None, 0, 0, 300)
StartEntityAnimation(3, "Walk")
ScaleEntity(3, 2, 2, 2)
RotateEntity(3, 0, -70, 0)
; SkyBox
SkyBox("stevecube.jpg")
; create camera
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 200, 400, 900, #PB_Absolute)
CameraLookAt(0, 0, 100, 0)
CreateCompositorEffect(0, CameraID(0), "Old Movie")
;CreateCompositorEffect(0, CameraID(0), "Old TV")
;CreateCompositorEffect(0, CameraID(0), "B&W")
;CreateCompositorEffect(0, CameraID(0), "Glass")
;CreateCompositorEffect(0, CameraID(0), "Sharpen Edges")
;CreateCompositorEffect(0, CameraID(0), "Posterize")
;CreateCompositorEffect(0, CameraID(0), "ASCII")
;CreateCompositorEffect(0, CameraID(0), "Embossed")
;CreateCompositorEffect(0, CameraID(0), "Tiling")
;CreateCompositorEffect(0, CameraID(0), "Night Vision")
Repeat
Screen3DEvents()
If ExamineMouse()
MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
EndIf
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
EndIf
RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
MoveCamera (0, KeyX, 0, KeyY)
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End