void define_region( uchar número_región, int x, y, ancho, alto )


Descripción:

Define una nueva región de visualización dentro de la pantalla (algo así como una ventana). Las regiones son zonas rectangulares de la pantalla dentro de las cuales se visualizarán unos determinados procesos, ventanas de scroll.

El número de región debe ser entre 1 y 31. Se pueden definir hasta 31 regiones diferentes de pantalla que después podrán asignarse a diferentes procesos (fijando su variable local region al nuevo número) como su ventana de visualización, o bien utilizarse como marco para una ventana de scroll indicándolo en el parámetro correspondiente de la función start_scroll().

La región número 0 no se debe redefinir, pues será siempre la pantalla completa, una ventana en las coordenadas (0, 0) y del ancho y alto de la pantalla. Ésta es la región en la que se visualizarán por defecto todos los procesos, ya que su variable local region siempre vale 0 por defecto.


PROCESS_INIT( proceso_movil )(int _x, int _y, int incr_x, int incr_y, char _region)
 BEGIN_INIT
  x = _x; y = _y; region = _region;
  incremento_x = incr_x;
  incremento_y = incr_y;
 END_INIT

PRIVATE
 int incremento_x, incremento_y;

BEGIN
    graph=100;
    LOOP{
        if ((x < 0) || (x > 320)) incremento_x=-incremento_x;
        if ((y < 0) || (y > 200)) incremento_y=-incremento_y;
        x+=incremento_x;
        y+=incremento_y;
        FRAME;
    }
END

MAIN_PROGRAM_CDIV

PRIVATE
 int contador;

BEGIN_PROGRAM

 set_gfx(GFX_AUTODETECT_WINDOWED);
 set_mode(m320x200);

 load_fpg("../help.fpg");
 put_screen(1, 1);

 define_region(1, 0, 0, 160, 200);   // Definimos la región 1
 define_region(2, 160, 0, 160, 200); // Definimos la región 2

 write(0, 0, 0, 0, "Region 1");
 write(0, 320, 0, 2, "Region 2");

 for(contador=1; contador <= 20; contador ++)
  new proceso_movil(rand(0, 319), rand(0, 159), rand(-8, 8), rand(-8, 8), rand(1, 2));

 FRAME;

END_PROGRAM

Primero se definen dos regiones como divisiones laterales de la pantalla. Luego, se crean con un bucle 20 procesos de tipo proceso_móvil en coordenadas y desplazamiento aleatorios, en una de las dos regiones.

Se puede observar en su ejecución cómo cada proceso se ve únicamente en una de las dos mitades de la pantalla (sólo en su región).


Ver: out_region() - start_scroll() - Variable region