CPROCESS * fcollision_mouse()


Retorna:

 El código identificador de un proceso que colisionó o (0) si no ya ningún proceso colisionando.

Descripción:

Ésta es la función del lenguaje para detectar choques entre procesos con el puntero del mouse.

Cuando en el programa se esté visualizando el puntero del ratón (asignando el código del gráfico correspondiente en la estructura mouse), es posible ver si éste choca con el proceso actual utilizando esta función, por ejemplo, de la siguiente forma:

Al detectarse la colisión con el puntero del ratón no se hará con la totalidad del gráfico utilizado como puntero, sino únicamente con el punto de control principal (el número 0) del mismo, denominado usualmente como el "punto caliente" (hotspot) del ratón.


MAIN_PROGRAM_CDIV

BEGIN_PROGRAM
    set_gfx(GFX_AUTODETECT_WINDOWED);
    set_mode(m320x200);

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

    mouse.graph = 200;
    mouse.x = 160;
    mouse.y = 100;

    graph = 100;
    x = 160;
    y = 100;

    LOOP{
        delete_text(all_text);
        write(0, 160, 0, 1, "Use los cursores para mover el triangulo");

        if( collision_mouse() )
            write(0, 160, 200, 7, "­ DETECTADA COLISION !");

        FRAME;
    }
END_PROGRAM

En este ejemplo se visualiza el puntero del ratón y el proceso principal con el dibujo de un circulo.

El programa principal llamará a la función collision_mouse() para   comprobar si el puntero del ratón colisiona con el gráfico del proceso (el circulo).

No es posible utilizar esta función para detectar colisiones con procesos que no tengan gráfico (un código válido asignado a su variable graph).


Ver: get_id() - get_dist2d() - Tipos de procesos - Formas de obtener el código identificador