HiddenObject
HiddenObject - поисковый объект на сцене в хидден-игре.
Добавив из редактора ресурсов на сцену картинку поискового предмета, мы изменяем его тип на hiddenObject.
Можно применить групповое изменение типа, выделив с помощью "Shift" или "Ctrl" группу картинок.
Все хидден-объекты должны быть подключены к объекту с типом HiddenList.
Содержание
Общие параметры
(см. описание Object)
- имя ( nm ) - Имя объекта HiddenObject в дереве проекта. Может быт произвольным.
- id-объекта - Уникальный номер объекта HiddenObject, который можно увидеть в строке "имя" либо при наведении курсора на неё.
- синхронизация ( sync ) - Применяется для синхронизации между лейаутами. Если указан параметр "нет", то объект будет активен только на текущем лейауте. По умолчанию указан параметр "да".
- сохранение параметров ( sv ) - Настройка этого параметра актуальна, если приложение в дальнейшем будет сворачиваться в системную панель («трей»). Выбирается значение этого параметра из выпадающего списка. Возможны следующие варианты: "нет", "только объект", "объект с подобъектами", "только подобъекты". При выходе из трэя будут восстановлены ранее измененные/установленные (при переходе с одного экрана на другой)параметры объектов или подобъектов в зависимости от выбранного варианта для этого параметра. По умолчанию указан параметр "нет". Следует помнить, что если выбирается для объекта некоторой сцены значения этого параметра отличное от "нет", то должно и предусматриваться соответствующее значение этого параметра и для этой сцены, и для экрана, содержащего эту сцену.
- z ( z ) - Параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим.
- память ( memo ):
- 1 - при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана);
- 0 - обновит свои параметры, при повторном открытии экрана.
Основные параметры
- картинка ( res ) - Графический ресурс хидден-объекта. Перетаскивается мышкой из редактора ресурсов (поле должно быть в состоянии редактирования).
- текстID ( txtID ) - Название хидден-объекта, которое будет отображаться в таблице. Перетаскивается мышкой из текстового редактора (поле должно быть в состоянии редактирования).
- связанный предмет экономики ( economicsID ) - Связанный предмет экономики, участвует в тасках и т.п. Указываем txtID предмета из экономики. Он будет виден на сцене, как хидден-объект.
- использовать текстID для связи ( economicsMain ) - использовать текстID для связи
- текст ( txt ) - При отсутствии ТекстID в таблице будет отображаться этот текст.
- list ( lst ) - Ссылка на HiddenList, к которому будет подключен объект.
- actor ( actor ) - Анимация (машина состояний), которая запустится после нахождения объекта. В этой машине состояний должно быть обязательно состояние show, в котором будет описана, например, анимация полёта актёра.
- flayer ( fl ) - Объект типа flyers, который запустится при клике на спрятанный объект. Можно указывать машину с состоянием "beg".
- тип ( kind ) - Номер типа объекта. Используется при выставленном ограничении в HiddenList (поле [одного типа]).
- обязательный ( forced ):
- 1 - объект всегда будет в списке на поиск;
- 0 - обычный объект ( может попасть в список, а может и не попасть).
- выделение цветом ( colored ):
- 1 - на объект будут распространяться выделения цветом (цвет указывается в HiddenList);
- 0 - не будет распространяться.
- подсвечиваемый ( can_highlight ) - Может ли объект подсвечиваться хинтом
- 1 - да;
- 0 - нет.
- предпочитаемый ( preferred ):
- да - объект является предпочитаемым (используется при исключении объектов с одинаковыми textID);
- нет - не является.
- сессия ( ses ) - Сессия, в которой должен появиться объект ( по умолчанию = "-1").
- набор ( kit ) - Набор, к которому принадлежит объект. Принимает значения 1, 2, 3 и т.д. Указывается в HiddenList.
- приоритет ( prior ) - Приоритет объект, определит его положение в списке. У хидден-листа должна быть включена сортировка по приоритету
- collection ( col ) - Объект типа Collection, к которому относится данный объект. Если объект не коллекционный - просто не задавать.
- сохранять клики ( saveclk ) - Сохранять клики по предметам в опции (по умолчанию они хранятся в рамках сессии)
- сложность ( diffic ) - Параметр, определяющий сложность объекта, 0 - самый простой, чем больше параметр, тем сложнее. Если есть 4 раскладки объекта мяч (общий txtID), каждому объекту мячу задается сложность. Перед началом игры у хидден листа есть рандомный набор текстовых айди объектов. Если в хидден листе включена сложность, хидден лист выберет наиболее простые объекты для выбранных txtID.
- прокликиваемость ( passClk ):
- 0 - объект сам обрабатывает клик и не пропускает его дальше;
- 1 - объект прозрачен для клика мышкой (пропускает объектам под ним);
- 2 - объект сам обрабатывает клик, но и пропускает его дальше".
- economicsMain - если да, то в поле economicsID будет взят id из поля txtID (коллекционный предмет и HO - один объект);
Выделив более 2-х хидден объектов у нас будут параметры группового изменения. Таким образом мы легко можем выставить прокликиваемость или один HiddenList всем нашим объектам сразу!
Настройка морф-объектов
Обязательно в редакторе ресурсов нужно обвести 4-мя шейпами изображение (см. скрин)
- включить - Сделать объект морфом;
- картинка - Графический ресурс изображения спрятанного объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования);
- время трансформации - Время трансформации морфа;
- время смены состояния - Время смены состояния морфа (значение меньше transform_time == переключение отключено);
- время запуска смены - Время запуска цикла смены состояний морфа (значение меньше transform_time == переключение отключено);
- начальное состояние - Начальное состояние морфа;
- остановка морфинга - Останавливать морфинг после нахождения хинтом;
Состояния объекта
У хидден объекта есть состояния, которыми можно управлять с помощью машин. Также можно отслеживать, в каком сейчас состоянии находится хидден-объект. Доступны следующие состояния которые можем использовать:
- wait - находиться на сцене и ожидает события;
- raise - после клика объект поднимается вверх и увеличивается;
- fly - объект летит к цели, вращаясь и уменьшаясь;
- find - можно передавать с помощью разных объектов, сообщает хиддену что он найден (имитировать клик на объекте).
Настройка теней (Пока только в бете)
1) Выбираем объект/сцену, в котором есть хиддены со съехавшими тенями 2) Закрываем базу ресурсов 3) Дальше выбрать пункт в меню - Tools(инструменты) -> special -> recalculate hidden objects pivots
Примечания
- Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.
- Заполнение таблицы "обязательными" объектами происходит построчно слева направо случайным образом. Если такой "обязательный" объект для хидден-листа один, то он всегда будет находиться в левом верхнем углу.
- Для минимализации действий и затрачиваемого времени желательно применять к хидден-объектам групповое изменение параметров (клавишами crl или shift). Т.е. добавили из базы ресурсов хидден-картинки => Все их выделили => И один раз задали им тип "HiddenObject", хидден-лист, флаер нахождения, добавляемые параметры и т.д.
- Зачастую необходимо знать есть ли хидден-объект на сцене. Проверить это можно по параметру "vis".
- Пусть у Ваших хидден-объектов один общий актер. В момент нахождение хидден-объекта он передает актёру состояние show. И пусть в этом состоянии вы считываете координаты гостя (т.е. хидден-объекта), чтобы с того места, к примеру, запустить флаер, машину или что-то еще. Так вот этого делать нельзя! В результате при следующем посещении экрана Вы увидите, что у хидден-объектов изменились координаты. Дело в некоторой архитектурной проблеме. Выход есть. Перед запуском актёра нужно ставить ему параметры hox и hoy, обозначающие координаты объекта его запустившего. Т.е. актёр вместо вычитки координат гостя (хидден-объекта)будет сам у себя читать вышеупомянутые параметры. Например,
- Также в хидден-сценах можно осуществлять поиск логических пар, например мышь-мышеловка, лук-стрела и т. д. Важно чтобы два предмета, составляющие пару, находились на сцене вдвоем (пара считается найденной если игрок тапнул на один предмет пары и след. тапом тапнул второй предмет этой же пары). Также при использовании хинта подсвечиваются два предмета, составляющие одну пару.
Настройки: 1) в парных объектах hiddenObject поле Тип (kind) должно быть одинаково; 2) в объекте hiddenList в группе Внешний вид включить настройку “поиск пар”; 3) актер помимо стандартных состояний fly и fly_end должен иметь состояние highlight - подсветка первого предмета в паре. 4) для хинтования пары в объекте Hint в хинте (искра) необходимо задать второй хвост и второй указатель (причем отличный от первого).
Добавляемые параметры
Дополнительная коллекция ( add_col ) - используется в случае, если объекту нужно относиться более чем к одной:
- id ( col ) - Объект типа коллекция, к которому относится данный объект.
связанный объект ( addLnkObj ) - Связанный объект на противоположном фоне при поиске различий:
- связанный объект ( lnkObj ) - Связанный объект на противоположном фоне при поиске различий.
изменить параметр объекта ( chg ) - При нахождении объекта изменить параметр объекта:
- объект ( obj ) - При нахождении объекта этот объект меняет свой параметр;
- свойство ( par ) - Параметр, который мы изменяем;
- значение ( val ) - Новое значение параметра.
изменить состояние объекта ( nst ) - При нахождении объекта перевести объект в новое состояние:
- объект ( obj ) - При нахождении объекта перевести объект в состояние из следующего поля;
- состояние ( st ) - Новое состояние для объекта из предыдущего поля.
клик на найденный хидден: ( chgComp ) изменить параметр объекта:
- объект ( obj ) - Объект, параметр которого нужно изменить;
- параметр ( par ) - Параметр, которое нужно изменить;
- значение ( val ) - Новое значение параметра.
клик на найденный хидден: ( nstComp ) изменить состояние объекта:
- объект ( obj ) - Объект, состояние которого нужно изменить;
- состояние ( st ) - Новое состояние объекта.
объект вернулся на место через putback: ( chgPb ) изменить параметр объекта:
- объект ( obj ) - Объект, параметр которого нужно изменить;
- параметр ( par ) - Параметр, которое нужно изменить;
- значение ( val ) - Новое значение параметра.
объект вернулся на место через putback: ( nstPb ) изменить состояние объекта:
- объект ( obj ) - Объект, состояние которого нужно изменить;
- состояние ( st ) - Новое состояние объекта.
объект появился как новый объект: изменить состояние объекта ( ):
- объект ( obj ) - Объект, состояние которого нужно изменить;
- состояние ( st ) - Новое состояние объекта.