I'm writing a game, and I saw the FPS algorithm doesn't work correctly (when he have to calculate more, he sleeps longer...) So, the question is very simple: how to calculate the sleeptime for having correct FPS?
I know how long it took to update the game one frame in microseconds and of course the FPS I want to reach.
I'm searching crazy for a simple example, but I can't find one....
The code may be in Java, C++ or pseudo....
The time you should spend on rendering one frame is
1/FPS
seconds (if you're aiming for, say 10 FPS, you should spend 1/10 = 0.1 seconds on each frame). So if it tookX
seconds to render, you should "sleep" for1/FPS - X
seconds.Translating that to for instance milliseconds, you get
If it, for some reason took more than
1/FPS
to render the frame, you'll get a negative sleep time in which case you obviously just skip the sleeping.Try...
... as per http://www.gamedev.net/community/forums/topic.asp?topic_id=510019
Take a look at this article about different FPS handling methods.
The number of microseconds per frame is
1000000 / frames_per_second
. If you know that you've spentelapsed_microseconds
calculating, then the time that you need to sleep is: