Путь Game Maker 2 прерывается при смене комнаты

Я делаю игру в GMS 2. В рамках игры у меня есть объект, который следует по пути, и я хочу, чтобы он продолжал следовать по тому же пути после того, как я поменяю комнаты. Я заметил, что это не работает - путь продолжается как обычно, но координаты X и Y объекта меняются полностью, ни с того ни с сего - я пробовал это в режиме отладки, и в какой-то момент они просто меняются. Это происходит только в том случае, если я меняю комнаты, пока путь активен. Это код создания пути:

if (mp_grid_path(my_grid, my_path, x, y, dest_x, dest_y, 1)) {
            path_start(path, ny_speed, path_action_stop, false);
        } else {
            show_debug_message("no path!!!");
        }

person n00b programmer    schedule 26.09.2018    source источник


Ответы (1)


Я нашел способ решить эту проблему: сохранить путь в конце комнаты, а затем восстановить его из той же точки в начале комнаты. В конце комнаты:

if(is_walking) { // only do this if the object is currently walking
path_end();
}

В начале комнаты:

if(is_walking) { // only do this if the player is currently walking
if (mp_grid_path(my_grid, my_path, x, y, dest_x, dest_y, 1)) {
    path_start(path, my_speed, path_action_stop, false);
} else {
    show_error("no path!!!", true); // if there is no path at this point, we have an error - because it existed before we changed the rooms, so it should exist now
}
}

Надеюсь, это поможет любому, кто застрял на этом в будущем.

person n00b programmer    schedule 26.09.2018