банальный пример.
создаем объект например lvl_cntrl
в Create:
global.door001=0 создаем объект героя например o_hero
прописываем движение и т.п.
создаем объект ключа например o_key001
в Step:
if point_distance(x,y,o_hero.x,o_hero.y)<32{global.door001=1;instance_destroy()}
создаем объект двери например o_door001
в Step:
if global.door001=1 and point_distance(x,y,o_hero.x,o_hero.y)<32{instance_destroy()}
ЗЫ. гм под рукой нету поэтому некоторые функции могут быть написаны не правильно, смотри похожие варианты которые гм предложит.