Hola chicos como bien dice el tema estoy buscando la manera de hacer click sobre una instancia(imaginaos que hay un total de 10) y al hacer click sobre esta instancia se selecciona y a hacer click en la room esta instancia seleccionada camina hasta la posicion del click(esto ultimo se hacerlo) y por ultimo que si hago click en una nueva instancia esta se active y la antigua se desactive.
Puedes usar lo siguiente:
instancia = instance_position(mouse_x,mouse_y,"Nombre del objeto")
Lo pones en el evento "mouse clic global" de un objeto para que funcione, dentro de la variable instancia se almacena la id unica y asi puedes usarla para saber que instancia es exactamente con la que deseeas interactuar.
Lo de desactivar y activar las instancias no lo he probrado, pero eso te valdra espero :D
Hace algunos años hice algo como lo que necesitas, lo puedes descargar aqui mismo:.
http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=1224
Hasta Luego...
event create
xx=0; yy=0;
select=false;
event mouse left pressed
select=true;
event mouse right pressed
if select then
{xx=mouse_x; yy=mouse_y;}
event end step.
if point_distance(x,y,xx,yy)>4 then
{direction=point_direction(x,y,xx,yy); speed=3;} else
{speed=0;}
event global mouse left
if select then
{select=false;}
Creo que es más fácil usar la id de las instancias. Por ejemplo, declaramos unas variables:
[gml]
global.seleccion = noone;
xx = -1;
yy = -1;
move = false;
[/gml]
Luego, en el evento de mouse global:
[gml]
var inst = instance_position(mouse_x, mouse_y, objeto); //Buscamos alguna instancia en la posición del mouse
if inst != noone //Si la hay {
global.seleccion = inst; //Seleccionarla
move = false; //Evitar que los objetos seleccionados anteriormente sigan moviéndose
}
else { //Si no la hay
if global.seleccion != noone { //Mirar si anteriormente ya se había seleccionado alguna, y si lo hay
xx = mouse_x;
yy = mouse_y;
move = true; //Permitir mover
}
}
[/gml]
Por último, en el evento <step>:
[gml]
if global.seleccion != noone and move { //Si está seleccionada una instancia y se puede mover
var obj = global.seleccion;
var dir = point_direction(obj.y, obj.y, xx, yy);
obj.x += lengthdir_x(4, dir);
obj.y += lengthdir_y(4, dir);
}
[/gml]
Poooodría funcionar, no lo he probado.