Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: desplo en Diciembre 12, 2014, 05:40:11 AM

Título: ¿Como mover un objeto con el mouse?
Publicado por: desplo en Diciembre 12, 2014, 05:40:11 AM
Quiero mover un objeto con el mouse. le doy click y muevo el mouse y el objeto me sigue.

por ejemplo:

tengo 3 cuadros vacios para poner armas.

abajo hay un listado de armas.

Lo que quiero es mover una arma del listado a uno de esos cuadros vacios con el mouse.
Título: Re:¿Como mover un objeto con el mouse?
Publicado por: Xizotono en Diciembre 12, 2014, 07:34:18 AM
En el boton del arma.

CREATE:
seguirmouse : 0

LEFT CLICK MOUSE:
seguirmouse: 1

STEP:
if seguirmouse:1 { x = mouse_x; y: mouse_y  }
Título: Re:¿Como mover un objeto con el mouse?
Publicado por: TheSandBoxMKG en Diciembre 12, 2014, 03:13:58 PM
Si lo que necesitas es Drag & Drop en tu juego, este código te servirá:

EVENTO CREATE:
[gml]globalvar seguirmouse,seguirmousex,seguirmousey;
seguirmouse=0
seguirmousex=0
seguirmousey=0[/gml]
EVENTO STEP
[gml]globalvar seguirmouse,seguirmousex,seguirmousey;
if seguirmouse==id and mouse_check_button(mb_left) then
{
    x=mouse_x-seguirmousex
    y=mouse_y-seguirmousey
}
else
{
    if !mouse_check_button(mb_left) then seguirmouse=0
}

if collision_point(mouse_x,mouse_y,all,1,0)==id and mouse_check_button(mb_left) and seguirmouse==0 then
{
    seguirmousex=mouse_x-x
    seguirmousey=mouse_y-y
    seguirmouse=id
}[/gml]
Título: Re:¿Como mover un objeto con el mouse?
Publicado por: empardopo en Diciembre 12, 2014, 03:29:14 PM
Cita de: TheSandBoxMKG en Diciembre 12, 2014, 03:13:58 PM
Si lo que necesitas es Drag & Drop en tu juego, este código te servirá:

EVENTO CREATE:
[gml]globalvar seguirmouse,seguirmousex,seguirmousey;
seguirmouse=0
seguirmousex=0
seguirmousey=0[/gml]
EVENTO STEP
[gml]globalvar seguirmouse,seguirmousex,seguirmousey;
if seguirmouse==id and mouse_check_button(mb_left) then
{
    x=mouse_x-seguirmousex
    y=mouse_y-seguirmousey
}
else
{
    if !mouse_check_button(mb_left) then seguirmouse=0
}

if collision_point(mouse_x,mouse_y,all,1,0)==id and mouse_check_button(mb_left) and seguirmouse==0 then
{
    seguirmousex=mouse_x-x
    seguirmousey=mouse_y-y
    seguirmouse=id
}[/gml]

Compi, ¿podrías explicarlo un poco el código?
Por ejemplo,
1.- es necesario declarar las variables globales tanto en el create como en el step?
2.- el id de dónde sale?

Muchas gracias
Título: Re:¿Como mover un objeto con el mouse?
Publicado por: TheSandBoxMKG en Diciembre 12, 2014, 03:33:37 PM
Cita de: empardopo en Diciembre 12, 2014, 03:29:14 PM
Cita de: TheSandBoxMKG en Diciembre 12, 2014, 03:13:58 PM
Si lo que necesitas es Drag & Drop en tu juego, este código te servirá:

EVENTO CREATE:
[gml]globalvar seguirmouse,seguirmousex,seguirmousey;
seguirmouse=0
seguirmousex=0
seguirmousey=0[/gml]
EVENTO STEP
[gml]globalvar seguirmouse,seguirmousex,seguirmousey;
if seguirmouse==id and mouse_check_button(mb_left) then
{
    x=mouse_x-seguirmousex
    y=mouse_y-seguirmousey
}
else
{
    if !mouse_check_button(mb_left) then seguirmouse=0
}

if collision_point(mouse_x,mouse_y,all,1,0)==id and mouse_check_button(mb_left) and seguirmouse==0 then
{
    seguirmousex=mouse_x-x
    seguirmousey=mouse_y-y
    seguirmouse=id
}[/gml]

Compi, ¿podrías explicarlo un poco el código?
Por ejemplo,
1.- es necesario declarar las variables globales tanto en el create como en el step?
2.- el id de dónde sale?

Muchas gracias


1- Si, en realidad declara que tales variables se usen globales. asi en vez de escribir global.seguirmouse todo el tiempo, alcanza con solo escribir seguirmouse
2- Es el id de la instancia, ya viene cuando la creas.
Título: Re:¿Como mover un objeto con el mouse?
Publicado por: empardopo en Diciembre 12, 2014, 03:49:29 PM
Cita de: TheSandBoxMKG en Diciembre 12, 2014, 03:33:37 PM

1- Si, en realidad declara que tales variables se usen globales. asi en vez de escribir global.seguirmouse todo el tiempo, alcanza con solo escribir seguirmouse
2- Es el id de la instancia, ya viene cuando la creas.

Con el punto 2 quiere decir que cuando se crea un objeto, osea en el evento create del objeto la variable id coge el valor sola?
Título: Re:¿Como mover un objeto con el mouse?
Publicado por: TheSandBoxMKG en Diciembre 12, 2014, 03:52:41 PM
Cita de: empardopo en Diciembre 12, 2014, 03:49:29 PM
Cita de: TheSandBoxMKG en Diciembre 12, 2014, 03:33:37 PM

1- Si, en realidad declara que tales variables se usen globales. asi en vez de escribir global.seguirmouse todo el tiempo, alcanza con solo escribir seguirmouse
2- Es el id de la instancia, ya viene cuando la creas.

Con el punto 2 quiere decir que cuando se crea un objeto, osea en el evento create del objeto la variable id coge el valor sola?

Si, y no se puede cambiar.

Del Manual:
Citarid* La id única de la instancia (>= 100000) (Al definir cuartos la id de la instancia bajo el puntero del ratón es indicada). No se puede cambiar.
Título: Re:¿Como mover un objeto con el mouse?
Publicado por: empardopo en Diciembre 12, 2014, 04:07:39 PM
Muchas thanks!