HiddenList — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Добавляемые параметры)
(Примечания)
Строка 226: Строка 226:
  
 
*Единственный '''обязательный объект''' о котором должен знать лист это [[Table]] для отображения списка поиска, даже если таблица не будет использоваться быть все равно должна!
 
*Единственный '''обязательный объект''' о котором должен знать лист это [[Table]] для отображения списка поиска, даже если таблица не будет использоваться быть все равно должна!
 +
 +
*После завершения хидден-игры (по разбору или по времени)при переходе на другой экран HiddenList записывает данные в опции в два места: первое - это то, которое указано у настрйках (ID пака,  ID уровня), для каждой локации свое; а второе - это last_game. <br>
 +
Например, <br>
 +
'''last_game.time_spent''' (либо же '''pck_N.lvl_N.kind_N.time_spent''') - время последней игры, <br>
 +
'''last_game.clicks''' - количество найденных объектов и т.д. <br>
 +
Все их можно увидеть в опциях. last_game был придуман для того, чтобы было удобно задавать счетчики в окне результатов. Также эти данные могут быть сохранены в опциях, если задать листу состоние '''wait'''.
  
 
== Добавляемые параметры ==
 
== Добавляемые параметры ==

Версия 13:52, 9 сентября 2014

HiddenList является менеджером поисковых объектов. На сегодня HiddenList не просто управляет объектами на сцене - он отвечает за все штрафы и поощрения. В связке с такими объектами как HiddenHint + Effect HiddenList дает возможность реализовать систему подсказок, а также такие графические эффекты как: "ночь", "трансформация цвета" и т.д. с одним набором графики.

Общие параметры

(см. описание Object)

HOList 1.jpg
  • имя ( nm ) - Имя объекта HiddenObject в дереве проекта. Может быт произвольным.
  • id-объекта - Уникальный номер объекта HiddenObject, который можно увидеть в строке "имя" либо при наведении курсора на неё.
  • синхронизация ( sync ) - Применяется для синхронизации между лейаутами. Если указан параметр "нет", то объект будет активен только на текущем лейауте. По умолчанию указан параметр "да".
  • сохранение параметров ( sv ) - Настройка этого параметра актуальна, если приложение в дальнейшем будет сворачиваться в системную панель («трей»). Выбирается значение этого параметра из выпадающего списка. Возможны следующие варианты: "нет", "только объект", "объект с подобъектами", "только подобъекты". При выходе из трэя будут восстановлены ранее измененные/установленные (при переходе с одного экрана на другой)параметры объектов или подобъектов в зависимости от выбранного варианта для этого параметра. По умолчанию указан параметр "нет". Следует помнить, что если выбирается для объекта некоторой сцены значения этого параметра отличное от "нет", то должно и предусматриваться соответствующее значение этого параметра и для этой сцены, и для экрана, содержащего эту сцену.
  • z ( z ) - Параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим.
  • память ( memo ):
1 - при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана);
0 - обновит свои параметры, при повторном открытии экрана.
  • группа ( gr ) - Группа, в которую входит текущий объект.

У листа также есть группы стандартных параметров такие как положение, размер, модификаторы. Но, по сути, они не важны. Главное, чтобы лист не перекрывал на сцене другие объекты. Поэтому ему лучше находиться за пределами сцены.

Основные параметры

  • Картинка ( 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 ) - для всех аномалий кроме текстовой HiddenObject и игровой фон должны быть подобъектами Effect):
