
Graphics3D 800,600,32,1
SetBuffer BackBuffer()
Cam=CreateCamera()
MoveEntity Cam,0,5,-20
For q=1 To 8
Light=CreateLight(2)
LightColor Light,Rnd(255),Rnd(255),Rnd(255)
LightRange Light,10
MoveEntity Light,Rnd(40)-20,Rnd(40)-10,Rnd(40)-20
Next
Type Spheres
Field Model
End Type
SetFont LoadFont("Arial",14)
For NSph=1 To 10
Sph.Spheres=New Spheres
Sph\Model=CreateSphere(8)
EntityColor sph\Model,Rnd(255),Rnd(255),Rnd(255)
TurnEntity sph\Model,0,Rnd(360),0
Next
Global RenderTime#
Global Rendered#
;MAIN LOOP
While Not KeyHit(1)
RenderTime=MilliSecs()
;UPDATE UNITS ON 25hz
If MilliSecs()-LastUpdateUnits>=40 Then
;<=update units code here
;UPDATE SPHERES
For Sph.Spheres=Each Spheres
MoveEntity Sph\Model,0,0,0.4
TurnEntity Sph\Model,-4,0,0
For q=1 To rndf#
Next
Next
;-----------------------------
LastUpdateUnits=MilliSecs()
UpdateWorld()
EndIf
If KeyDown(28)
rndf#=20000
Else
rndf=1000
EndIf
;UPDATE CAMERA ON 50hz
If MilliSecs()-LastUpdateCamera>20 Then
;<=update camera code here
LastUpdateCamera=MilliSecs()
If Rendered>0 Then Rendered=Rendered-1
EndIf
;RENDRING
If Rendered<=0 Then
RenderWorld()
RenderTime=MilliSecs()-RenderTime
RenderTime=(RenderTime+LastRenderTime)/2
;FPS COUNTER- NOT NEADED, JUST FOR INFORMATION
FPS=FPS+1
If MilliSecs()>MS+1000 Then
MS=MilliSecs()
MaxFPS=FPS
FPS=0
EndIf
Text 10,10,"speed: "+100000/rndf +"%"
Text 10,50,"FPS: "+MaxFPS
Flip 0
Rendered=RenderTime/10
LastRenderTime=RenderTime
EndIf
Wend
End
Тогда этот код буду "прикручивать" к игре.
То есть этим методом ФПС контролировать!
Спасибо за ответ
