float en get_distx y get_disty

Started by Prg, August 19, 2010, 07:55:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

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
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

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
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes



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