void xput( int fpg, graph, x, y, angle, size, flags, uchar región )


Descripción:

Versión avanzada de la función put() para poner un gráfico en el fondo de la pantalla. Esta función requiere, por orden, los siguientes parámetros:

fpg - Código del fpg con la librería de gráficos que contiene a ambos. Los gráficos cargados con las funciones load_map() o load_pcx() (o creados con new_map()) se utilizarán como si pertenecieran al primer fichero (el fichero con el código 0).

gráfico - Código del gráfico dentro del fichero que se va a imprimir en pantalla.

x, y - Coordenadas relativas a pantalla donde se desea poner el gráfico. Estas coordenadas se refieren a donde se situará el centro del gráfico (o el punto de control número 0, en caso de estar definido).

angle - Ángulo (en milésimas de grados) en el que se imprimirá el gráfico; el ángulo normal es 0.

size - Tamaño (en porcentaje) en el que se imprimirá el gráfico; el tamaño normal es 100.

flags - Indica los espejados con los que se imprimirá el gráfico, los posibles valores son:

 0 // Gráfico normal.
 1 // Espejado horizontal.
 2 // Espejado vertical.
 3 // Espejado horizontal y vertical (180ø).

región - Número de región (ventana dentro de la pantalla) en la que se debe imprimir el gráfico; normalmente este valor será 0 para poder imprimir el gráfico en cualquier posición de la pantalla. Para definir una región se debe utilizar la función define_region().

Los gráficos impresos de esta forma en el fondo de la pantalla estarán en la visualización del juego por debajo de todos los procesos, regiones de scroll, textos, etc.

Si se desea que un gráfico esté por encima de otros se debe crear como un nuevo proceso y fijar su variable z con la prioridad de impresión del mismo.

Para borrar el fondo de la pantalla se debe utilizar la función clear_screen().


MAIN_PROGRAM_CDIV

PRIVATE
   int
    fichero1,
    coord_x,
    coord_y,
    angulo1,
    tamano1,
    flags1;

BEGIN_PROGRAM

 set_gfx(GFX_AUTODETECT_FULLSCREEN);
 set_mode(m320x200);

 fichero1 = load_fpg("../help.fpg");  // Se carga el fichero de gráficos

 LOOP{
        coord_x=rand(0, 319);
        coord_y=rand(0, 199);
        angulo1=rand(-180000, 180000);
        tamano1=rand(10, 200);
        flags1 =rand(0, 3);

        // Se pone el gráfico 101
        xput(fichero1, 101, coord_x, coord_y, angulo1, tamano1, flags1, 0);

        FRAME;
 }

END_PROGRAM

En el ejemplo se carga el fichero con los gráficos y en cada iteración de bucle se pone el gráfico número 101 (un triángulo) con la función xput() en coordenadas aleatorias (elegidas al azar con la función rand()), con un ángulo y un tamaño también aleatorio, con el valor de flags aleatorio y en la región número 0 (pantalla completa).

La función put() es una versión simplificada de la función xput() de utilidad cuando no se quiera rotar, escalar, espejar o imprimir con transparencias el gráfico.

Para poner un gráfico en otro (en lugar del fondo de la pantalla) se deben utilizar las funciones map_put() o map_xput().

Si el gráfico que se quiere poner es simplemente una pantalla de fondo, resulta más sencillo utilizar la función put_screen(), ya que ésta no requiere las coordenadas de pantalla, pues centrará el gráfico en la misma de forma automática.


Ver: put() - map_put() - map_xput() - put_screen()