A little Example:
Code: Select all
InitEngine3D()
InitSprite()
InitMouse()
InitKeyboard()
Global Now.l, FrameDuration.w
Global Stats.i, Camera.i
Procedure DrawStats()
StartDrawing(SpriteOutput(Stats))
DrawText(0, 0, "FpS: "+Str(Engine3DFrameRate(#PB_Engine3D_Current)))
DrawText(0,20, "Duration: "+Str(FrameDuration))
DrawText(0,40, "Pos.: "+StrF(CameraX(Camera),2)+"/"+StrF(CameraY(Camera),2)+"/"+StrF(CameraZ(Camera),2))
StopDrawing()
DisplaySprite(Stats, 0,0)
EndProcedure
OpenScreen(1024,768,32, "3DTry")
Camera=CreateCamera(#PB_Any, 0,0, 100,100)
CameraLocate(Camera, 0, 0.75, 1)
CameraLookAt(Camera, 0, 0.75, 0)
Stats=CreateSprite(#PB_Any, 256, 70)
CreateTexture(0, 256,256)
StartDrawing(TextureOutput(0))
Box(0,0,256,2586,RGB(0,0,255))
StopDrawing()
CreateMaterial(0, TextureID(0))
CreateCube(0,1)
CreateEntity(0, MeshID(0), MaterialID(0),0,0,0)
Now=ElapsedMilliseconds()
Repeat
;{ Keys
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Up)
MoveCamera(Camera, 0,0,-0.1)
ElseIf KeyboardPushed(#PB_Key_Down)
MoveCamera(Camera, 0,0,0.1)
EndIf
If KeyboardPushed(#PB_Key_Left)
MoveCamera(Camera, -0.1,0,0)
ElseIf KeyboardPushed(#PB_Key_Right)
MoveCamera(Camera, 0.1,0,0)
EndIf
If KeyboardPushed(#PB_Key_PageUp)
MoveCamera(Camera, 0,0.1,0)
ElseIf KeyboardPushed(#PB_Key_PageDown)
MoveCamera(Camera, 0,-0.1,0)
EndIf
If KeyboardPushed(#PB_Key_Escape)
CloseScreen()
End
EndIf
;}
;{ Stats und show Screen
If IsScreenActive()=0
CloseScreen()
End
EndIf
RenderWorld()
OldNow=Now
Now=ElapsedMilliseconds()
FrameDuration=Now-OldNow
DrawStats()
FlipBuffers()
;}
ForEver