La función angle_difference siempre devuelve el ángulo más pequeño, y quisiera el ángulo más largo, ¿alguna idea? :-[
Podría ser así:
[gml]
d = angle_difference( a,b );
if( d > 0 ) d -= 360;
else d += 360;
[/gml]
Gracias Clamud, eso lo hace, pero lo que quiero es hacer esto:
(https://dl.dropboxusercontent.com/u/39289049/Grados.png)
Me estoy confundiendo xD, ¿alguna idea? :-[
*Cuando se mueva en reversa, lo hará a una velocidad determinada*
Aquí dejo este ejemplo que parece comportarse parecido a la explicación que diste (si es que entendí)
En el ejemplo, las variables a y b son los ángulos límites: a = 90° (donde inicia el giro) y b = 200° (donde termina)
http://www.mediafire.com/download/myn5h3a87jqbi7j/rotacion.gmz
El ángulo máyor debe calcularse si es que alguno de los ángulos límites se encuentra en los cuadrantes 3 y 4. El ejemplo no está muy desarrollado y puede no haga exactamente lo que buscas, pero probablemente sirva de guía. Hacer click en el botón azul para que el objeto comience a girar.
Lo que hace el script angle_max(), es que cambia el ángulo b = °200 a un valor de -160
¡Gracias Penumbra! :D, pero ya lo logré haciendo esto:
if(devolver){
var
point = point_direction(oCirculo.x,oCirculo.y,x,y),
dif = angle_difference(90,point),
time = 4.5;
if(sign(dif) == -1){
dif += 360;
}
dir = point;
dir += (dif/time);
if(dir == 90){devolver = false;}
}