Faltou informações importantes em sua explicação, então não deu para compreender muito bem como o seu código deveria funcionar.
De qualquer forma, use
mouse_check_button_pressed(mb_left) ou
mouse_check_button_released(mb_left) em vez de "mouse_check_button(mb_left)" e substitua o "place_meeting()" por
position_meeting().
Tente fazer algo seguindo essa lógica:
Código: Selecionar todos
//[[[Objeto de controle | Step Event]]]
if mouse_check_button_pressed(mb_left) && position_meeting(mouse_x, mouse_y, obj_button)
{
with(office)
{
if porta == "aberta"
{
sprite_index = spr_officeplaceholder1;
porta = "fechada";
}
else
{
sprite_index = spr_officeplaceholder2;
porta = "aberta";
};
};
};