Среда, 18 Декабря 2024, 11:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема перехода в нутри Room_*
Sergey_KykДата: Воскресенье, 29 Октября 2017, 17:24 | Сообщение # 1
был не раз
Сейчас нет на сайте
Как сделать переход между двумя координатами в одной комнате GMS2,(много будет пар переходов с маленькой задержкой в комнате )? , (не переход между комнатами)

ГГ встает на зону варпа,игрок нажимает например "Е" и переходит 2 сек, появляется в новой точке.
maker-rusДата: Воскресенье, 29 Октября 2017, 19:56 | Сообщение # 2
Гений
Сейчас нет на сайте
Sergey_Kyk, так меняй координаты ГГ и камеры, что за ним следит на те, которые нужно, что трудного?
Sergey_KykДата: Воскресенье, 29 Октября 2017, 22:56 | Сообщение # 3
был не раз
Сейчас нет на сайте
maker-rus, Не могу понять как написать код
step ГГ:
Код
key_u =   keyboard_check(vk_up){
    if place_meeting(x,y, obj_door)
{
   x= obj_player.x
   y= obj_player.y
   }


как связать координаты двух obj_door в комнате
nekroo98Дата: Понедельник, 30 Октября 2017, 09:02 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Цитата
как связать координаты двух obj_door в комнате

Sergey_Kyk, не понятно, что именно ты хочешь, объясни нормально.

И в коде, вангую, надо прописать
Код
obj_player.x=xxx
   obj_player.y=yyy
где xxx и yyy - координаты куда надо переместиться

и код этот не в степе, а в событии "Кнопка отпущена"


Сообщение отредактировал nekroo98 - Понедельник, 30 Октября 2017, 15:21
Sergey_KykДата: Понедельник, 30 Октября 2017, 17:41 | Сообщение # 5
был не раз
Сейчас нет на сайте
nekroo98,игрок встает на зону obj_door x/y/ ,игрок нажимает например "Е" и переходит 2 сек, появляется во второй зоне obj_door x/y/ .

(проще говоря телепорт туда обратно, но комнате их много)
AAAlexДата: Понедельник, 30 Октября 2017, 18:59 | Сообщение # 6
частый гость
Сейчас нет на сайте
Sergey_Kyk, Напишу по русски. Да и гм не знаю почти :)
Событие - кнопка Е нажата.
Далее проверяем: если игрок.х == такая-то_дверь.х И игрок.у == такая-то_дверь.у
То делаем вот что: задержка 2 секунды, игрок.х = другая_дверь.х, игрок.у = другая_дверь.у
Иначе: показать_строку("игрок_не_в_зоне_двери") # если нужно
#
Не знаю ЯП в Game maker, но примерно так. Поправьте, кто знает.
Найти событие: "Нужная клавиша нажата", туда написать примерно такой код.
Код
if obj_player.x == obj_door_1.x and  obj_player.y == obj_door_1.y # если координаты игрока совпадают с координатами двери Один
Then
delay(2000) obj_player.x = obj_door_2.x obj_player.y = obj_door_2.y # Назначить игроку координаты двери Два
Else
printstring("игрок_не_в_зоне_двери") # вывод сообщения, что условие не верно.

Если дверей несколько и/или не известно сколько их вообще, то вместо obj_door_1 и obj_door_2 ставится переменная, которая меняет значение когда тебе нужно. а следовательно координаты двери тоже будут меняться.


Сообщение отредактировал AAAlex - Понедельник, 30 Октября 2017, 19:07
nekroo98Дата: Среда, 01 Ноября 2017, 14:22 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Цитата Sergey_Kyk ()
nekroo98,игрок встает на зону obj_door x/y/ ,игрок нажимает например "Е" и переходит 2 сек, появляется во второй зоне obj_door x/y/ .

(проще говоря телепорт туда обратно, но комнате их много)

Если в комнате несколько "пар" дверей, то каджой из дверей ты назначаешь переменные, допустим move_to_x и move_to_y, присваиваешь им координаты, куда она будет перемещать. Либо просто х у точки появления прописываешь, либо "имя_двери_к_которой_надо_переместиться.х", "имя_двери_к_которой_надо_переместиться.y"
Если ты хочешь, чтобы строго определенная дверь телепортировала к другой строго определенной двери - ВСЕ двери должны быть разными обьектами: obj_door0, obj_door1, 2, 3...
Или для удобства - парами, если хочешь чтобы дверь телепортировала к двери, которая может телепортировать обратно к первой. obj_door0_1, obj_door0_2; obj_door1_1, obj_door1_2. Это просто для удобства и чтоб не запутаться самому.
Например, в событии создания обьекта obj_door0
Код
move_to_x=obj_door1.x; move_to_y=obj_door1.y


Далее, надо сделать так, чтобы обьект персонажа знал, куда перемещаться. Для этого в событии Шаг у персонажа пишем
Код
xyz=instance_nearest(obj_door_parent); //Записывает в переменную xyz ИД двери(или как то так это работает).
Теперь можно работать с переменной, как с объектом. Кстати, obj_door_parent - родитель для всех дверей,
должен быть прописан во всех обьектах-дверях.

у персонажа в событии кнопка Е отпущена(ну или на какую там кнопку телепорт)
Код
if place_meeting(x,y,obj_door_parent)          //если персонаж соприкасается с дверью
{x=xyz.move_to_x //присваиваем ему координаты х и у
y=xyz.move_to_y  //которые записаны в этой двери
}


Как то так.
Единственное, я не знаю как сделать красивую задержку, как при переходе между комнатами.
Пробуй просто рисовать большой спрайт во весь экран, типа эфект перехода.


Сообщение отредактировал nekroo98 - Среда, 01 Ноября 2017, 15:26
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг