Qbasicnews.com

QBasic => QB Discussion & Programming Help => Topic started by: toad on October 30, 2009, 10:41:39 PM



Title: Game speed
Post by: toad on October 30, 2009, 10:41:39 PM
Hey, I have an RPG engine which draws anywhere from 50 to 250 objects to the screen each cycle. It uses FBGFX (freebasic graphics lib.) My question is how can I control the game speed? What is the common way? Sleep 1 is not good. The speed fluctuates too much.

I have the following code now, and it somewhat works:

do
If Timer > t Then
t = Timer + .02
(get input)
(render graphics)
(put graphics to screen)
end if
loop

Is that a recommended way of doing things? It seems to work okay except I realize I'm putting a lot of graphics to the screen and it slows it down. But even if there's a normal amount of graphics put to the screen, I don't want to speed to fluctuate, (character walking fast and then slowing down).



Title: Re: Game speed
Post by: Clippy on October 31, 2009, 05:17:23 PM
Realistically TIMER accuracy is closer to .05 than .02, but that won't hurt anything. It ticks every 1/18th of a second. There are ways to change the ticks, but you still may get delays.

TIMER can be influenced by background Windows programs also, so there is no guarantee of a smooth speed unless you use pure DOS with no TSR (terminate-stay-resident) programs running.

QB64 has a _LIMIT function that allows you to run loops at so many loops per second (frames). You can also add sound using the soundboard instead of the PC speaker: www.QB64.net/forum