Hola Marcusmaniacus.
Cada objeto de Game Maker que colocas en una room (ya sea de forma manual en el editor de rooms o mediante el instance create) tiene un ID único que identifica a ese objeto, se puede conocer si llamas a la variable "id".
Tu solución depende de cómo gestionas el clic del mouse, una forma sencilla es la siguiente:
En un objeto control, (supongamos que se llama oControl) creas la queue para que sea única:
queue = ds_queue_create() //Esto crea una cola y guarda la cola en la variable "queue" alojada en el objeto control
En ese mismo objeto, pero en el game_end, la destruyes para evitar que quede en cache.
ds_queue_destroy(queue)
Ahora la magia, cuando clickeas un objeto arbusto, mediante el evento del mouse button del arbusto, le añades su id a la queue.
ds_queue_enqueue(oControl.queue,id) //Aquí haces referencia a la queue alojada en el objeto oControl
Ahora hay que hacer que el player camine hacia el arbusto.
En el create event del player, le pones una variable que indica el objeto hacia el que está caminando:
target = noone //noone significa que no sigue a ningún objeto
Ahora la magia más mágica, cuando hay algún arbusto en la cola, haces que el player lo detecte en su Step event y camine hacia al arbusto que hayas clickeado. Puedes añadir la condición que desees, estas son las dos condiciones clave:
if !ds_queue_empty(oControl.queue) && target = noone {
target = ds_queue_dequeue(oControl.queue) //Esto lee el arbusto que sigue en la cola
}
//El seguimiento puede ser cualquier código, aquí va el más sencillo que se me ocurrió:
if target != noone {
var spd = 8 //La velocidad que quieras
if point_distance(x,y,target.x,target.y) < spd { //Si llegaste al arbusto, ajusta tu posición a la posición del arbusto
x = target.x
y = target.y
target = noone
}
else { //Si aún no has llegado, te acerca un paso más
var dir = point_direction(x,y,target.x,target.y)
x += lengthdir_x(spd,dir)
y += lengthdir_y(spd,dir)
}
}
Con eso debería bastar, no he probado el código así que es posible que me haya equivocado en algún paso o el nombre de alguna variable
Saludos Cordiales