void invert_color( int fpg, graph, int color_inicial, color_final )
Descripción:
Redefine un color de una imagen. Esta función sirve para modificar los colores de una imagen sin modificar la paleta del juego, cambiará el color inicial por el color final de dicha imagen y el color final por el color final, si no ha sido cambiado previamente por esta función, es decir, se invierten los colores.
Imaginemos que tenemos una imagen mitad verde y mitad roja, si aplicamos esta función a esta imagen, cambiando el verde por el rojo, la parte verde pasará a ser roja y a la inversa, pudiendo recuperar la imagen original aplicando esta misma función con los colores cambiados.
A continuación se muestra un programa que modifica de forma aleatoria los colores de la imagen.
int old_color, new_color; MAIN_PROGRAM_CDIV BEGIN_PROGRAM //Definimos el modo gráfico set_gfx(GFX_AUTODETECT_WINDOWED); //Definimos la resolución set_mode(m320x200); write(0, 0, 0, 0, "[ ESPACIO ] Cambia el color del ratón"); old_color = makecol(255, 255, 255); mouse.graph = new_map(100, 100, 50, 50, old_color); LOOP { if( key(_space) ) { new_color = makecol(rand(0, 255), rand(0, 255), rand(0, 255)); invert_color(0, mouse.graph, old_color, new_color); old_color = new_color; } FRAME; } END_PROGRAM
En el ejemplo se pone una imagen como puntero del ratón, al pulsar la barra espaciadora se elegirá un color aleatoriamente para cambiar la imagen al color elegido. Para obtener números al azar se utiliza la función rand().
Ver: change_color() - load_pal() - fade() - fade_off() - fade_on()