такая проблема - хочу сделать чтоб кагда игрок стоит вплотную к двери при нажатии кнопки E игрок переходил в другую комнату, но у меня не выходит. вот код-
Код
В СТОЛКНОВЕНИЕ: if keyboard_check(ord("E")) {room_goto(room_loc005_704)}
Странно, попробуй keyboard_check_pressed Еще проверь, происходит ли событие столкновения в принципе. Допустим пусть при столкновении сообщение вылезает на экран, или объект создается, чтоб увидеть можно было, ну либо дверь закрашивается цветом, исчезает, в общем индикация какая-то
Такой поход не эффективен. Один из вариантов, это считать расстояние до двери. Можно задать "Рабочий" диапазон и не будет требоваться вплотную к двери вставать.
Привет я не говорю что я прям ВАУ ГУРУ ПО game maker но вот моя точка зрения:
допустим у тебя есть:
o_hero ---- это обьект твоего персонажа и он имеет размер 64x64 пикселя, центр спрайта выставлен в левом верхнем углу o_door ------ это твоя дверь тоже такие размеры как и у героя
lvl_5 ---- допустим это имя комнаты в которую нужно перейти
и так...
заходим в обьект o_hero , создаем событие Step и пишем скрипт
if (collision_rectangle(x,y,x+64,y+64,o_door,1,0)) and (keyboard_check(ord("F"))) //- если колизия Глав героя соприкасается с колизией Двери и нажата клавиша "F" То { room_goto(lvl_5) //переходим в комнату "lvl_5" }
Предыдущий комментарий натолкнул меня на одну мысль. Поизучай про родительские объекты. К примеру: у тебя на карте не одна дверь а несколько, не к каждой же ты двери будешь писать один и тот же код? Создай объект-родитель дверь и задай его всем объектам.
Для лучшего понимания идеи, можно прибегнуть к базовым урокам GM про столкновения со стенами. Легче создать основной объект стены (даже без спрайта вроде) и назначить его в качестве родителя всем стенам на уровне. Настраиваешь логику столкновения с одним объектом, и оно распространяется на все стены автоматом.