0

我正在 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!!!");
        }
4

1 回答 1

0

我发现解决这个问题的方法是在房间结束时保存路径,然后在房间开始时从同一点恢复它。房间尽头:

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
}
}

希望这将帮助任何在未来陷入困境的人。

于 2018-09-26T06:51:34.170 回答