Code archives/BlitzPlus Gui/Window/Canvas frame-timing setup
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| This app shows how to set up a Windowed game in Blitz+ with accurate frame-timing. -- Code was overly complicated so I took out the menus -- | |||||
Global FPS# = 60, GameTimer
Global deskw=ClientWidth(Desktop()), deskh=ClientHeight(Desktop())
Global gwidth# = 640, gheight# = 480 ;graphicswidth,height
Global win, can
winw = 640
winh = 480
win = CreateWindow("Resized to gwidth,gheight",deskw/2-gwidth/2,deskh/2-gheight/2,gwidth,gheight,0,15+32)
; Create drawing canvas
can = CreateCanvas(0,0,ClientWidth(win),ClientHeight(win),win)
SetGadgetLayout can,1,1,1,1 ;resizable with window
GameTimer = MilliSecs()
AutoSuspend 1
Repeat
; Window events
Select WaitEvent(1)
Case $803 ; app close
End
End Select
; Timing
intv = 1000/FPS
loop = (MilliSecs()-gametimer)/intv
For k=1 To loop
gametimer=gametimer+intv
UpdateGame()
Next
DrawGame()
Forever
Function UpdateGame()
If KeyHit(1) Then End
End Function
Function DrawGame()
SetBuffer CanvasBuffer(can)
Cls
FlipCanvas can
End Function |
Comments
None.
Code Archives Forum