void set_fps( int nº_imágenes_por_segundo )


Descripción:

Esta función es la que regula la velocidad a la que van los juegos; define el número de imágenes por segundo que se mostrarán del juego (el número de fotogramas por segundo).

Por defecto la visualización se regulará a 30 imágenes por segundo, lo cual quiere decir que si un proceso se mueve un punto por cada imagen (FRAME), éste se moverá en pantalla a una velocidad de 30 puntos por segundo.

Esta función puede fijar el número de imágenes por segundo (FPS, Frames Per Second) desde 1 como mínimo hasta cualquier numero como máximo; en general no son necesarias más de 30 imágenes por segundo para conseguir un movimiento fluido y suave.

Si en esta función se define 0 o negativo como numero de imagenes CDIV dejará de regular los fps e ira a la máxima velocidad permitida por su equipo.

El segundo parámetro, número máximo de saltos permitidos, se refiere a cómo es preferible que se comporte el programa cuando se ejecute en un ordenador que sea lo suficientemente rápido como para calcular el número de imágenes por segundo que se solicita. Funciona como se muestra a continuación.


MAIN_PROGRAM_CDIV

PRIVATE
 int imagenes;

BEGIN_PROGRAM

 set_gfx(GFX_AUTODETECT_WINDOWED);
 set_mode(m320x200);

 load_fpg("../help.fpg");

 graph=1;

 x=160;
 y=100;

 write(0, 0, 0, 0, "Imagenes/segundo: Arriba(+) / Abajo(-)");
 write_int(0, 0, 10, 0, &imagenes);
 write(0, 0, 20, 0,"FPS:");
 write_float(0, 40, 20, 0,&fps);
 write(0, 160, 200, 7, "Utilice los CURSORES para cambiar valor");

 LOOP{

        // Se elige el número imágenes por segundo
        set_fps(imagenes);

        if (key(_up))  imagenes++;
        if (key(_down)) imagenes--;

        angle+=4000;

        FRAME;
 }

END_PROGRAM

En el ejemplo se imprimen los mensajes necesarios y el proceso principal crea un gráfico en el centro de la pantalla rotando
indefinidamente.

En cada paso del bucle se detectan las teclas del cursor, se cambia el número de imágenes por segundo (imágenes) con arriba/abajo.

Al comienzo de cada iteración del bucle se establece la velocidad según los valores de ambas variables, con la función set_fps().

Nota: La variable global fps mantiene actualizado el número de imágenes por segundo que se están consiguiendo realmente en el programa.


Ver: FRAME - set_mode() - fps