Buenas! creo que es muy simple pero no consigo dar con la solución.


CREATE

if distance_to_object(obj_comida) < 3 and keyboard_check_pressed(vk_space)
{instance_destroy(obj_comida)
if vida >= 0 {vida +=10}
if vida > 100 {vida = 100}
}


Tengo puesto esto en el create, cuando me acerco al cuadradito que representa la comida y pulso espacio desaparecen todos los cuadraditos verdes de la pantalla. Entiendo que estoy destruyendo todas las instancias del obj_comida pero lo que quiero conseguir es que solo se destruya la que esta a menos de 3 pixels cuando pulso espacio. Que estoy haciendo mal?

Bueno, lo que estás haciendo mal es que, al usar el nombre del recurso "obj_comida" estás diciendo que borre todas las instancias de ese objeto.
En cualquier caso deberías obtener el ID de la instancia a destruir y se destruiría solo esa instancia y no todas.

Yo te recomendaria usar instance_nearest(...):
https://docs.yoyogames.com/source/dadiospice/002_reference/objects%20and%20instances/instances/instance%20functions/instance_nearest.html

Para obtener la instancia mas cercana,  y destruirla:

[GML]
if distance_to_object(obj_comida) < 3 and keyboard_check_pressed(vk_space)
var comida_cercana = instance_nearest(x,y, obj_comida);
if (comida_cercana != noone)
{instance_destroy(comida_cercana )
   if vida >= 0 {vida +=10}
   if vida > 100 {vida = 100}
   }
[/GML]