Code : Tout sélectionner
EnableExplicit
IncludePath "core"
Enumeration window
#mf
EndEnumeration
Declare Start()
Declare Exit()
If InitEngine3D(#PB_Engine3D_DebugLog ) And InitKeyboard() And InitSprite() And InitMouse() And InitSound()
Start()
Else
MessageRequester("Information", "Erreur init 3D")
End
EndIf
Start()
Procedure Start()
Protected header, camera, light, mesh, texture, material, entity, fileName.s, filePath.s
Protected assetsDir.s = #PB_Compiler_Home + "Examples\3D\Data\Textures\"
OpenWindow(#mf, 0, 0, 1024, 768, "test", #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)
OpenWindowedScreen(WindowID(#mf), 0, 0, 1024 , 768)
BindEvent(#PB_Event_CloseWindow, @exit())
; Add3DArchive & Parse
Add3DArchive(assetsDir, #PB_3DArchive_FileSystem)
Parse3DScripts()
; [2D]
Header = CreateSprite(#PB_Any, 1024, 32, #PB_Sprite_AlphaBlending)
; [3D]
Camera = CreateCamera(#PB_Any, 0, 0, 100, 100)
CameraBackColor(Camera, RGB(169, 169, 169))
MoveCamera(Camera, 2, 4, 8)
CameraLookAt(Camera, 0, 0, 0)
Light = CreateLight(#PB_Any, RGB(255, 255, 255), -2000, 2000, 1000)
; Préparation de l'entité
mesh = CreateCube(#PB_Any, 2)
fileName.s = OpenFileRequester("Select image ...", assetsDir, "Image (png, jpg)|*.png;*.jpg", 0)
If fileName =""
fileName = assetsDir + "caisse.png"
EndIf
filePath = GetFilePart(fileName)
texture = LoadTexture(#PB_Any, filePath)
material = CreateMaterial(#PB_Any, TextureID(texture))
entity = CreateEntity(#PB_Any, MeshID(mesh), MaterialID(material))
;-Loop
Repeat
Repeat : Until WindowEvent() = 0
FlipBuffers()
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Escape)
exit()
EndIf
RenderWorld()
If StartDrawing(SpriteOutput(Header))
Box(0, 0, SpriteWidth(Header), SpriteHeight(Header), RGBA(0, 0, 0, 0))
DrawingMode(#PB_2DDrawing_AlphaChannel)
Box(0, 0, SpriteWidth(Header), SpriteHeight(Header), RGBA(0, 0, 0, 110))
DrawingMode(#PB_2DDrawing_Transparent)
; FPS
DrawText(5, 5, "FPS: " + Str(Engine3DStatus(#PB_Engine3D_CurrentFPS)))
StopDrawing()
EndIf
DisplayTransparentSprite(header, 0, 0)
ForEver
EndProcedure
Procedure Exit()
End
EndProcedure