sugiero que get_distx y get_disty retornen flotantes,
esto con el fin de que si en avance tenemos un valor menor o igual a 1, y en ángulo un valor que no es multiplo de 90000 no se trunque el resultado a cero,
también quizá sería bueno que el avance y el ángulo de los parametros de la función sean flotantes
variable local "resolution"
ok
pero se entendio?
Quote from: SplinterGU on August 20, 2010, 01:32:16 AM
pero se entendio?
si, con resolution las coordenadas tiene mayor resolucion XD y get_distx y funciones por el estivo (advance, etc) pueden trabajar con valores que de otra forma darían problemas :)
je je
perfecto!
Así lo he solucionado yo:
Function float float_get_distx(angle,distancia);
Begin
resolution=1000;
advance(distancia*1000);
return (float) x/resolution;
End
Function float float_get_disty(angle,distancia);
Begin
resolution=1000;
advance(distancia*1000);
return (float) y/resolution;
End
Intenté solucionarlo primero así, pero no me funcionó como yo quería:
Const
m_pi=3.14159265358979323846;;
End
Function float float_get_distx(float angulo,float distancia);
Begin
return (float)(cos(angulo * m_pi / 180000) * distancia);
End
Function float float_get_disty(float angulo,float distancia);
Begin
return (float)(-sin(angulo * m_pi / 180000) * distancia);
End