get_real_point()

get_real_point(<número>, <OFFSET x>, <OFFSET y>)

Retorna:

Las coordenadas actuales del punto de control (en las variables cuyo offset se indica como los dos últimos parámetros).

Descripción:

Esta función devuelve donde está en ese instante un punto de control del gráfico del proceso actual en el sistema de coordenadas utilizado por el propio proceso (ver variable local ctype), evaluando la ubicación original del punto, las coordenadas actuales del proceso, su tamaño, ángulo, etc.

Un punto de control es un punto que se puede definir en el editor de gráficos (herramienta de dibujo), en la opción habilitada para dicha función.

La función necesita la dirección (que se obtiene con el operador offset) en la memoria del ordenador de dos variables en las que devolverá la posición x e y del punto de control.

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).

Programa ejemplo:
PROGRAM ejemplo_get_real_point;

PRIVATE
    punto;
    x_punto;
    y_punto;

BEGIN
    load_fpg("help\help.fpg");
    graph=4;
    x=160;
    y=100;
    LOOP
        FROM punto=1 TO 50;

            // Cogemos las coordenadas de donde está ahora el punto de control
            get_real_point(punto, offset x_punto, offset y_punto);

            proceso_marcador(x_punto, y_punto, 200);
        END
        angle+=1000;
        FRAME;
    END
END

PROCESS proceso_marcador(x, y, graph);
BEGIN
    FRAME;
END


En el ejemplo se define cómo gráfico del proceso principal un circuito que recorre la pantalla. Este gráfico tiene definidos 50 puntos de control (del 1 al 50).

El programa se queda en un bucle dentro del cual va rotando este gráfico (sumándole un grado con la sentencia angle+=1000;) y creando 50 procesos en forma de cruz, una en cada uno de los puntos de control del gráfico.

Se puede comprobar cómo la posición relativa de los puntos de control no varía aunque el gráfico del circuito rote.


Esta función se suele utilizar para tener localizados algunos puntos importantes de un gráfico. Por ejemplo, si se ha definido un proceso cuyo gráfico es un hombre con una pistola que pueda escalarse, rotarse o realizar diversas animaciones, podría definirse un punto de control en la punta del cañón de la pistola para saber en cada momento de dónde deben salir las balas en caso de que dispare.

Si el gráfico original estaba dentro de una región de scroll (ver start_scroll()) las coordenadas devueltas también serán relativas a dicha región de scroll.


La función get_point() devuelve dónde fue emplazado originalmente un punto de control en el gráfico, en lugar de su posición actual, como get_real_point().


Ver: Puntos de control - get_point() - get_pixel()