Gamemaker Studio 2: Мой персонаж не будет переходить через комнаты

Я использую код перехода, который я выучил в ходе курса Удеми, но персонаж в моей игре будет переходить только через первую дверь, и никакие другие.

Я использую тот же объект, но меняю код создания объекта. Я использую переменные room_, start_, Я использую их для выбора разных комнат и стартовых позиций в коде создания. Нажмите на ссылку, чтобы просмотреть видеоигру - ( https://drive.google.com/open?id=1jCWIM3hYymgspW54EPbnUDrNQVZbY_4B).

0 ответов

Я немного повозился с проектом, я понимаю ошибку, которую вы получаете, после того, как персонаж проходит первую дверь, он не может вернуться, хотя в r_sworld есть двери того же типа, все они имеют маски столкновения, они у всех есть переменные... Я не знаю, почему ваш код не работает, но я нашел решение!

Переместите код из o_player::o_door в o_player:: step.
Использование событий столкновения в GMS обычно не рекомендуется, вам следует постараться сделать как можно больше в событии шага. Вы можете заменить событие столкновения на o_door, добавив его в конце события шага:

if (place_meeting(x, y, o_door)) {
    var door = instance_place(x, y, o_door);
    room_goto(door.room_);
    global.player_start_position = door.start_;
    persistent = true;
}

Вот уловка. Если новая должность продиктованаglobal.player_start_positionзаставляет игрока появляться наверху какой-то другой двери в комнате назначения, вы сразу же телепортируетесь обратно в первую комнату. Убедитесь, что координаты указаны вdoor.start_ никогда не подходите слишком близко к другим дверям.

Надеюсь это поможет!

Другие вопросы по тегам