Как сделать перемещение камеры?

техническая поддержка по Construct 2

Сообщение Как сделать перемещение камеры?
» 15 апр 2020, 20:04

Доброго дня форумчане, столкнулся с такой проблемой.

У меня игра платформер, и я использую плавную камеру, есть отдельный прозрачный спрайт который перемещается к ImagePoint спрайта игрока через Lerp.

Пытаюсь реализовать переключение камеры по триггеру. что-то типа небольшой кат сцены.
Например игрок бежит, входит в триггер и в этот момент я у него отнимаю управления, и камера должна плавно приблизиться к другому объекту (показать его игроку), повисеть определенное время, например 1-2 секунды и также плавно вернуться обратно к игроку и в этот момент обратно возвращается управление.

Собственно уже 3 день мучаю скрипт и нифига нормально не получается, и так и сяк пробовал, всегда засада в том, что некоторые действия напрочь игнорируют system>wait. думаю нет смысла показывать мой код, так как он все равно не правильный, просто хоть как-то объясните, как делать такие штуки.

PS/Также пробовал использовать плагин LiteTween, в нем есть возможность четко указать как долго будет происходить плавное перемещение, там есть функция Reverse, она возвращает нас к обратной точке, но она не корректно отрабатывает, возвращает не совсем в ту точку которую нужно. и единственный способ вернуть обратно, вполне логично задать после WAIT новые координаты и стартануть эту функцию, но та последовательность которую я пишу, работает пипец как странно, половина действий как будто игнорируется. например функция Destroy срабатывает почему-то вообще игнорируя задержки и выполнение другого кода.
Аватара пользователя

Участник
Сообщений: 33
Я тут с 28 окт 2015
Откуда: Москва
Двиг: Construct 2
Лицензия: Free =(
Skype: Korshunovmax
VK: Vk.com/freeza
Репутация 0 [ ? ]

Сообщение Как сделать перемещение камеры?
» 15 апр 2020, 22:13

Я лично для таких целей добавляю спрайту камеры поведение MoveTo. Этот плагин передвигает объект (в данном случае, это камера) из точки А в точку Б. В настройках можно указать скорость, замедление, ускорение и т.д.

Чтобы сделать кат-сцену можно добавить камере переменную, и в зависимости от её значения задавать камере нужное поведение. Например, если переменная = 0, то двигать камеру по таким-то координатам. Когда сработает триггер, что камера достигла точки назначения, то добавлять к значению переменной +1, ну и так далее, по такому же принципу.
Аватара пользователя

Редактор
Сообщений: 147
Я тут с 01 авг 2017
Репутация 39 [ ? ]

Сообщение Как сделать перемещение камеры?
» 16 апр 2020, 19:15

ViGaCi, Я также попробовал сделать через переменные, приложил пример кода, я также использовал moveto но отказал от него, так как мне нужно двигать камеру не к объекту, а к ImagePoint, а он этого не поддерживает.

Но в целом это не важно, важен в моем примере конкретный факт, выделенный желтый блок, в нем стоит задержка 2 секунды и после чего я задаю значение переменной, но проблема в том, что этот блок игнорирует задержку и переменная назначается сразу. и переходит к следующему блоку.

Собственно вопрос у меня скорее по этой теме... читал несколько статей про wait, но видимо что-то я не совсем правильно делаю или не до конца догоняю как правильно им пользоваться.

Изображение
Аватара пользователя

Участник
Сообщений: 33
Я тут с 28 окт 2015
Откуда: Москва
Двиг: Construct 2
Лицензия: Free =(
Skype: Korshunovmax
VK: Vk.com/freeza
Репутация 0 [ ? ]

Сообщение Как сделать перемещение камеры?
» 16 апр 2020, 19:20

PS/
Тут в целом вопрос даже не про камеру, а про построение некой временной шкалы из wait, у меня никак не получается выполнять нужный мне код в нужной последовательности с нужными задержками. то есть это может быть как и камера, так и система диалогов, например сначала я показываю одну реплику NPC потом вторую и третью, но в таком случае у меня также возникнет проблема что они отобразятся сразу без задержек

PPS/ думаю сейчас в ответ мне прилетит trigger_once, но с ним тоже есть проблемы, например если сделать lerp, moveto или еще чтото, то оно сразу же останавливается...

Изображение
Аватара пользователя

Участник
Сообщений: 33
Я тут с 28 окт 2015
Откуда: Москва
Двиг: Construct 2
Лицензия: Free =(
Skype: Korshunovmax
VK: Vk.com/freeza
Репутация 0 [ ? ]

Сообщение Как сделать перемещение камеры?
» 17 апр 2020, 18:21

Ну, вот мой собственный пример, как я реализовал пошаговый туториал в своей игре (по-сути, это можно назвать системой диалогов, только несколько более расширенную). Вся система построена на триггерах, т.е. действие Б наступит только после действия А, что исключает возможность сбоев.

Изображение Изображение
Аватара пользователя

Редактор
Сообщений: 147
Я тут с 01 авг 2017
Репутация 39 [ ? ]

Сообщение Как сделать перемещение камеры?
» 18 апр 2020, 02:40

ViGaCi, Спасибо огромное за помощь, вот моя реализация:

Изображение

Плагин LiteTween который использовал в этом примере, вдруг кому пригодится:
LiteTween.zip
(11.96 КБ) Скачиваний: 30
Плагин LiteTween

Позволяет плавно двигать объекты, также не мало важное достоинство этого плагина, это куча заготовленных пресетов кривых безье (какая именно плавность, нарастающая, линейная, затухающая и много других скомбинированных)

Например для камеры я использую пресет "EaseInOutQuad" Весьма приятная анимация движения
Аватара пользователя

Участник
Сообщений: 33
Я тут с 28 окт 2015
Откуда: Москва
Двиг: Construct 2
Лицензия: Free =(
Skype: Korshunovmax
VK: Vk.com/freeza
Репутация 0 [ ? ]



Вернуться в Вопрос-Ответ по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх