Marzo 07, 2014, 10:13:21 AM Ultima modificación: Marzo 07, 2014, 06:14:06 PM por rponceaci4
Hola, he estado buscando y no encuentro nada, lo que quiero es poder coger un objeto y moverlo con el ratón, por si no queda claro "no quiero que el objeto siga el movimiento del ratón" sino que quiero moverlo yo. He intentado varias cosas pero no hago mas que fracasar, os comento lo que hago.

He probado de hacer en mi objeto

if mouse_check_pressed(mb_left)
{
    x = mouse_x
    y = mouse_y
}

esto me lo mueve una vez

asi que luego he hecho un while

while mouse_check_pressed(mb_left)
{
    x = mouse_x
    y = mouse_y
}

esto hace que se congele el juego.

He probado de poner en un evento step

x= mouse_x
y= mouse_y

y esto si hace lo que quiero el problema es que si introduzco un if como al principio la aplicacion tambien se cuelga, he probado tambien de no utilizar if mouse_check_pressed, sino utilizar mis propias variables que cambien a true cuando este presionado y a false cuando no, pero la aplicación siempre se cuelga, es como si al entrar al while el programa pensara que nunca se va a salir de allí y se cuelga.

De verdad que no sé que estoy haciendo mal.

Espero podáis ayudarme

Gracias

R.

#1 Marzo 07, 2014, 11:15:34 AM Ultima modificación: Marzo 07, 2014, 11:19:19 AM por penumbra
Cita de: rponceaci4 en Marzo 07, 2014, 10:13:21 AM
esto me lo mueve una vez

Del manual:

mouse_check_button_pressed()
"...Esta función sólo será ejecutada una vez cuando el botón sea presionado por primera vez y para "lanzarla" de nuevo el botón necesita ser liberado y presionado otra vez"

mouse_check_button()
"Esta función devolverá true si el botón del ratón se mantiene presionado o falso si no."

Si quieres mover el objeto al mantener presionado el botón, la función que estás usando no es la indicada, sino la otra.

#2 Marzo 07, 2014, 02:05:50 PM Ultima modificación: Marzo 07, 2014, 06:15:09 PM por rponceaci4

EDITO: Finalmente la solución era la que dabas, pero por lo visto mi copia de game maker hacía cosas raras, me instalé otra y ya todo va bien. Muchísimas gracias!!!

Muchas gracias, tenías razón, sin embargo tengo otro problemilla. Por alguna razón que no entiendo al cambiar la función el objeto se mueve pero sólo a la izquierda y una única vez aunque yo siga presionando el botón iszquierdo. Después de esto sólo como prueba puse el mismo código pero utilizando funciones globales y ahí si me va, excepto que al ser global, da igual en qué parte de la pantalle presione, siempre me mueve el objeto. Supongo que estaré cometiendo algún error pero realmente no veo donde.

Sólo tengo un objeto, este tiene un evento create (que me lo dibuja) y luego un evento mouse left con un código como es:

x =  mouse_x;
y = mouse_y;

y el objeto se mueve sólo hacía la izquierda nada más. Si cambio el evento por un global mouse left el objeto se mueve como debe pero si hago click fuera de él también se ejecuta el código.

Realmente que no lo entiendo. Si consigo solucionarlo lo postearé y si tenéis sugerencias son bienvenidas.