FPS in modern machines.

Blitz3D Forums/Blitz3D Programming/FPS in modern machines.

Yue(Posted 2010) [#1]
Hi, I have a doubt, my menu of options for my project includes an option that desavilita vertical sync, thus winning for performance machines worse than mine, my question is if this option is enabled on modern machines with dual core most powerful accelerator cards, it means that my project will go faster?, if that is how I control my FPS not to exceed 60 frames per second.

greetings and thanks.




Tab(Posted 2010) [#2]
;TWEEN
Const Jug_CPS = 60
Global Jug_Period = 1000 / Jug_CPS
Global Jug_Tiempo = MilliSecs() - Jug_Period
Global Jug_FT#
;/////

Global mXSp#,mYSp#
Global IKdQ%,IKdW%,IKdE%,IKdA%,IKdS%,IKdD%

Graphics3D 1024, 768, 32, 6

Global Cam = CreateCamera()


Global Cube = CreateCube()
PositionEntity Cube,0,0,7
CreateLight(1)

While Not KeyHit(1)


   
   CheckTween()
   RenderWorld (Jug_FT)
   
   Text 10,25,"FPS: "+ FPS()
   
   Flip false

Wend


Function CheckTween()

   Timer = MilliSecs()
   
   Repeat
      Elapsed = ( MilliSecs() - Jug_Tiempo ) 
   Until Elapsed

   Ticks = Elapsed / Jug_Period
   
   Jug_FT# = Float( Elapsed Mod Jug_Period ) / Float( Jug_Period )
      
   For K = 1 To Ticks

      Jug_Tiempo = ( Jug_Tiempo + Jug_Period )
      
      If K = Ticks Then 
         CaptureWorld
         Game_Logic()
      EndIf
      
   Next


   
End Function


Function Game_Logic()

   UpdateInput
   UpdateCamera Cam,.05,.1   
   TurnEntity Cube,0,1,0
   

End Function

Function UpdateInput()

   mXSp#=MouseXSpeed() mYSp#=MouseYSpeed()
   MoveMouse 400,300

   IKdQ=KeyDown(16) IKdW=KeyDown(17)
   IKdE=KeyDown(18) IKdA=KeyDown(30)
   IKdS=KeyDown(31) IKdD=KeyDown(32)
   
End Function


Function UpdateCamera(Camera%,ViewSensivity#,MoveSensivity#)

   Local CamP#=EntityPitch(Camera)+mYSp*ViewSensivity
   If Abs(CamP)>80 CamP=80*Sgn(CamP)
   TurnEntity Camera,0,-mXSp*ViewSensivity,0
   RotateEntity Camera,CamP,EntityYaw(Camera),0
   
   MoveEntity Camera,(IKdD-IKdA)*MoveSensivity,(IKdE-IKdQ)*MoveSensivity,(IKdW-IKdS)*MoveSensivity
   
End Function

Global FPSCount = 0
Global FPSCountTemp = 0
Global FPSTime = 0
Function FPS()
	If (MilliSecs()-FPSTime)>=1000 Then
		FPSTime = MilliSecs()
		FPSCount = FPSCountTemp
		FPSCountTemp = 0
	EndIf
	FPSCountTemp = FPSCountTemp + 1
	Return FPSCount
End Function


Last edited 2010


Yue(Posted 2010) [#3]
=) Gracias / thank