out_region()

out_region(<código identificador>, <número de región>)

Retorna:

Cierto si el proceso está fuera de la región o Falso en caso contrario.

Descripción:

Esta función determina si un proceso está fuera de una región de pantalla, para ello la función requiere el código identificador del proceso y un número de región.

Las regiones de pantalla se pueden definir con la función define_region() y son, simplemente, zonas rectangulares de pantalla.

La región número 0 no se puede definir ya que será siempre la pantalla completa, por lo tanto, si se especifica un 0 como segundo parámetro esta función determina si un proceso está fuera de la pantalla (si no se ve).

En el caso de que el gráfico del proceso esté fuera de la región especificada la función devuelve Cierto (un número impar); en cambio si el gráfico se ve, aunque sea parcialmente, en dicha región, la función devuelve Falso (cualquier número par).

El proceso cuyo código identificador se indica debe tener definido correctamente su gráfico (normalmente en su variable graph) pues, de lo contrario, el sistema advertirá un error ya que si el proceso no tiene un gráfico, no se pueden calcular las dimensiones del mismo.

Programa ejemplo:
PROGRAM ejemplo_out_region;
BEGIN
    load_fpg("help\help.fpg");
    put_screen(0, 1);
    y=100;
    x=160;
    graph=101;
    LOOP
        advance(8);

        IF (out_region(id, 0)) // Se comprueba si se sale de pantalla

            x=160;
            y=100;
            angle=rand(-pi, pi);
        END
        FRAME;
    END
END


En el ejemplo se pone un gráfico de fondo y el programa principal crea un gráfico en el centro de la pantalla con un ángulo aleatorio y en forma de triángulo.

En cada paso del bucle el triángulo avanza y se comprueba si ha salido de la pantalla (region 0) con la función out_region(). Si ha salido de pantalla se pone otra vez en el centro con otro ángulo elegido nuevamente al azar.


Ver: define_region() - region - Codigos identificadores