roll_palette()

roll_palette(<color inicial>, <número de colores>, <incremento>)

Descripción:

Rota una gama de colores de la paleta. Esta función sirve para crear efectos de movimiento en gráficos estáticos, como el efecto del agua corriendo.

Para utilizar esta función se deben crear primero gráficos que utilicen una gama de colores consecutivos de la paleta original, en un ciclo perpetuo, por ejemplo, los colores del 0 al 15, pintando algo con los colores 0, 1, 2, 3, ... , 14, 15, 0, 1, 2, ...

Después, hay que tener cuidado de que dichos colores no sean utilizados por otros gráficos que vayan a aparecer en pantalla al mismo tiempo, si no se quiere también el efecto en ellos.

El incremento (tercer parámetro) suele ser 1 para realizar la rotación en un sentido y -1 para realizarla en el otro, pero se pueden utilizar otros valores para realizar el ciclo de colores a más velocidad.

Para realizar un ciclo de los colores del 0 al 15 se especificaría 0 como <color inicial> y 16 como <número de colores>.

Programa ejemplo:
PROGRAM ejemplo_roll_palette;
BEGIN
    load_fpg("help\help.fpg");
    put_screen(0, 2);
    write(0, 160, 0, 1, "Pulse [ESPACIO] para rotar la paleta entera.");
    LOOP
        IF (scan_code==_space)

            roll_palette(0, 256, 1); // Se rotan los 256 colores.

        END
        FRAME;
    END
END


En el ejemplo se pone como fondo una pantalla multicolor y dentro del bucle principal del programa se rotarán los 256 colores de la paleta cada vez que se pulse la barra espaciadora.


Si se quiere determinar la paleta con la que se debe realizar el ciclo de color, se debe cargar ésta de un archivo con la función load_pal().


Para realizar otros efectos de paleta, sin sustituir unos colores por otros en ciclos, se debe utilizar la función fade() que permite realizar múltiples fundidos y saturaciones de color a diferentes velocidades.

Existen dos versiones simplificadas de esta última función que permiten realizar un fundido a negro (fade_off()) y deshacerlo (fade_on()).


Ver: set_color() - load_pal() - fade() - fade_off() - fade_on()