Этот код перемещает объект в рандомную позицию в комнате до тех пор, пока не окажется в свободном месте.
Код
spawn_id = instance_create(0, 0, obj_enemy); //создаём объект
do {
spawn_id.x = random(room_width); //перемещаем в рандомную позицию
spawn_id.y = random(room_height);
with (spawn_id) {
collision = place_meeting(x, y, obj_wall); //записываем в переменную возможное столкновение со стеной
}
} until spawn_id.collision = 0; //продолжаем цикл, пока есть столкновение
alarm[0] = spawnRate; //следующий спавн будет через spawnRate шагов