FPS Limiting

Started by
0 comments, last by zacaj 12 years, 2 months ago
Right now, I have a loop for the game. I'll post some pseudo code to illustrate it.

while(playing) {
frames++;
if(frames>FPS) frames=0;
if(frames==FPS) {
// All game functions for displaying the player and map and stuff.
}
}

Am I going about this the right way? It has really slowed the game down, but there is still a lot of CPU being used. How can I cut down on that the right way? Is this a good way to limit the FPS? Thank you. :3
Advertisement
If you do it this way you program will take up all the available CPU time waiting until its time to update the game. Instead, time each frame as it renders, and then subtract this time from how long each frame should take. Pass this value to SDL_Delay(), which informs the operating system it can give that much time to other processes.

start timer
game functions
stop timer
SDL_Delay(1000/FPS-timer)
repeat
1000/FPS gives you the time for one frame in milliseconds. You may want to look into framerate indepentent code later

This topic is closed to new replies.

Advertisement