Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: abdias2d en Septiembre 12, 2010, 04:01:09 AM

Título: c?mo logro un movimiento circular con speed
Publicado por: abdias2d en Septiembre 12, 2010, 04:01:09 AM
Hola que tal, estoy bloqueado con esto. Quiero hacer que una plataforma se mueva circularmente pero no se me ocurre como hacerlo utilizando la variable speed, para que de ahi obtenga hspeed y vspeed y funcione en mi motor.

Les dejo un editable que tiene la idea con la que me he bloqueado. Cualquier sugerencia sera bienvenida, hasta luego!
Título: Re: c?mo logro un movimiento circular con speed
Publicado por: juan pablo en Septiembre 12, 2010, 04:16:44 AM
listo era muy facil
en vez de poner el mouse
le puse un eje invisible
Título: Re: c?mo logro un movimiento circular con speed
Publicado por: abdias2d en Septiembre 12, 2010, 05:22:27 AM
Gracias, juan. Pero disculpa creo que me expliqu? mal, ademas que olvid? quitar esa parte en que sigue al mouse  :-[

Lo que ando buscando es cambiar por completo ese codigo de movimiento por uno que utilice las variables speed o hspeed-vspeed, conservando la misma "apariencia".

Algo me dice que usando las funciones seno y coseno pero no puedo quitarme de la cabeza esta primera idea
Título: Re: c?mo logro un movimiento circular con speed
Publicado por: Hackware en Septiembre 12, 2010, 07:15:03 AM
Yo siempre que deseo hacer que las cosas se muevan en c?rculos o elipses utilizo el siguiente c?digo:

Citar
Evento CREATE
dir=angulo_de_inicio; //puedes cambiar "dir" por lo que desees

Evento STEP normalmente
dir+=velocidad_de_giro;
x=eje_x+lengthdir_x(distancia_desde_eje_x,dir);
y=eje_y+lengthdir_y(distancia_desde_eje_y,dir);

En tu caso puedes guardar los resultados de las funciones lengthdir_* en variables y usarlas como reemplazo a las variables hspeed y vspeed. Si deseas que se mueva en c?rculos la distancia_desde_eje_x y la distancia_desde_eje_x deber?n tener el mismo valor.

Espero te sirva ?Saludos!
Título: Re: c?mo logro un movimiento circular con speed
Publicado por: abdias2d en Septiembre 12, 2010, 07:52:49 PM
gracias! va perfecto, hackware.

Llegue a otras a otras dos formas pero me quedare con la tuya, se me hizo mas facil de usar  XD

//forma 1
direction=1 + radtodeg(arctan2(-vspeed,hspeed))

//forma 2
direction-=speed
x=320+r*cos(degtorad(direction));
y=240+r*sin(degtorad(direction));

//forma hackware
direction+=w
x=320+lengthdir_x(r,direction);
y=240+lengthdir_y(r,direction);
Título: Re: c?mo logro un movimiento circular con speed
Publicado por: Hackware en Septiembre 12, 2010, 10:45:18 PM
Con gusto, me alegro de haberte sido de utilidad. :D