HiddenList
Общие сведения
HiddenList является менеджером поисковых объектов. Для корректного подсчета очков (если он требуется). HiddenList должен располагаться в дереве - ниже всех своих поисковых объектов. На сегодня HiddenList не просто управляет объектами на сцене, он отвечает за все штрафы, поощрения, а в связке с такими объектами как HiddenHint + Effect можно реализовать графические эффекты: "ночь", "трансформация цвета" и т.д. с одним набором графики, а также систему подсказок.
Параметры
У листа есть стандартные параметры такие как положение на экране, размер, модификаторы и т.д. по сути они не важны главное что лист не перекрывал на сцене другие объекты, по-этому лучше ему находиться за пределами сцены. Единственный обязательный объект о котором должен знать лист это Table для отображения списка поиска, даже если таблица не будет использоваться быть все равно должна!
Ниже приведен список параматров и свойств листа которые мы можем найти на картинках справа.
- группа ( gr ) - Группа, в которую входит текущий объект
- память ( memo )- Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)
- картинка ( res ) - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Обычно не используется, а применяется для отображения table
- таблица ( table ) - Объект, типа table который является визуальным отображением списка. Должна быть обязательно
- Подсказка ( hint ) — объект типа HiddenHint, который является менеджером хинтов.
- Счетчик ( hdncnt ) — объект типа Counter, который отображает количество найденных объектов.
В самом счетчике в параметрах нужно указать val = 0, поскольку изначально нет найденных объектов.
- Таймер ( timer ) — объект типа Timer, который отображает время игры.
При инициализации листа он передаст состояние "start" таймеру.
Внешний вид
- вычеркнуть ( cross ) - Если 1, то найденный объект вычеркивается, оставаясь в списке(таблице), иначе он удаляется из списка.
- листать ( scroll ) - Если 1, то список можно листать (скролировать), иначе ищутся только те, кто сейчас в нём виден.
- тип списка ( kind ) - Тип поиска объектов:
- 1 - слово;
- 2 - предложение;
- 3 - удаляемая пиктограмма;
- 4 - пиктограмма;
- 5 - поиск различий.
Звуки при нахождении хидденов
- обычный ( sndNrm ) - Звук при нахождении обычного HiddenObject.
- коллекционный ( sndCol ) - Звук при нахождении коллекционного HiddenObject(объекту должна быть установлена коллекция)
Параметры поиска
Основные
- объектов ( num ) - Максимальное количество доступных для поиска объектов в одной игровой сессии. (ВАЖНО!!! Таблице нужно установить общее количество ячеек равное(или больше) количеству доступных для поиска объектов.)
- активных объектов ( numact ) - Максимальное Количество активных объектов в одной игровой сессии.
- одного типа ( max ) - Максимальное количество объектов одного типа - поле тип в hiddenObject или хидден объекты с одинаковыми текстовыми ID могут считаться объектами одного типа (если -1 то игнорируется)
- прятать ( hide ) - Делать невидимыми объекты, не участвующие в поиске.
- оставлять ( stay ) - Оставлять найденный объект на месте (вызывая только флаеры) при удачном клике.
- актёр-иконка ( actorIco ) - если "да", то во время полёта найденного хидден-объекта вместо него летит иконка которая помечена как "main picture" и указана в текстовом id хидден-объекта.
- актер ( actor ) - Актёр.
Скорость
Отвечают за скорость перемещения найденного объекта.
- полета ( vf ) - Скорость полета в пикселях в секунду.
- вращения ( vr ) - Скорость вращения в градусах в секунду.
Другие
- скалирование объектов ( scale_object ) - При нахождении во время полета объект будет скалироватся:
- 0 - отключено;
- 1 - включено.
- пропадание объектов ( alpha_object ) - При нахождении во время полета объект будет менять альфу:
- 0 - отключено;
- 1 - включено.
- реагировать на отпускание ( touch_up ) - Объекты связанные с этим хидденлистом будут реагировать на отпускание, а не на нажатие:
- 0 - отключено;
- 1 - включено (То есть реагировать на четкий клик, если кликнули и сместили область клика объект не реагирует!).
- реагировать на finger tap ( finger_tap ) - Объекты, связанные с этим хидденлистом, будут реагировать на отпускание после ожидания дабл тача.
- задержка срабатывания ( touch_delay ) - только для реакции на нажатие. Время между нажатием и реакцией списка объектов.
- объединять одинаковые тексты ( same_txt ) - Объекты с одинаковым текстом будут жить в одной ячейке таблицы с добавлением множителя xN.
- 0 - отключено;
- 1 - включено.
- множитель для иконок ( ico_res ) - Графический ресурс(анимация) для отображения множителя у иконок для типа списка 4(поиск по иконкам) и включенного объединения одинаковых текстов. Первый фрейм - х2, второй - х3 и т.д.
- исключать одинаковые тексты ( unTxtID ) - исключает или не исключает из поиска объекты с одинаковыми txtID, используется совместно с одного типа.
- вероятность пассивного предпочитаемого объекта ( prefProb ) - вероятность выпадения пассивного объекта, если у объекта стоит параметр "предпочитаемый" используется при исключении объектов с одинаковыми текстовыми ID
- вероятность активного предпочитаемого объекта ( prefProbAct ) - вероятность выпадения активного объекта, если у объекта стоит параметр "предпочитаемый" используется при исключении объектов с одинаковыми текстовыми ID
- реагировать на невидимые ( canInvis ) - реагировать или нет на объекты, которые в момент игры не видны в таблице. (Кликаются только те hiddenObject которые отображены в таблице, остальные нет!)
- распределять равномерно ( undist ) - Равномерно распределять объекты по площади сцены.
- прятать актеров при старте ( hideact ) - Устанавливать актерам видимость false при старте (по умолчаинию - да)(То есть всем актерам которые находятся на сцене при запуске принудительно установиться vis = 0)
- аномалия ( anom ) - для всех аномалий кроме текстовой лист должен быть под объектом Effect):
- 0 - нет;
- 0 - текстовая;
- 0 - ночь;
- 0 - трансформация цвета;
- 0 - дым.
- флурри ( flurry ) - Нужно ли отправлять статистику флурри "regexp=":
- 0 - нет;
- 1 - да.
- вероятность инверсии ( invProb ) - Вероятность того, что сцена будет перевернута по x;
- набор ( kit ) - Набор, из которого берутся объекты.
Появление новых объектов
- время ( acttm ) - Время появления объекта (мс);
- начальный скейл ( actsc ) - Начальный скейл;
- начальная альфа ( actal ) - Начальная альфа.
Сессии
- сессионность ( ses )
- 0 - нет;
- 1 - да.
- ограничение сессий ( sesLim ) - Максимальное количество сессий, в которые можно играть
- набор объектов ( sesSet ) - Набор объектов при заходе в хидден после последней сессии:
- 0 - случайный;
- 1 - последний фон;
- 2 - пустой.
Цвета
- Цвет обязательных ( c_forced ) — цвет текста для обязательных объектов, указывается код цвета, если строку не заполнять цвет не используется
- Цвет найденных ( c_found ) — цвет текста для найденных объектов, указывается код цвета, если строку не заполнять цвет не используется
- Время перехода ( c_time ) - Время изменения цвета
Время
- игры ( tmGm ) - Общее время игры. Если оно истекает, идет переход на экран [время вышло]: (см.ниже);
- -1 - игнорируется;
- число - время игры.
- прерывать ( tmInt ):
- 1 - по окончанию времени игра будет прервана;
- число - по окончанию времени игра продолжится, но переход все равно будет на неудачную ветку.
- паузы ( tmWt ) - Время перед закрытием окна после разбора (для осмысления результата);
- полета актера ( tmActor ) - Время работы актера, после которого обрабатываются ячейки таблицы;
- перед исчезновением ( tmWtHide ) - Время, в течение которого объект остается видимым после обработки.
Ошибки
- flyer при ошибке ( fl ) - обычно объект типа flyer (летуны которых надо показать в точке клика, если этот клик ошибочный). Можно в принципе любой объект который обладает состоянием "beg". Ошибочный клик - все клики мимо hiddenObject.
- вычет времени при ошибке ( tmPen ) - Сколько отнять миллисекунд за ошибочный клик.
Переход
- при разборе ( scrOk ) - Экран на который надо перейти, если все объекты найдены
- время вышло ( scrOv ) - Экран на который надо перейти если время вышло, а не все объекты найдены
Система очков
- Счетчик ( score_counter ) — счетчик, отображающий набранные очки.
- счетчик (test) ( score_counter_test ) — счетчик, отображающий набранные очки.
- ID пака ( pack_id ) — строковый идентификатор пака(для записи набранных очков в options должен быть заполнен); используется для вытаскивания суммарных очков в счетчики и дальнейшего их отображения.
- ID игры ( game_id ) — строковый идентификатор игры (сцены).
Обязательно должен иметь префикс ID пака. Например, если pack_id = "pack1", то game_id = "pack1.game1"
- мультипликатор очков ( scoreM ) — Мультипликатор очков за объект, если все собрано за отведенное время.
- Очки ( score ) — количество очков, которые даются за каждый найденный hiddenObject.
- Бонус за скорость ( bonusS ) — бонус за быстро найденный hiddenObject.
- Бонусный интервал ( bonusT ) — время, за которое нужно найти hiddenObject для получения бонуса.
- бонус за время ( bonusTime ) - бонус за оставшееся время игры = коэффициент который введем * оставшееся время таймера.
- Бонусный мультипликатор ( grow ):
- 1- умножать очки за второй быстро найденный предмет на 2, за третий на 3, и т. д.
- Количество кликов для штрафа ( wrngC ) — количество неверных кликов, после которых запустится блокатор (см. ниже).
- Интервал для штрафа ( Интервал для штрафа ) — время, за которое нужно совершить неверные клики.
- Штраф (очки) ( delS ) — Сколько отнимаем очков за ошибочный клик.
- Штраф (время) ( delT ) — Сколько отнимаем времени за ошибочный клик.
- блокатор ( blockImg ) - Объект, блокирующий сцену при серии ошибочных кликов. (Обычно маска растянутая на весь экран. ДОЛЖНА иметь состояние "beg")
- время блокировки ( blockTime ) - Время блокировки при серии ошибочных кликов по истечении переводит "блокатор" в состояние end
- порог touch move ( mvSens ) - Порог, начиная с которого движение пальца воспринимается как мув и сбрасываются неправильные клики.
- touch move как штраф ( tchMvPen ) - Считать ли touch move за ложное попадание нет = 0, да = 1
- клик на найденный как штраф ( clkFndPen ) - Считать ли клик на найденный объект за ложное попадание(актуально если объекты остаются на сцене)
- аниматор очков ( scoreAnim ) - машина, которая анимирует полученные очки, должна иметь состояние anim
- коэффициент комбо ( cmbCoef ) - коэфициент для расчёта комбо очков по формуле s(n) = k * n * (n + 1).
- счётчик очков за объект ( objScCnt ) - счётчик который показывает очки за последний полученный объект (учитывая бонусы).
- счётчик комбо-очков ( cmbScCnt ) - счётчик очков полученных за комбо-серию.
- счётчик комбо-серий ( cmbRwCnt ) - счётчик который показывает комбо-серию (комбо из 2-х, 3-х и т.д. найденных объектов).
- комбо2 прогресс ( cmb2Pr ) - комбо2 прогресс;
- комбо2 время ( cmb2Tm ) - комбо2 время;
- комбо2 кол-во ( cmb2Num ) - комбо2 кол-во.
Звезды
- combo num ( comboNum ) - Количество быстро найденных объектов, нужное для получения звезды Combo
- combo time ( comboInt ) - Интервал между кликами, считающимися быстрыми для Combo
- accuracy ( accuracy ) - Точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные)
- лимит ложных кликов ( starWrAcc ) - Лимит ложных кликов.
Формула расчета проста, количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.
Добавляемые параметры
появляется новый объект: изменить состояние объекта ( actst ):
- объект ( obj ) - Объект, состояние которого нужно изменить;
- состояние ( st ) - Новое состояние объекта.
разбор: если был экран ( wscrOk ) - При нахождении всех объектов, переходим на определенный экран, если некоторый экран был уже хотя бы раз посещен
- был экран ( was ) - Экран, который мы проверяем на то, был ли он уже открыт хотя бы один раз
- перейти на ( scr ) - Переходим на этот экран, если экран из предыдущего поля уже открывался
разбор: изменить состояние объекта ( nstOk ) - При нахождении всех объектов, перевести объект в новое состояние
- объект ( obj ) - Перевести объект в состояние из следующего поля
- состояние ( st ) - Новое состояние для объекта из предыдущего поля
разбор: изменить параметр объекта ( chgOk ) - При нахождении всех объектов, изменить параметр объекта
- объект ( obj ) - этот объект меняет свой параметр
- свойство ( par ) - Параметр, который мы изменяем
- значение ( val ) - Новое значение параметра
не успел: если был экран ( wscrOv ) - Если вышло время, а объекты не найдены, переходим на определенный экран, если некоторый экран был уже хотя бы раз посещен
- был экран ( was ) - Экран, который мы проверяем на то, был ли он уже открыт хотя бы один раз
- перейти на ( scr ) - Переходим на этот экран, если экран из предыдущего поля уже открывался
не успел: изменить состояние объекта ( ) - Если вышло время, а объекты не найдены, перевести объект в новое состояние
- объект ( obj ) - перевести объект в состояние из следующего поля
- состояние ( st ) - Новое состояние для объекта из предыдущего поля
не успел: изменить параметр объекта ( ) - Если вышло время, а объекты не найдены, изменить параметр объекта
- объект ( obj ) - этот объект меняет свой параметр
- свойство ( par )- Параметр, который мы изменяем
- значение ( val ) - Новое значение параметра
- счетчик ( cnt ) - Каунтер, которому приходят очки.
группа extra bonus ( extraBonus ). Используется для economics, при находжении объекта с некой вероятностью может выпасть бонус. Объект который анимирует появление бонуса должен иметь состояние show, время на наимацию бонуса - 10 секунд:
- монетки объект ( coinsObj ) - объект который анимирует получение монет.
- монетки вероятность ( coinsProb ) - вероятность по нахождению объекта получить дополнительно монетки.
- опыт объект ( expObj ) - объект который анимирует получение опыта.
- опыт вероятность ( expProb ) - вероятность по нахождению объекта получить дополнительно опыт.
- энергия объект ( energyObj ) - объект который анимирует получение энергии.
- энергия вероятность ( energyProb ) - вероятность по нахождению объекта получить дополнительно энергию.
Объект, который срабатывает, если долго не находить хидден ( notfnd ):
- объект ( obj ) - Объект, который переводится в указанное состояние, если долго не находить хидден
- состояние ( st ) - Состояние, в которое переводится объект
- время ( tm ) - Время от последнего нахождения хиддена, после которого срабатывает объект
параметры аномалии с исчезновением букв ( hlPars ):
- оставшиеся буквы ( min ) - Минимальное количество оставшихся букв в предложении;
- задержка ( wait ) - Момент времени, начиная с которого аномалия будет проявляться;
- задержка 2 ( wait2 ) - Задержка для появившихся слов, изначально недоступных;
- время ( time ) - Время, за которое должны исчезнуть все буквы (если -1, то до конца времени в хиддене);
- промежутки ( dt ) - промежутки времени между каждой итерацией.
- флайер ( fl ) - Флайер, анимирующий исчезающую букву (должен иметь текстовый тип).
параметры аномалии ночь ( nightPars ):
- effect ( ef ) - эффект, управляющий трансформацией цвета;
- tag ( eftag ) - Тег эффекта, реализующего ночь.
параметры аномалии трансформации цвета ( colInvPars ):
- effect ( ef ) - Эффект, управляющий трансформацией цвета;
- tags ( eftags ) - Теги эффектов, реализующих трансформацию цвета, из которых будет выбран один.
параметры аномалии дым ( smokePars ):
- effect ( ef ) - Машина, управляющая эффектом дыма;
- tag ( eftag ) - Тег эффекта, реализующего дым.
Все аномалии кроме текстовой должны быть настроены с помощью объекта Effect
Состояния
Состояния которые есть у листа. Мы можем передавать их с помощью различных объектов.
- invert ( ) - горизонтально отображает изображение.
- run ( ) - переводит хидден с состояние активности, если до этого был на паузе.
- pause ( ) -переводит хидден с состояние паузы, объекты не кликаются!