0 - нет;
1 - текстовая;
2 - ночь; В машине которая выставляет эффект ночь, должны передавать сцене с объектом аномалия ( obj="scene"; par="drag"; val="0" ) и ( obj="scene"; st="update");
3 - трансформация цвета;
4 - дым.
  • флурри ( 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 - по окончанию времени игра будет прервана;
0 - по окончанию времени игра продолжится, но переход все равно будет на неудачную ветку.
  • паузы ( 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, и т. д.
0 - не умножать.
  • Количество кликов для штрафа ( wrngC ) — количество неверных кликов, после которых запустится блокатор (см. ниже).
  • Интервал для штрафа ( wrngT ) — время, за которое нужно совершить неверные клики.
  • Штраф (очки) ( 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 ) - Лимит ложных кликов.

Формула расчета проста, количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.

Состояния

Состояния которые есть у листа. Мы можем передавать их с помощью различных объектов:

  • invert - горизонтально отображает изображение;
  • run - переводит хидден с состояние активности, если до этого был на паузе;
  • pause -переводит хидден с состояние паузы, объекты не кликаются!

Примечания

  • HiddenList должен располагаться в дереве проекта ниже всех своих поисковых объектов.
  • Единственный обязательный объект о котором должен знать лист это Table для отображения списка поиска, даже если таблица не будет использоваться быть все равно должна!
  • После завершения хидден-игры (по разбору или по времени)при переходе на другой экран HiddenList записывает данные в опции в два места: первое - это то, которое указано у настрйках (ID пака, ID уровня), для каждой локации свое; а второе - это last_game.

Например,
last_game.time_spent (либо же pck_N.lvl_N.kind_N.time_spent) - время последней игры,
last_game.clicks - количество найденных объектов и т.д.
Все их можно увидеть в опциях. last_game был придуман для того, чтобы было удобно задавать счетчики в окне результатов. Также эти данные могут быть сохранены в опциях, если задать листу состоние wait.

Добавляемые параметры

+.png появляется новый объект: изменить состояние объекта ( actst ):

объект ( obj ) - Объект, состояние которого нужно изменить;
состояние ( st ) - Новое состояние объекта.
HOList 3.jpg

+.png разбор: если был экран ( wscrOk ) - При нахождении всех объектов, переходим на определенный экран, если некоторый экран был уже хотя бы раз посещен:

был экран ( was ) - Экран, который мы проверяем на то, был ли он уже открыт хотя бы один раз;
перейти на ( scr ) - Переходим на этот экран, если экран из предыдущего поля уже открывался.

+.png разбор: изменить состояние объекта ( nstOk ) - При нахождении всех объектов, перевести объект в новое состояние:

объект ( obj ) - Перевести объект в состояние из следующего поля;
состояние ( st ) - Новое состояние для объекта из предыдущего поля.

+.png разбор: изменить параметр объекта ( chgOk ) - При нахождении всех объектов, изменить параметр объекта:

объект ( obj ) - этот объект меняет свой параметр;
свойство ( par ) - Параметр, который мы изменяем;
значение ( val ) - Новое значение параметра.

+.png не успел: если был экран ( wscrOv ) - Если вышло время, а объекты не найдены, переходим на определенный экран, если некоторый экран был уже хотя бы раз посещен:

был экран ( was ) - Экран, который мы проверяем на то, был ли он уже открыт хотя бы один раз;
перейти на ( scr ) - Переходим на этот экран, если экран из предыдущего поля уже открывался.

+.png не успел: изменить состояние объекта ( nstOv ) - Если вышло время, а объекты не найдены, перевести объект в новое состояние:

объект ( obj ) - перевести объект в состояние из следующего поля;
состояние ( st ) - Новое состояние для объекта из предыдущего поля.

+.png не успел: изменить параметр объекта ( chgOv ) - Если вышло время, а объекты не найдены, изменить параметр объекта:

объект ( obj ) - этот объект меняет свой параметр;
свойство ( par )- Параметр, который мы изменяем;
значение ( val ) - Новое значение параметра.

+.png счетчик очков ( scoreCnt ):

счетчик ( cnt ) - Каунтер, которому приходят очки.

+.png группа extra bonus ( extraBonus ). Используется для economics, при находжении объекта с некой вероятностью может выпасть бонус. Объект который анимирует появление бонуса должен иметь состояние show, время на наимацию бонуса - 10 секунд:

монетки объект ( coinsObj ) - объект который анимирует получение монет;
монетки вероятность ( coinsProb ) - вероятность по нахождению объекта получить дополнительно монетки;
опыт объект ( expObj ) - объект который анимирует получение опыта;
опыт вероятность ( expProb ) - вероятность по нахождению объекта получить дополнительно опыт;
энергия объект ( energyObj ) - объект который анимирует получение энергии;
энергия вероятность ( energyProb ) - вероятность по нахождению объекта получить дополнительно энергию.

+.png Объект, который срабатывает, если долго не находить хидден ( notfnd ):

объект ( obj ) - Объект, который переводится в указанное состояние, если долго не находить хидден;
состояние ( st ) - Состояние, в которое переводится объект;
время ( tm ) - Время от последнего нахождения хиддена, после которого срабатывает объект.

+.png параметры аномалии с исчезновением букв ( hlPars ):

оставшиеся буквы ( min ) - Минимальное количество оставшихся букв в предложении;
задержка ( wait ) - Момент времени, начиная с которого аномалия будет проявляться;
задержка 2 ( wait2 ) - Задержка для появившихся слов, изначально недоступных;
время ( time ) - Время, за которое должны исчезнуть все буквы (если -1, то до конца времени в хиддене);
промежутки ( dt ) - промежутки времени между каждой итерацией;
флайер ( fl ) - Флайер, анимирующий исчезающую букву (должен иметь текстовый тип).

+.png параметры аномалии ночь ( nightPars ):

effect ( ef ) - эффект, управляющий трансформацией цвета;
tag ( eftag ) - Тег эффекта, реализующего ночь.

+.png параметры аномалии трансформации цвета ( colInvPars ):

effect ( ef ) - Эффект, управляющий трансформацией цвета;
tags ( eftags ) - Теги эффектов, реализующих трансформацию цвета, из которых будет выбран один.

+.png параметры аномалии дым ( smokePars ):

effect ( ef ) - Машина, управляющая эффектом дыма;
tag ( eftag ) - Тег эффекта, реализующего дым.

Все аномалии кроме текстовой должны быть настроены с помощью объекта Effect

Пример