Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: vitail en Abril 05, 2015, 11:28:57 PM

Título: Que siga la coordenada X del mouse cuando sea mayor o menor
Publicado por: vitail en Abril 05, 2015, 11:28:57 PM
Estoy haciendo un breaker y quiero saber como hacer de que si la coordenada del mouse_x es mayor o menor a la de X se mueva el jugador, lo que pasa es que no logro hacer para que no lo haga siempre solamente cuando lo mueva ya que se mueve muy raro cuando no mueves el mouse ni siquiera utilizando esto ya que debe ser de que no sirve esta condicion por el tamaño del sprite


if(x != mouse_x){
    move_towards_point(mouse_x,y,spd);
}


no utilizo point direction ni distance to object pq no me funcionan tampoco.
Título: Re:Que siga la coordenada X del mouse cuando sea mayor o menor
Publicado por: jaimitoes en Abril 05, 2015, 11:50:50 PM
eso es porque la función move toward aplica siempre una velocidad, siempre va a mover una cantidad de pixeles y por eso te crea el efecto shaking (nunca se va a posicionar exactamente en x ya que siempre suma una velocidad de pixeles), te pongo debajo el código:



if point_distance(x,y,mouse_x,mouse_y)>10 //aqui puedes poner otro valor como el tamaño de su x_offset o menor, o mismamente el mismo valor de la variable spd

{
move_towards_point(mouse_x,y,spd);
}
else
{
x = mouse_x;
}



Título: Re:Que siga la coordenada X del mouse cuando sea mayor o menor
Publicado por: vitail en Abril 06, 2015, 01:25:17 AM
Cita de: jaimitoes en Abril 05, 2015, 11:50:50 PM
eso es porque la función move toward aplica siempre una velocidad, siempre va a mover una cantidad de pixeles y por eso te crea el efecto shaking (nunca se va a posicionar exactamente en x ya que siempre suma una velocidad de pixeles), te pongo debajo el código:



if point_distance(x,y,mouse_x,mouse_y)>10 //aqui puedes poner otro valor como el tamaño de su x_offset o menor, o mismamente el mismo valor de la variable spd

{
move_towards_point(mouse_x,y,spd);
}
else
{
x = mouse_x;
}





Todavia hace el efecto.

EDITO:

tenia que poner en el ultimo argumento de point distance la coordenada Y del paddle.

como sirve point distance?
Título: Re:Que siga la coordenada X del mouse cuando sea mayor o menor
Publicado por: jaimitoes en Abril 06, 2015, 02:01:07 AM
point distance mide la distancia en pixeles entre las dos primeras cordenadas del primer objeto y las dos del segundo objeto (x1,y1) (x2,y2)  ( distancia de 20 pixeles ej: x1--------------------x2 )   osea eso te devolvera siempre un valor positivo.                                                                                                                                                     


si la distancia es mayor a tanto, lo movere hacia x punto, de lo contrario al ser menor y estar casi pegada x sera igual al punto que le he dicho.
Título: Re:Que siga la coordenada X del mouse cuando sea mayor o menor
Publicado por: jaimitoes en Abril 06, 2015, 02:24:18 AM
tienes una función mas simple todavia y que crea una transición de acceleracion deseleración:

if(x != mouse_x){
    x = lerp (x,mouse_x,0,1) ///el primer argumento es el valor a modificar, el segundo es el nuevo valor, el tercero es la velocidad de la transicion.
}

Pero dependiendo de lo que quieras hacer tienes que tener ojo con esta función ya que crea muchos decimales ya que se basa en una fórmula (del tipo curva de bezier, aunque no se si es la formula curva de bezier concretamente)