Isomover — различия между версиями
Denisov (обсуждение | вклад) (→Добавляемые параметры) |
Denisov (обсуждение | вклад) (→Добавляемые параметры) |
||
Строка 64: | Строка 64: | ||
[[Файл:+.png]] '''Взаимодействие с другими объектами''': | [[Файл:+.png]] '''Взаимодействие с другими объектами''': | ||
− | *тип - тип | + | *тип - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа |
− | *анимация - | + | *анимация - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов |
*старт таймер - | *старт таймер - | ||
*предмет - | *предмет - | ||
Строка 79: | Строка 79: | ||
*объект успех - | *объект успех - | ||
*состояние успех - | *состояние успех - | ||
+ | Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его | ||
[[Файл:+.png]] '''Клик при простое''': | [[Файл:+.png]] '''Клик при простое''': | ||
*объект - | *объект - |
Версия 10:22, 30 ноября 2015
Isomover - объект используется для осуществления движения и взаимодействия в изометрической карте.
Isomover обязательно должен быть подобъектом isomap.
В проекте с картой (isomap) и движущимися по ней объектами (isomover) часто используют economics и eitems потому, что для завершения процессов часто требуется применить предмет или ресурс.
Начало движения множества изомуверов сильно нагружает систему, поэтому следует позаботиться, чтобы это происходило не в один момент времени. По возможности добавляйте небольшую и различную паузу каждому изомуверу перед стартом.
Содержание
Общие параметры
- Положение (x,y) - рекомендуется выносить isomover-объекты за пределы карты. Иначе, если объект должен появляться не сразу, то он будет просто стоять без движения
- Память - всегда должно быть значение 1, обязательное условие корректной работы. Это позволяет объекту двигаться последовательно, не инициализируясь после каждого движения в исходной точке
Основные параметры
- Старт (start) - точка старта, выбирается из списка точек Isomap
- Финиш (finish) - точка финиша, выбирается из списка точек Isomap
- Скорость (макс) (vel_max) - максимальная скорость, с которой передвигается объект Isomover
- Скорость (vel) - не использовать, вычисляется по формуле автоматически, позже будет скрыто.
- Жизнь (макс) (pow_max) - максимальная жизнь
- Жизнь (pow) - текущая жизнь
- Сохранять жизнь в опции (powsave) - если да, то объекты сцены сохранят уровень жизни при выходе со сцены и возвращении на нее
- Коэффициент скорости (speed_k) - коэффициент в формуле расчета скорости
- Менять угол (fixangle) - изменение угла
- Тип (mtype) - объекты можно разделять на типы (люди, монстры, звери). Взаимодействие происходит между объектами разных типов, настраивается в добавляемых параметрах
- Радиус (mradius) - значения радиуса. Попадание изомувера другого типа в этот радиус позволит начать взаимодействие.
- Время появления (appear_time) - время в миллисекундах появления объекта (длительность перехода по alpha)
- Время провала (fail_time) - длительность анимации смерти объекта
- Время паузы (pause_time) - длительность "заморозки" объекта
- Графический ресурс:
- вверх (res0) - графический ресурс движения вверх
- вверх/вправо (res1) - графический ресурс движения вверх/вправо
- вправо (res2) - графический ресурс движения вправо
- вниз/вправо (res3) - графический ресурс движения вниз/вправо
- вниз (res4) - графический ресурс движения вниз
- вниз/влево (res5) - графический ресурс движения вниз/влево
- влево (res6) - графический ресурс движения влево
- вверх/влево (res7) - графический ресурс движения вверх/влево. Достаточно указать первые пять ресурсов, а остальные редактор отобразит автоматически симметрично
- иконка персонажа (char_ico) - иконка, которая будет находится сверху над персонажем. Изменение масштаба во время игры не влияет на масштаб иконки. Рекомендуется создавать ее с пивотом у нижней границы, тогда при масштабировании не будет образовываться зазор между иконкой и графикой объекта.
- Коэффициент скорости
- вертикальное (speed_0) - на этот коэффициент умножается скорость при вертикальном движении
- диагональное (speed_1) - на этот коэффициент умножается скорость при диагональном движении
- горизонтальное (speed_2) - на этот коэффициент умножается скорость при горизонтальном движении
Обычно горизонтальный коэффициент равен 1.00, чуть меньше диагональный и еще меньше вертикальный. Это необходимо для создания реалистичности движения относительно перспективы. То есть объекты, двигаясь вверх, как бы отдаляются от нас в глубь, поэтому по экрану они движутся медленней
- Таймер:
- подложка - фон для цифр таймера
- цифры - набор из 10-и цифр в виде ресурса анимации (клипа)
- двоеточие - графический ресурс двоеточия
- dx - смещение таймера по оси x относительно пивота изомувера
- dy - смещение таймера по оси y относительно пивота изомувера
- dx между цифрами - расстояние между цифрами таймера
- dx от - отступы числовых разрядов влево и вправо от двоеточия
- жизнь (objlife) - здесь выбирается объект типа прогресс_бар для отображения шкалы уровня жизни. Progress_bar создается отдельным объектом
Таймер позволяет отобразить время до окончания взаимодействия объектов. Например "корабль" прибыл в "порт" и начал отгружать груз. С помощью числового таймера или progress_bar можно увидеть через сколько закончится отгрузка. На рисунке справа показано взаимодействие двух объектов с изображение шкалы жизни одного из объектов и времени до конца взаимодействия.
- Преследование
- тип (chasetype) - тип объекта, который можно преследовать
- радиус (chaseradius) - если объект указанного типа окажется в этом радиусе, то начнется преследование (например полицейская погоня)
- Дорожное движение
- радиус (stopradius) - объекты, которые двигались по одному ребру, останавливаются на расстоянии этого радиуса (необходимо для препятствия наслоений объектов на дороге, железнодорожных путях)
Добавляемые параметры
Взаимодействие с другими объектами:
- тип - тип объекта с которым по настроенному ниже сценарию будет происходить взаимодействие, -1 для любого типа
- анимация - анимация взаимодействия, например боя, разгрузки, разговора. Перетаскивается мышкой из редактора ресурсов
- старт таймер -
- предмет -
- иконка -
- смещение иконки -
- актив таймер -
- объект инит -
- состояние инит -
- объект старт -
- состояние старт -
- объект фейл -
- состояние фейл -
- объект успех -
- состояние успех -
Для каждого типа объектов, с которыми взаимодействие возможно, необходимо добавить отдельный параметр "взаимодействие с другими объектами" и настроить его Клик при простое:
- объект -
- состояние -
- объект -
- состояние -
- объект -
- состояние -
Состояния
idle - дефолтное состояние, в которое isomover переходит после всех манипуляций. Недвижимым объектам следует передавать idle, чтобы они появились (нарисовались) на карте. Для движущихся объектов его практически не используют, объект сам рисуется с началом движения.
acting_wait - первое состояние взаимодействия (запускается первый таймер, анимация взаимодействия и ожидается старт).
acting - второе состояние взаимодействия (вызывается после применения предмета или клика, запускает второй таймер).
being_acted - в этом состоянии пребывает тот объект, над которым идет действие. Объект в этом состоянии невидим.
move - состояние движения от старта к финишу.
move_to_smooth - состояние движения от текущей ноды (или следующей, если объект идет) к финишу.
appear - показать по альфе за время появления.
disappear - скрыть по альфе за время появления.
prepare_acting - вызвать взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.
start_acting - продолжить взаимодействие без оппонента. Перед вызовом нужно в поле param записать номер взаимодействия по порядку.
Особенности работы
Движение объекта типа Isomever задается с помощью отдельной машины состояний через которую происходит управление состояниями move, acting и остальными.