The idea is lock fps when write a game or any visual software in diferent machines.
Have a nice summer and walk by the shadow

Code: Select all
Global canvas
Global FPSreales
Global.d DeltaTMax
Global.q DeltaTAcumulada, DeltaTimeIni
Procedure drawcanvas()
StartDrawing(CanvasOutput(canvas))
Box(0,0,OutputWidth(),OutputHeight(), $555555)
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(5,5,"Fps " + StrF(FPSreales,3),$ffffff)
DrawText(5,25,"Max " + StrF(DeltaTMax,3),$ffffff)
StopDrawing()
EndProcedure
Procedure setFps(FPSspeed)
DeltaTMax= 1000 / FPSspeed
DeltaTime= ElapsedMilliseconds() - DeltaTimeIni
DeltaTAcumulada + DeltaTime
If(DeltaTAcumulada >= DeltaTMax)
FPSreales= 1000/DeltaTAcumulada
DeltaTAcumulada = 0
drawcanvas()
EndIf
DeltaTimeIni= ElapsedMilliseconds()
EndProcedure
MyFPS= 30
OpenWindow(0,0,0,1000,600,"Set FPS to "+Str(MyFPS),#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget)
canvas= CanvasGadget(#PB_Any,5,5,WindowWidth(0),WindowHeight(0))
DeltaTimeIni= ElapsedMilliseconds()
Repeat
event= WindowEvent()
Select event
Case #PB_Event_Gadget
Case #PB_Event_CloseWindow
Break
EndSelect
setFps(MyFPS)
Delay(1)
ForEver