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