Вопрос по GM
|
|
CUbeB | Дата: Воскресенье, 03 Февраля 2019, 14:21 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| такая проблема - хочу сделать чтоб кагда игрок стоит вплотную к двери при нажатии кнопки E игрок переходил в другую комнату, но у меня не выходит. вот код-
Код В СТОЛКНОВЕНИЕ: if keyboard_check(ord("E")) {room_goto(room_loc005_704)}
Да да, на аватарке моя старая игра...
|
|
| |
Dimbot | Дата: Воскресенье, 03 Февраля 2019, 18:38 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Странно, попробуй keyboard_check_pressed Еще проверь, происходит ли событие столкновения в принципе. Допустим пусть при столкновении сообщение вылезает на экран, или объект создается, чтоб увидеть можно было, ну либо дверь закрашивается цветом, исчезает, в общем индикация какая-то
|
|
| |
CUbeB | Дата: Воскресенье, 03 Февраля 2019, 18:54 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Dimbot, не работает( Добавлено (03 Февраля 2019, 19:05) --------------------------------------------- само столкновение(
Да да, на аватарке моя старая игра...
|
|
| |
Reker | Дата: Понедельник, 04 Февраля 2019, 07:13 | Сообщение # 4 |
почетный гость
Сейчас нет на сайте
| CUbeB, а ты вообще хитбоксы сделал? Вроде при рисовке спрайта он автоматически не ставиться
|
|
| |
CUbeB | Дата: Понедельник, 04 Февраля 2019, 11:35 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| а что это такое?
Да да, на аватарке моя старая игра...
|
|
| |
Reker | Дата: Вторник, 05 Февраля 2019, 14:03 | Сообщение # 6 |
почетный гость
Сейчас нет на сайте
| CUbeB, когда спрайт рисуешь, можешь выбрать его границы столкновения. Сказать точно сейчас не могу как называется.
|
|
| |
martuk | Дата: Вторник, 05 Февраля 2019, 14:31 | Сообщение # 7 |
заслуженный участник
Сейчас нет на сайте
| Такой поход не эффективен. Один из вариантов, это считать расстояние до двери. Можно задать "Рабочий" диапазон и не будет требоваться вплотную к двери вставать.
|
|
| |
spektor-x | Дата: Понедельник, 18 Марта 2019, 03:34 | Сообщение # 8 |
был не раз
Сейчас нет на сайте
| Привет я не говорю что я прям ВАУ ГУРУ ПО 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" }
|
|
| |
martuk | Дата: Понедельник, 18 Марта 2019, 15:27 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| Предыдущий комментарий натолкнул меня на одну мысль. Поизучай про родительские объекты. К примеру: у тебя на карте не одна дверь а несколько, не к каждой же ты двери будешь писать один и тот же код? Создай объект-родитель дверь и задай его всем объектам.
Для лучшего понимания идеи, можно прибегнуть к базовым урокам GM про столкновения со стенами. Легче создать основной объект стены (даже без спрайта вроде) и назначить его в качестве родителя всем стенам на уровне. Настраиваешь логику столкновения с одним объектом, и оно распространяется на все стены автоматом.
|
|
| |