espero que esto te sirva:
Código:
float g_FrameInterval = 0.0f;
//////////////////////////////////////////////////////////////
// Calcula los frames por segundo (FPS) //
//////////////////////////////////////////////////////////////
void CalculateFrameRate()
{
static float framesPerSecond = 0.0f; // Inicializamos nuestro FPS
static float lastTime = 0.0f; // Contiene el tiempo del ultimo frame
static char strFrameRate[50] = {0}; // Aqui podemos cambiar el titulo de la ventana
static float frameTime = 0.0f; // Contiene el tiempo del ultimo frame
// obtenemos el timpo en segundos con la funcion predeterminada
float currentTime = timeGetTime() * 0.001f;
// aqui obtenemos el intervalo de tiempo para nuestras funciones
//luego lo guardamos en nuestra variable estatica
g_FrameInterval = currentTime - frameTime;
frameTime = currentTime;
// incrementa el contador de frames
++framesPerSecond;
// aqui restamos el tiempo actual, menos el ultimo tiempo que fue obtenido
// para ver si el intervalo de tiempo paso de un segundo, y encontrar nuestro FPS
if( currentTime - lastTime > 1.0f )
{
// el ultimo tiempo sera igual al tiempo actual
lastTime = currentTime;
// FPS los pasamos a un string para mostrarlos en el titulo de la ventana
sprintf(strFrameRate, "FPS: %d", int(framesPerSecond));
// Mostramos el titulo en la ventana
SDL_WM_SetCaption(strFrameRate, NULL);
// Reseteamos el contador
framesPerSecond = 0;
}
}
y ahora por ejemplo, cuando presiones una tecla para mover algo:
suponiendo que se mueve con cierta velocidad:
tendria que ser algo asI.
if(tecla presionada)
muevealgo *= g_FrameInterval = 0.0f;
EDIT***
jejeje, por cierto, en lugar de estO.
SDL_WM_SetCaption(strFrameRate, NULL);
pon su equivalente con la API de windows (o la que te estes usando para manejar ventanas) (muestra los fps en la ventana)