Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: FreeYourMind on October 31, 2010, 11:57:26 PM

Title: Ayuda con velocidad de rotación (angle)
Post by: FreeYourMind on October 31, 2010, 11:57:26 PM
Buenas, tengo un gráfico que se mueve en circulo, pero quiero que se mueva en sentido horario y antihorario con las teclas derecha y izquierda respectivamente.

Esto lo estoy haciendo, pero quiero que el gráfico tenga mayor velocidad, o sea, que ande 3 veces mas rápido (por otras palabras, que haga 3 veces más camino en el mismo tiempo.

O sea, cada vez que pulso la tecla, el gráfico anda en circunferencia, x distancia alrededor en ese tiempo de pulsasión, pero quiero que en el mismo tiempo, ande 3 veces mas camino,
o sea que sea 3 veces mas rapido, todo sin cambiar el tiempo de pulsación (el cual hace que tengamos que volver a pulsar para que vuelva a andar un poco más).

El código es el siguiente, y necesito saber en que parte tengo que hacer el incremento, sin alterar la dimensión del circulo, ni de tiempo, de pulsación, ni cambiar el valor de FRAME

Grácias de antemano.



PRIVATE
time = 0;
wait = 30;

BEGIN
graph = 1;
x = 320;
y = 240;
       
  LOOP

        IF(key(_right) && timer[3] > time + wait)
           angle2 += (pi / 64);
           x = x + get_distx(angle2, 3); // 3 --> Distancia em relación al centro
           y = y + get_disty(angle2, 3);
   
           time = timer[3];
        END

        IF(key(_left) && timer[3] > time + wait)
   angle2 += pi/64;
           x = x - get_distx(angle2, 3);
           y = y - get_disty(angle2, 3);
   
           time = timer[3];
        END

    FRAME;
  END
END



Nota: la variable angle2 es local.
Title: Re: Ayuda con velocidad de rotación (angle)
Post by: FreeYourMind on November 01, 2010, 03:25:00 AM
Ya lo tengo, lo he arreglado con un FROM ... TO ... FRAME;END en el cual multiplico las veces que quiero ejecutar el incremento en el mismo tiempo.

Ahora necesito otra ayuda, quiero poner varias imagenes girando en la misma circunferencia (misma trayectoria), pero todas en posiciones iniciales distintas (como si cada una fuese un numero de un reloj en el cual los numeros se movieran alrededor).

Quiero usar el mismo procedimiento para todas, y como parametro de entrada tienen el valor de angle2 inicial (que ahora ya no es local) y del x, y (posicion inicial).

De momento sólo me funcionan 2 de las 8 que pongo, las cuales son la imagen de arriba y la del fondo, y tienen como parametro de entrada los angulos 0 (la del fondo con x=90, y=150) y 179968 (la de arriba, con x=92, y=64) respectivamente.

Los angulos de entrada de las imagenes que no hacen bien la circunferencia son: 44992, 89984, 134976, 224960, 269952 y 314944.
Estos angulos que he puesto (los 8), calculan todas las posiciones que cada imagen va tener en el trayecto, son posiciones validas, pero como entrada sólo 2 parecen hacer que la imagen haga correctamente el trayecto que quiero.
Title: Re: Ayuda con velocidad de rotación (angle)
Post by: FreeYourMind on November 01, 2010, 02:04:54 PM
Grácias, mil grácias, ya esta resuelto, sólo habia que ponerle angulos negativos.
Me doy las grácias por haberlo resuelto  :-* :-*
Title: Re: Ayuda con velocidad de rotación (angle)
Post by: Drumpi on November 01, 2010, 02:42:20 PM
Te iba a decir que pusieras angle2 como una variable de entrada en lugar de inicializarlo una y otra vez dentro del IF (incluso se puede alterar su valor cuando se quiera, sólo necesitarías otra varaible donde guardar su velocidad inicial).