Gamemaker Studio 2: Мой персонаж не будет переходить через комнаты - PullRequest
0 голосов
/ 06 декабря 2018

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

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

1 Ответ

0 голосов
/ 23 июля 2019

Я немного поиграл с проектом, я понимаю ошибку, которую вы получаете, после того, как персонаж проходит через первую дверь, он не может вернуться, хотя в 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_ никогда не находятся слишком близко к другим дверям.

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

...