void advance2d( int distancia )
void fadvance2d( CPROCESS * identificador, int distancia )


Descripción:

Avanza el proceso en su ángulo (el que indique la variable local angle) tantos puntos como indique la expresión (distancia) pasada como parámetro.

Para avanzar en un ángulo distinto al contenido en esta variable se puede utilizar la función xadvance2d().

La distancia puede ser también un número negativo, con lo cual el gráfico del proceso avanzará (sus coordenadas x e y) en la dirección contraria a su ángulo.


MAIN_PROGRAM_CDIV

BEGIN_PROGRAM 

    set_gfx(GFX_AUTODETECT_WINDOWED);
    set_mode(m320x200);

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

    graph=101;
    x=160;
    y=100;
    write(0, 0, 0, 0, "Use los cursores para cambiar la dirección.");

    LOOP{
        if(key(_right)) angle-=10000;
        if(key(_left)) angle+=10000;

        advance2d(2); // Avanzamos dos puntos el proceso

        FRAME;
    }
END_PROGRAM

Este ejemplo dibujará un triángulo en pantalla que avanzará en la dirección especificada en la variable local predefinida angle utilizando esta función.

Se recuerda que el ángulo se especifica en milésimas de grado.

Se podrá modificar la variable angle usando las teclas de los cursores (sumando y restando 10000, es decir, 10 grados).

Esta función equivale siempre a las dos siguientes sentencias:

 x+=get_distx2d(angle, distancia);
 y+=get_disty2d(angle, distancia);

Es decir, esta función únicamente modifica las coordenadas del proceso. Cabe la posibilidad de utilizar las dos sentencias anteriores cuando se quiera que el proceso avance en un ángulo diferente al que indica su variable angle; esto resultará útil cuando se quiera que el gráfico del proceso avance en una dirección sin rotarse.

Por ejemplo, para conseguir que un proceso avance 8 puntos en una dirección (que se podría tener en una variable privada como angle2) pero rotado hacia otra dirección, (la indicada en angle), se utilizarían las sentencias:

 x+=get_distx2d(angle2, 8);
 y+=get_disty2d(angle2, 8);

Ver: xadvance2d() - Uso de ángulos en el lenguaje - get_distx2d() - get_disty2d()