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.
En el boton del arma.
CREATE:
seguirmouse : 0
LEFT CLICK MOUSE:
seguirmouse: 1
STEP:
if seguirmouse:1 { x = mouse_x; y: mouse_y }
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]
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
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
seguirmouse2- Es el id de la instancia, ya viene cuando la creas.
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?
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.
Muchas thanks!