Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: quiero aprender en Junio 13, 2017, 03:18:09 AM

Título: Como deslizar objetos con el mouse
Publicado por: quiero aprender en Junio 13, 2017, 03:18:09 AM
Hola a todos.

Tengo problemas al querer deslizar un rectángulo en eje vertical y para eso uso este código en el evento mouse left button
y = mouse_y;

Y funciona pero como que da un salto para llegar al mouse (como soluciono ese problema) pero ese no es todo el problema porque al deslizarlo quiero que colisione con el pizo y no se como, y modifique el código:
if !place_meeting(x,y+1,obj_pizo)
{
y = mouse_y;
}

Pero a la hora de deslizarlo se queda trabado con el pizo.

Gracias por su ayuda.
Título: Re:Como deslizar objetos con el mouse
Publicado por: bygdle en Junio 13, 2017, 03:40:18 AM
Algo así:
[gml]
vel = 5; //Velocidad
if(mouse_y < y)
    y = max(y - vel, mouse_y);
if(mouse_y > y)
    y = min(y + vel, mouse_y);
[/gml]
No lo he probado, pero en teoría debería funcionar.
Título: Re:Como deslizar objetos con el mouse
Publicado por: quiero aprender en Junio 14, 2017, 07:39:10 PM
Cita de: NiuWeb en Junio 13, 2017, 03:40:18 AM
Algo así:
[gml]
vel = 5; //Velocidad
if(mouse_y < y)
    y = max(y - vel, mouse_y);
if(mouse_y > y)
    y = min(y + vel, mouse_y);
[/gml]
No lo he probado, pero en teoría debería funcionar.
Gracias por responder pero...
Sí, funciona genial pero no se como detener la acción de deslizar a la hora de colisión, modifique el código:
vel = 1;
if(mouse_y < y) && !place_meeting(x,y-1,obj_pizo_resvalante)
    y = max(y - vel, mouse_y);
if(mouse_y > y)  && !place_meeting(x,y+1,obj_pizo_resvalante)
    y = min(y + vel, mouse_y);

Y funciona pero solo si la velocidad es igual a 1 pero so pongo una velocidad mayor de 1 entonces a la hora de colisionar con el pizo_resvalante se queda trabado y a la hora de deslizar el rectángulo que se queda trabado y es molesto que el bloque se mueva lento. ¿Qué puedo hacer?