<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.appsalutecreator.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Astepin</id>
	<title>wiki.appsalutecreator.com - Вклад участника [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.appsalutecreator.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Astepin"/>
	<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Astepin"/>
	<updated>2026-10-17T02:58:57Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9978</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9978"/>
		<updated>2020-10-07T14:04:06Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Шаблон ячейки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
*'''сброс выделения''' - автоматически ли снимать выделения после MouseUp&lt;br /&gt;
*'''очки за незагаданные слова''' - начислять ли очки за незагаданные слова в режиме Разбора&lt;br /&gt;
*'''подсвещать букву''' - подсвещать ли случайную ячейку каждого слова в режиме Разбора&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
*'''автохинт исчезновение''' - после указанного времени скрывается автохинт (мс)&lt;br /&gt;
*'''между выделением букв (autocomplete)''' - с заданной паузой открываются буквы при autocomplete(мс)&lt;br /&gt;
*'''между выделением слов (autocomplete)''' - с заданной паузой открываются слова при autocomplete(мс)&lt;br /&gt;
*'''длительность ожидания выделения''' - длительность ожидания выделения (мс) после которой вызовется обработчик add_wait_over. Функционал отключен при значении -1&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Стрелки=&lt;br /&gt;
Объекты типа машина отображающий стрелку перехода.&lt;br /&gt;
*'''при выборе''' -  машина отображающая стрелку при выборе пользователем&lt;br /&gt;
*'''при хинте побуквенно''' - машина отображающая стрелку при хинте побуквено&lt;br /&gt;
*'''при хинте целиком''' - машина отображающая стрелку при хинте целиком&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
*'''ожидание выделения закончилось''' - изменить состояние объекта когда ожидание выделения завершилось&lt;br /&gt;
*'''повторный выбор слова из словаря''' - изменить состояние объекта когда повторно выбрано слово из словаря&lt;br /&gt;
*'''неправильно найденое слово'''  - изменить состояние объекта когда неправильным путем выбрано правильное слово&lt;br /&gt;
*'''найдено незагаданное слово'''  - изменить состояние объекта когда найдено незагаданное слово из словаря&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
*''hint_letter'' - вызов побуквенного хинта для текущего режима&lt;br /&gt;
*''next_level'' - переход к следующему уровню&lt;br /&gt;
*''game_after_lose'' - доигрывание после проигрыша с добавлением времени&lt;br /&gt;
*''shuffle'' - перемешивание&lt;br /&gt;
*''swap&amp;quot; desc'' - обмен буквами между 2мя ячейками&lt;br /&gt;
*''swap_fly&amp;quot;'' - перелет при обмене буквами между 2мя ячейками&lt;br /&gt;
*''win_1&amp;quot; desc=&amp;quot;поле разобрано в режиме игры 1 (разбор)&lt;br /&gt;
*''refill&amp;quot;'' - перезаполнить поле буквами&lt;br /&gt;
*''highlight_first'' - в этом состоянии все буквы, кроме первых для каждого слова перейдут в состояние remove. Первые буквы каждого слова перейдут в состояние highlight&lt;br /&gt;
*''autocomplete'' - состояние автозаполнения&lt;br /&gt;
*''sel_clr'' - снять выделение&lt;br /&gt;
*''sel_clr_next'' - снять выделение со следующего хода (начать строить новую последовательность)&lt;br /&gt;
*''start_in_place'' - особое состояние старта (буквы не осыпаются сверху, а появляются уже на своих местах)&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки&lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var &amp;quot;cell_size&amp;quot; ваш объект wordsearch, которому и задаются размеры ячейки. &lt;br /&gt;
[[Файл:Wordsearch obj.png]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9977</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9977"/>
		<updated>2020-10-07T13:10:22Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Шаблон ячейки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
*'''сброс выделения''' - автоматически ли снимать выделения после MouseUp&lt;br /&gt;
*'''очки за незагаданные слова''' - начислять ли очки за незагаданные слова в режиме Разбора&lt;br /&gt;
*'''подсвещать букву''' - подсвещать ли случайную ячейку каждого слова в режиме Разбора&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
*'''автохинт исчезновение''' - после указанного времени скрывается автохинт (мс)&lt;br /&gt;
*'''между выделением букв (autocomplete)''' - с заданной паузой открываются буквы при autocomplete(мс)&lt;br /&gt;
*'''между выделением слов (autocomplete)''' - с заданной паузой открываются слова при autocomplete(мс)&lt;br /&gt;
*'''длительность ожидания выделения''' - длительность ожидания выделения (мс) после которой вызовется обработчик add_wait_over. Функционал отключен при значении -1&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Стрелки=&lt;br /&gt;
Объекты типа машина отображающий стрелку перехода.&lt;br /&gt;
*'''при выборе''' -  машина отображающая стрелку при выборе пользователем&lt;br /&gt;
*'''при хинте побуквенно''' - машина отображающая стрелку при хинте побуквено&lt;br /&gt;
*'''при хинте целиком''' - машина отображающая стрелку при хинте целиком&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
*'''ожидание выделения закончилось''' - изменить состояние объекта когда ожидание выделения завершилось&lt;br /&gt;
*'''повторный выбор слова из словаря''' - изменить состояние объекта когда повторно выбрано слово из словаря&lt;br /&gt;
*'''неправильно найденое слово'''  - изменить состояние объекта когда неправильным путем выбрано правильное слово&lt;br /&gt;
*'''найдено незагаданное слово'''  - изменить состояние объекта когда найдено незагаданное слово из словаря&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
*''hint_letter'' - вызов побуквенного хинта для текущего режима&lt;br /&gt;
*''next_level'' - переход к следующему уровню&lt;br /&gt;
*''game_after_lose'' - доигрывание после проигрыша с добавлением времени&lt;br /&gt;
*''shuffle'' - перемешивание&lt;br /&gt;
*''swap&amp;quot; desc'' - обмен буквами между 2мя ячейками&lt;br /&gt;
*''swap_fly&amp;quot;'' - перелет при обмене буквами между 2мя ячейками&lt;br /&gt;
*''win_1&amp;quot; desc=&amp;quot;поле разобрано в режиме игры 1 (разбор)&lt;br /&gt;
*''refill&amp;quot;'' - перезаполнить поле буквами&lt;br /&gt;
*''highlight_first'' - в этом состоянии все буквы, кроме первых для каждого слова перейдут в состояние remove. Первые буквы каждого слова перейдут в состояние highlight&lt;br /&gt;
*''autocomplete'' - состояние автозаполнения&lt;br /&gt;
*''sel_clr'' - снять выделение&lt;br /&gt;
*''sel_clr_next'' - снять выделение со следующего хода (начать строить новую последовательность)&lt;br /&gt;
*''start_in_place'' - особое состояние старта (буквы не осыпаются сверху, а появляются уже на своих местах)&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки&lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var(5) - ваш объект wordsearch, которому и задаются размеры ячейки. &lt;br /&gt;
[[Файл:Wordsearch obj.png]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9976</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9976"/>
		<updated>2020-10-07T13:09:48Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Шаблон ячейки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
*'''сброс выделения''' - автоматически ли снимать выделения после MouseUp&lt;br /&gt;
*'''очки за незагаданные слова''' - начислять ли очки за незагаданные слова в режиме Разбора&lt;br /&gt;
*'''подсвещать букву''' - подсвещать ли случайную ячейку каждого слова в режиме Разбора&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
*'''автохинт исчезновение''' - после указанного времени скрывается автохинт (мс)&lt;br /&gt;
*'''между выделением букв (autocomplete)''' - с заданной паузой открываются буквы при autocomplete(мс)&lt;br /&gt;
*'''между выделением слов (autocomplete)''' - с заданной паузой открываются слова при autocomplete(мс)&lt;br /&gt;
*'''длительность ожидания выделения''' - длительность ожидания выделения (мс) после которой вызовется обработчик add_wait_over. Функционал отключен при значении -1&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Стрелки=&lt;br /&gt;
Объекты типа машина отображающий стрелку перехода.&lt;br /&gt;
*'''при выборе''' -  машина отображающая стрелку при выборе пользователем&lt;br /&gt;
*'''при хинте побуквенно''' - машина отображающая стрелку при хинте побуквено&lt;br /&gt;
*'''при хинте целиком''' - машина отображающая стрелку при хинте целиком&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
*'''ожидание выделения закончилось''' - изменить состояние объекта когда ожидание выделения завершилось&lt;br /&gt;
*'''повторный выбор слова из словаря''' - изменить состояние объекта когда повторно выбрано слово из словаря&lt;br /&gt;
*'''неправильно найденое слово'''  - изменить состояние объекта когда неправильным путем выбрано правильное слово&lt;br /&gt;
*'''найдено незагаданное слово'''  - изменить состояние объекта когда найдено незагаданное слово из словаря&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
*''hint_letter'' - вызов побуквенного хинта для текущего режима&lt;br /&gt;
*''next_level'' - переход к следующему уровню&lt;br /&gt;
*''game_after_lose'' - доигрывание после проигрыша с добавлением времени&lt;br /&gt;
*''shuffle'' - перемешивание&lt;br /&gt;
*''swap&amp;quot; desc'' - обмен буквами между 2мя ячейками&lt;br /&gt;
*''swap_fly&amp;quot;'' - перелет при обмене буквами между 2мя ячейками&lt;br /&gt;
*''win_1&amp;quot; desc=&amp;quot;поле разобрано в режиме игры 1 (разбор)&lt;br /&gt;
*''refill&amp;quot;'' - перезаполнить поле буквами&lt;br /&gt;
*''highlight_first'' - в этом состоянии все буквы, кроме первых для каждого слова перейдут в состояние remove. Первые буквы каждого слова перейдут в состояние highlight&lt;br /&gt;
*''autocomplete'' - состояние автозаполнения&lt;br /&gt;
*''sel_clr'' - снять выделение&lt;br /&gt;
*''sel_clr_next'' - снять выделение со следующего хода (начать строить новую последовательность)&lt;br /&gt;
*''start_in_place'' - особое состояние старта (буквы не осыпаются сверху, а появляются уже на своих местах)&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки&lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var(5) - ваш объект wordsearch, которому и задаются размеры ячейки. [[Файл:Wordsearch obj.png]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Wordsearch_obj.png&amp;diff=9975</id>
		<title>Файл:Wordsearch obj.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Wordsearch_obj.png&amp;diff=9975"/>
		<updated>2020-10-07T13:08:49Z</updated>

		<summary type="html">&lt;p&gt;Astepin: Настройка шаблона&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Настройка шаблона&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9974</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9974"/>
		<updated>2020-10-07T13:05:29Z</updated>

		<summary type="html">&lt;p&gt;Astepin: Актуализация параметров и состояний&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
*'''сброс выделения''' - автоматически ли снимать выделения после MouseUp&lt;br /&gt;
*'''очки за незагаданные слова''' - начислять ли очки за незагаданные слова в режиме Разбора&lt;br /&gt;
*'''подсвещать букву''' - подсвещать ли случайную ячейку каждого слова в режиме Разбора&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
*'''автохинт исчезновение''' - после указанного времени скрывается автохинт (мс)&lt;br /&gt;
*'''между выделением букв (autocomplete)''' - с заданной паузой открываются буквы при autocomplete(мс)&lt;br /&gt;
*'''между выделением слов (autocomplete)''' - с заданной паузой открываются слова при autocomplete(мс)&lt;br /&gt;
*'''длительность ожидания выделения''' - длительность ожидания выделения (мс) после которой вызовется обработчик add_wait_over. Функционал отключен при значении -1&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Стрелки=&lt;br /&gt;
Объекты типа машина отображающий стрелку перехода.&lt;br /&gt;
*'''при выборе''' -  машина отображающая стрелку при выборе пользователем&lt;br /&gt;
*'''при хинте побуквенно''' - машина отображающая стрелку при хинте побуквено&lt;br /&gt;
*'''при хинте целиком''' - машина отображающая стрелку при хинте целиком&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
*'''ожидание выделения закончилось''' - изменить состояние объекта когда ожидание выделения завершилось&lt;br /&gt;
*'''повторный выбор слова из словаря''' - изменить состояние объекта когда повторно выбрано слово из словаря&lt;br /&gt;
*'''неправильно найденое слово'''  - изменить состояние объекта когда неправильным путем выбрано правильное слово&lt;br /&gt;
*'''найдено незагаданное слово'''  - изменить состояние объекта когда найдено незагаданное слово из словаря&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
*''hint_letter'' - вызов побуквенного хинта для текущего режима&lt;br /&gt;
*''next_level'' - переход к следующему уровню&lt;br /&gt;
*''game_after_lose'' - доигрывание после проигрыша с добавлением времени&lt;br /&gt;
*''shuffle'' - перемешивание&lt;br /&gt;
*''swap&amp;quot; desc'' - обмен буквами между 2мя ячейками&lt;br /&gt;
*''swap_fly&amp;quot;'' - перелет при обмене буквами между 2мя ячейками&lt;br /&gt;
*''win_1&amp;quot; desc=&amp;quot;поле разобрано в режиме игры 1 (разбор)&lt;br /&gt;
*''refill&amp;quot;'' - перезаполнить поле буквами&lt;br /&gt;
*''highlight_first'' - в этом состоянии все буквы, кроме первых для каждого слова перейдут в состояние remove. Первые буквы каждого слова перейдут в состояние highlight&lt;br /&gt;
*''autocomplete'' - состояние автозаполнения&lt;br /&gt;
*''sel_clr'' - снять выделение&lt;br /&gt;
*''sel_clr_next'' - снять выделение со следующего хода (начать строить новую последовательность)&lt;br /&gt;
*''start_in_place'' - особое состояние старта (буквы не осыпаются сверху, а появляются уже на своих местах)&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки&lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var(5) - объект wordsearch, которому и задаются размеры ячейки.&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9973</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9973"/>
		<updated>2020-10-07T12:33:44Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Времена */  актуализация&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
*'''сброс выделения''' - автоматически ли снимать выделения после MouseUp&lt;br /&gt;
*'''очки за незагаданные слова''' - начислять ли очки за незагаданные слова в режиме Разбора&lt;br /&gt;
*'''подсвещать букву''' - подсвещать ли случайную ячейку каждого слова в режиме Разбора&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
*'''автохинт исчезновение''' - после указанного времени скрывается автохинт (мс)&lt;br /&gt;
*'''между выделением букв (autocomplete)''' - с заданной паузой открываются буквы при autocomplete(мс)&lt;br /&gt;
*'''между выделением слов (autocomplete)''' - с заданной паузой открываются слова при autocomplete(мс)&lt;br /&gt;
*'''длительность ожидания выделения''' - длительность ожидания выделения (мс) после которой вызовется обработчик add_wait_over. Функционал отключен при значении -1&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки &lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var(5) - объект wordsearch, которому и задаются размеры ячейки.&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9972</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9972"/>
		<updated>2020-10-07T11:47:53Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Правила игры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
*'''сброс выделения''' - автоматически ли снимать выделения после MouseUp&lt;br /&gt;
*'''очки за незагаданные слова''' - начислять ли очки за незагаданные слова в режиме Разбора&lt;br /&gt;
*'''подсвещать букву''' - подсвещать ли случайную ячейку каждого слова в режиме Разбора&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки &lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var(5) - объект wordsearch, которому и задаются размеры ячейки.&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9971</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9971"/>
		<updated>2020-10-07T10:59:21Z</updated>

		<summary type="html">&lt;p&gt;Astepin: уточнение (актуализация ) и исправление орфографических ошибок&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки &lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var(5) - объект wordsearch, которому и задаются размеры ячейки.&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9970</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9970"/>
		<updated>2020-10-07T10:56:27Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Добавляемые свойства */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим с досыпанием.&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки &lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var(5) - объект wordsearch, которому и задаются размеры ячейки.&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9969</id>
		<title>Wordsearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Wordsearch&amp;diff=9969"/>
		<updated>2020-10-07T10:55:32Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Шаблон ячейки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим с досыпанием.&lt;br /&gt;
&lt;br /&gt;
=Словарь=&lt;br /&gt;
*'''Ссылка на словарь''' - ссылка на файл словаря. Словарь должен быть в формате json.&lt;br /&gt;
*'''Язык''' - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.&lt;br /&gt;
&lt;br /&gt;
''Пример словаря:''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[[&amp;quot;АГА&amp;quot;, &amp;quot;АКР&amp;quot;, &amp;quot;АКТ&amp;quot;, &amp;quot;АРТ&amp;quot;], [&amp;quot;АВВА&amp;quot;, &amp;quot;АВТО&amp;quot;, &amp;quot;АЖУР&amp;quot;, &amp;quot;АЗОТ&amp;quot;, &amp;quot;АИСТ&amp;quot;], [&amp;quot;АББАТ&amp;quot;, &amp;quot;АБВЕР&amp;quot;, &amp;quot;АБЗАЦ&amp;quot;, &amp;quot;АБОРТ&amp;quot;, &amp;quot;АБРЕК&amp;quot;, &amp;quot;АБРИС&amp;quot;]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Уровни=&lt;br /&gt;
*'''Ссылка на файл уровней''' - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.&amp;lt;br&amp;gt;&lt;br /&gt;
Файлы уровней удобней править в специальной утилите.&lt;br /&gt;
*'''Номер''' - номер уровня. Передается параметром перед инициализацией.&lt;br /&gt;
&lt;br /&gt;
=Настройка игровой сетки=&lt;br /&gt;
*'''строк''' - количество строк игрового поля&lt;br /&gt;
*'''столбцов''' - количество столбцов игрового поля&lt;br /&gt;
*'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная&lt;br /&gt;
*'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму&lt;br /&gt;
*'''видимость сетки''' - показывать или нет сетку поля (рамочку)&lt;br /&gt;
*'''цвет''' - цвет этой сетки&lt;br /&gt;
&lt;br /&gt;
=Ячейка сетки=&lt;br /&gt;
*'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится&lt;br /&gt;
*'''отступ между ячейками''' - отступ между ячейками&lt;br /&gt;
*'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1&lt;br /&gt;
*'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
**'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы&lt;br /&gt;
**'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы&lt;br /&gt;
*'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация&lt;br /&gt;
*'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз &lt;br /&gt;
*'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]]&lt;br /&gt;
*'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом&lt;br /&gt;
&lt;br /&gt;
=Настройки сложности=&lt;br /&gt;
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%&lt;br /&gt;
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)&lt;br /&gt;
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле&lt;br /&gt;
&lt;br /&gt;
=Таблица и хинты=&lt;br /&gt;
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова&lt;br /&gt;
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока&lt;br /&gt;
*'''использование таблицы''' - настройки отображения слов. Такие режимы: &lt;br /&gt;
**Не показывать слова - слова не будут отображаться в таблице&lt;br /&gt;
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются&lt;br /&gt;
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются&lt;br /&gt;
*'''графика отметки''' - отмечает графикой найденное слово в таблице&lt;br /&gt;
&lt;br /&gt;
=Правила игры=&lt;br /&gt;
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор&lt;br /&gt;
*'''диагональные соединения''' - возможность выделять ячейки по диагонали&lt;br /&gt;
*'''несмежные соединения''' - возможность выделять несмежные ячейки&lt;br /&gt;
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)&lt;br /&gt;
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова&lt;br /&gt;
*'''автоудаление''' - автоматически удалять слово при нахождении.&lt;br /&gt;
&lt;br /&gt;
=Времена=&lt;br /&gt;
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать&lt;br /&gt;
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова&lt;br /&gt;
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки&lt;br /&gt;
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')&lt;br /&gt;
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''&lt;br /&gt;
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени&lt;br /&gt;
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''&lt;br /&gt;
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.&lt;br /&gt;
&lt;br /&gt;
=Перемешивание=&lt;br /&gt;
Настройки перемешивания ячеек&lt;br /&gt;
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].&lt;br /&gt;
{| class=&amp;quot;article-table mw-collapsible mw-collapsed&amp;quot; &amp;quot;&lt;br /&gt;
 !Изинги&lt;br /&gt;
|-&lt;br /&gt;
| 1 || QUAD_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 2 || QUAD_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 3 || QUAD_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 4 || BACK_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 5 || BACK_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BACK_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 7 || SINE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SINE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SINE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 10 || CUBIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 11 || CUBIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || CUBIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 13 || QUART_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 14 || QUART_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 15 || QUART_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 16 || QUINT_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 17 || QUINT_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 18 || QUINT_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EXPO_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EXPO_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EXPO_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 22 || ELASTIC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 23 || ELASTIC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 24 || ELASTIC_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 25 || BOUNCE_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 26 || BOUNCE_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 27 || BOUNCE_INOUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 28 || CIRC_IN_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 29 || CIRC_OUT_EASING&lt;br /&gt;
|-&lt;br /&gt;
| 30 || CIRC_INOUT_EASING&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*'''deltha''' - разброс по времени между стартом перемещения ячеек&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
Для различных игровых действий можно вставлять звуки. Список доступных действий:&lt;br /&gt;
*'''выбор ячейки''' &lt;br /&gt;
*'''неверный выбор слова'''&lt;br /&gt;
*'''найдено слово'''&lt;br /&gt;
*'''хинт'''&lt;br /&gt;
*'''перемешивание'''&lt;br /&gt;
*'''swap'''&lt;br /&gt;
&lt;br /&gt;
=Шрифты=&lt;br /&gt;
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.&lt;br /&gt;
&lt;br /&gt;
=Очки=&lt;br /&gt;
*'''очки''' - ссылка на счетчик, который отображает набранные очки&lt;br /&gt;
*'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих&lt;br /&gt;
*'''очков за букву''' - количество очков за одну букву&lt;br /&gt;
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.&lt;br /&gt;
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.&lt;br /&gt;
&lt;br /&gt;
=Другие параметры=&lt;br /&gt;
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени&lt;br /&gt;
*'''счетчик залоченных''' - ссылка на счетчик, который отображает текущее количество залоченных ячеек&lt;br /&gt;
*'''счетчик очков за слово''' - ссылка на счетчик, который отображает количество очков за последнее найденное слово&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
Тут в основном находятся обработчики различных игровых событий&lt;br /&gt;
*'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось &lt;br /&gt;
*'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены&lt;br /&gt;
*'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'&lt;br /&gt;
*'''на поле не осталось залоченных ячеек''' - все залоченные ячейки разлочены&lt;br /&gt;
*'''на поле не осталось опадающих предметов''' - в случае если на поле кроме букв есть еще другие предметы (в рамках механики &amp;quot;опусти предмет вниз&amp;quot;), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля &lt;br /&gt;
*'''найдено слово''' - сработает, когда правильно нашли слово&lt;br /&gt;
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик.&lt;br /&gt;
*'''ячейка разлочена''' - реакция на разлочку ячейки&lt;br /&gt;
*'''падающий предмет достиг нижней строки''' - один из предметов опцстился вниз&lt;br /&gt;
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле&lt;br /&gt;
=Состояния=&lt;br /&gt;
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит&lt;br /&gt;
*''start'' - отрисовка поля, старт таймера&lt;br /&gt;
*''game'' - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния ''hint''&lt;br /&gt;
*''pause'' - поле прячется, таймер становится на паузу&lt;br /&gt;
*''resume'' - поле появляется, таймер продолжает время&lt;br /&gt;
*''shuffle'' - перемешивания букв на поле&lt;br /&gt;
*''swap'' - перестановка двух букв местами&lt;br /&gt;
*''game_after_lose'' - доигрывание с добавлением N секунд, где N параметр из вкладки Времена&lt;br /&gt;
*''next_level'' - запуск следующего уровня&lt;br /&gt;
*''hint'' - подсветка правильного слова на поле&lt;br /&gt;
&lt;br /&gt;
=Шаблон ячейки=&lt;br /&gt;
Отдельного описания заслуживает шаблон ячейки.&lt;br /&gt;
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.&lt;br /&gt;
Состояния, которые обязательно должны быть в шаблоне ячейки:&lt;br /&gt;
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.&lt;br /&gt;
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.&lt;br /&gt;
Параметры:&lt;br /&gt;
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах &amp;quot;графика ячейки&amp;quot;.&lt;br /&gt;
**''char'' - буква, которую положим в текстовый объект&lt;br /&gt;
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет&lt;br /&gt;
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет&lt;br /&gt;
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки&lt;br /&gt;
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.&lt;br /&gt;
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.&lt;br /&gt;
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.&lt;br /&gt;
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4&lt;br /&gt;
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''&lt;br /&gt;
*''swap'' - ячейка в состоянии свапа.&lt;br /&gt;
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''&lt;br /&gt;
*''destroy'' - в этом состоянии у ячейки &lt;br /&gt;
&lt;br /&gt;
Шаблон ячейки должен содержать минимум такие объекты как:&lt;br /&gt;
# картинка или машинка для отображения подложки ячейки&lt;br /&gt;
# текстовый объект для отображения буквы&lt;br /&gt;
# счетчик для отображения веса буквы&lt;br /&gt;
# картинка или машинка для отображения предмета, который нужно переместить вниз&lt;br /&gt;
&lt;br /&gt;
Пример машинки шаблона [[Файл:Item cell words.zip]]&lt;br /&gt;
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var(5) - объект wordsearch, которому и задаются размеры ячейки.&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Collapse&amp;diff=9968</id>
		<title>Collapse</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Collapse&amp;diff=9968"/>
		<updated>2020-10-05T07:39:58Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Создание простейшего коллапса (классика) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Object|Объект]] «Collapse» дает возможность организовать ряд игр, основанных на 3х &amp;quot;модах&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Все эти механики являются играми на поле, основой,  которого является регулярная решетка. Игра происходит при помощи фишек, расположенных в ячейках поля.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Файл:27-12-2013 14-15-18.png|150px|thumb|right]]&lt;br /&gt;
[[Файл:27-12-2013 16-18-35.png|250px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Свойства=&lt;br /&gt;
'''Общие параметры'''&lt;br /&gt;
*'''Слушатель''' - Объект типа matchbattle.&lt;br /&gt;
*'''Время партии''' - Время игры. По окончанию которого будет засчитано поражение.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Перегруженные правила=&lt;br /&gt;
*'''Типов фишек''' - Число разновидностей типов фишек.&lt;br /&gt;
*'''Номер в фишках'''(''numTokenNums'') - Число номеров в фишках которые (для текущего уровня). Включая статические.&lt;br /&gt;
*'''макс. номеров в фишках'''(''numTokenNumsMax'') - Максимальное число номеров в фишках. Включая статические.&lt;br /&gt;
*'''Номер бомбы''' - Номер фишки, который соответствует бомбе. Не будет генерироваться сам по себе.&lt;br /&gt;
*'''Номер крестобомбы''' - Номер фишки, который соответствует крестобомбе, не будет генерироваться сам по себе.&lt;br /&gt;
*'''Статический номер''' - Номер фишки, которую нельзя добавить к пометке. Используется, например, для игры, в которой необходимо спустить статические объекты вниз, очистив при этом поле.&lt;br /&gt;
*'''Типов узлов''' - Число разновидностей типов нормальных узлов графа.&lt;br /&gt;
*'''Условия пометки''' - Условия для вхождения фишек в пометку. 0 - любые фишки, 1 - должен совпадать номер, 2 - должен совпадать цвет, 3 - должен совпадать номер и цвет фишек.&lt;br /&gt;
*'''Монотонность''' - Должны ли номера в первой пометке быть монотонной последовательностью.&lt;br /&gt;
*'''Мин.пометка''' - Минимальное число фишек помечаемых в первой пометке.&lt;br /&gt;
*'''Макс.пометка''' - Максимальное число фишек помечаемых в первой пометке.&lt;br /&gt;
*'''Время пометки''' - Пометка завершается спустя заданное в этом поле время.&lt;br /&gt;
*'''Переставлять''' - Фишки первой пометки переставляются.&lt;br /&gt;
*'''Уменьшать''' - Фишки первой пометки уменьшают свой номер.&lt;br /&gt;
*'''Удалять''' - Удалять ячейки первой пометки.&lt;br /&gt;
*'''Условие удаления''' - Условия для удаления фишек: 0 - не удалять, 1 - должен совпадать тип, 2 - должен совпадать номер, 3 - должен совпадать тип ИЛИ номер, 4 - должен совпадать тип И номер.&lt;br /&gt;
*'''Тип удаления''' - Тип удаления. 0 - заливка, 1 - вертикальные и горизонтальные линии, 2 - только сама пометка.&lt;br /&gt;
*'''Мин.удаление''' - Минимальное число фишек, которое можно удалить.&lt;br /&gt;
*'''Генерация без мачей''' - При генерации поля избегать готовых совпадений.&lt;br /&gt;
*'''Проверка после осыпания''' - После осыпания фишек ещё раз перепроверить возможные комбинации ходов.&lt;br /&gt;
*'''Добавление'''(''needBirth'') - Нужно ли добавлять фишки на поле. Или игра на разбор; Можно перегрузить настройками уровня (результирующее значение будет в парамметре &amp;quot;needBirthLevel&amp;quot;);&lt;br /&gt;
*'''Схлопывание'''(''needCollapse'') - Нужно ли схлопывание (Ликвидация пустых столбцов);Можно перегрузить настройками уровня;&lt;br /&gt;
*'''Менять тип узла''' - Увеличить ли тип нормальной ячейки, если над ней произошла трансформация фишек.&lt;br /&gt;
*'''Поддерживать число ходов''' - При осыпании фишек проверить поле на то, чтоб обязательно был возможный ход.&lt;br /&gt;
*'''Тащить фишку''' - Тащить первую фишку пометки за пальцем.&lt;br /&gt;
*'''Завершать пометку''' - Не ждать отпускания пальца для завершения пометки - актуально в тех случаях, когда в ней всегда одинаковое число фишек.&lt;br /&gt;
*'''Перемешивать при 0 ходов''' - если нет больше ходов на поле, да - поле перемешивать, нет - проигрыш.&lt;br /&gt;
&lt;br /&gt;
=Перегруженные цели=&lt;br /&gt;
*'''Очистить поле''' - Уничтожить соотв. % фишек. Не стоит комбинировать с досыпанием.&lt;br /&gt;
*'''Перекрасить поле''' - Перекрасить все ячейки поля в базовый тип.&lt;br /&gt;
*'''Уронить статические''' - Уронить все статические фишки на дно поля.&lt;br /&gt;
*'''Уничтожить фишек''' - Уничтожить фишек, количество через запятую.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Внешний вид=&lt;br /&gt;
*'''Картинка''' - Графический ресурс картинки пазла.&lt;br /&gt;
*'''Фишки''' - Не рекомендуется использовать. Заменено на добавляемые параметр, см.ниже.&lt;br /&gt;
*'''Ячейки''' - Графический ресурс ячейки.&lt;br /&gt;
*'''Курсор''' - Курсор для выделения фишек.&lt;br /&gt;
*'''Колонок''' - Число колонок на которые разбивается пазл.&lt;br /&gt;
*'''Строк''' - Число строк на которые разбивается пазл.&lt;br /&gt;
*'''Авторазмер''' - Если 1, то для расчета размера ячеек используется картинка. 0 - размер ячейки = размер паззла / число ячеек&lt;br /&gt;
*'''Сетка?''' - Если 1, то будет показана сетка при разрезке картинки на блоки. При 0 - сетки не будет.&lt;br /&gt;
*'''Счетчик статических''' - Счетчик статических. Объект типа каунтер.&lt;br /&gt;
*'''Прогресс статических''' - Прогресс-бар статических. Объект типа progress.&lt;br /&gt;
*'''стиль'''(''style'') - стиль фишек (перегрузка арта фишек; артом из файла уровня); Стиль указанный в настройках уровня перебьёт стиль объекта; Получается вот такой приоритет (Арт из объекта -&amp;gt; Стиль указанный в объекте -&amp;gt; Стиль указанный в уровне);&lt;br /&gt;
*'''анимация рождения'''(''dropBorn'') - тип рождения фишек объектом (скалирование/падение сверху), может быть перегруженно файлом уровня;&lt;br /&gt;
*'''бомбы''' - Прогресс-бар статических. Объект типа progress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Времена этапов=&lt;br /&gt;
*'''невидимости''' - Начальная пауза перед откртыием пазлы.&lt;br /&gt;
*'''открытия''' - Время открытия исходной картинки (проявляется по alpha).&lt;br /&gt;
*'''показа''' - Время показа исходной картинки (после проявления).&lt;br /&gt;
*'''перемешивания''' - Время визуализации процесса перемешивания ячеек.&lt;br /&gt;
*'''финала''' - Время финального показа пазлы после её разбора, перед переходом к закрытию.&lt;br /&gt;
*'''закрытия''' - Время закрытия пазлы (в состояниия close, исчезает по alpha).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Времена игры=&lt;br /&gt;
*'''перестановки''' - Время перестановки двух ячеек местами при их выборе.&lt;br /&gt;
*'''движения''' - Время движения фишек от одного узла к соседнему.&lt;br /&gt;
*'''движения верх''' - Время движения фишек от одного узла к соседнему при отскоке.&lt;br /&gt;
*'''отскока''' - Время движения фишек вверх при отскоке. Т.о. при дефолтных значениях фишка отскакивает на 200 / 600 треть высоты фишки&amp;quot;&lt;br /&gt;
*'''рождения и удаления''' - Время рождения и удаления фишки.&lt;br /&gt;
*'''поворота''' - Время поворота ячейки при повторном клике на нее.&lt;br /&gt;
*'''паузы''' - Время паузы перед началом перестановки или поворота.&lt;br /&gt;
*'''подсказки1''' - Время за которое проявляется исходная картинка в состоянии hint.&lt;br /&gt;
*'''подсказки2''' - Время в течении которого показывается после проявления исходная картинка в состоянии hint.&lt;br /&gt;
*'''подсказки3''' - Время в течении которого закрывается после показа исходная картинка в состоянии hint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Хинт при бездействии=&lt;br /&gt;
*'''время задержки''' - Время бездействия, после которого следует показывать хинт.&lt;br /&gt;
*'''машина''' - Объект, который будет установлен между двумя фишками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Генерация поля=&lt;br /&gt;
*'''min размер кластера''' - min размер кластера из фишек одного типа&lt;br /&gt;
*'''max размер кластера''' - max размер кластера из фишек одного типа&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Звуки=&lt;br /&gt;
*'''нажатие на фишку''' - Звук нажатия на фишку.&lt;br /&gt;
*'''добавление фишки в выделение''' - Звук при выделении фишки (режим dots); звук воспроизводится с 2-й фишки.&lt;br /&gt;
*'''перемещение фишки''' - Звук перемещения фищки.&lt;br /&gt;
*'''возврат фишки''' - Звук возврата фищки при неудачном перемещении.&lt;br /&gt;
*'''падение фишки''' - Звук для падения фишки.&lt;br /&gt;
*'''применение крестовой бомбы'''(''sndcross'') - звук при применении крестовой бомбы;&lt;br /&gt;
*'''применение горизонтальной бомбы'''(''sndhor'') - звук при применении горизонтальной бомбы;&lt;br /&gt;
*'''применение вертикальной бомбы'''(''sndver'') - звук при применении вертикальной бомбы.&lt;br /&gt;
&lt;br /&gt;
=Специальные типы фишек=&lt;br /&gt;
*'''nt_lock''' - графический ресурс фона при работающем &amp;quot;замке&amp;quot;;&lt;br /&gt;
*'''nt_lock_''' - графический ресурс поверх графики фишки при работающем &amp;quot;замке&amp;quot; (последовательность клипов через &amp;quot;,&amp;quot;; первый клип д.б. задан, но он не используется; далее клипы по возрастанию жизни);&lt;br /&gt;
&lt;br /&gt;
=Добавляемые свойства=&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Изменить состояние / параметр объекта - выигрыш===&lt;br /&gt;
- изменить состояние / параметр объекта в случае выигрыша.&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Изменить состояние / параметр объекта - проигрыш===&lt;br /&gt;
- изменить состояние / параметр объекта в случае проигрыша&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Изменить состояние объекта - клик на одиночную===&lt;br /&gt;
- изменить состояние объекта в случае клика на одиночную ячейку: открывает машину в которой необходимо объекту &amp;quot;Коллапс&amp;quot; установить состояние &amp;quot;del_last&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Изменить состояние объекта - запланирована новая линия в аркаде===&lt;br /&gt;
- изменить состояние объекта при старте отсчёта времени для генерации следующей линии в режиме Аркада (в объект пишется перечень фишек(nextLine), которые будут добавлены и время до их добавления (currentDt))&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Звук фишки===&lt;br /&gt;
- Удаление, появление.&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Уровень сложности===&lt;br /&gt;
- Номеров в фишках, Мин.размер кластера и Макс.размер кластера.&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Графика фишки===&lt;br /&gt;
- Обычная: графический ресурс перетаскивается из редактора ресурсов.&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Эффект===&lt;br /&gt;
- Объект, который будет вызываться при взрыве фишек. Должен иметь состояние beg.&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Эффект бомбы===&lt;br /&gt;
- Объект, который при взрыве фишек посредством бонуса бомба(цветная или обычная) будет склонирован и будет передано состояние &amp;quot;beg&amp;quot;.&lt;br /&gt;
Данному объекту будет записано параметры:&lt;br /&gt;
*'''effectOriginX,effectOriginY''' - координаты бонуса, который вызвал схлопывание(в координатах объекта); Эффект самой бомбы (которая взорвалась) получает координаты (0;0);&lt;br /&gt;
*'''additionalNum''' - номер фишки; (для удобства, бонусы смещены до 100 номера(первый бонус иммет номер 100(первая цветная бомба)));&lt;br /&gt;
П.С. данный эффект генерируется только при взрыве бомбы из поля (бонусы запущенные через matchbattle - не создают эффект);&lt;br /&gt;
&lt;br /&gt;
===[[Файл:+.png]] Эффект крестобомбы===&lt;br /&gt;
- Эффект, который будет использоваться при взрыве крестобомбы. Должен иметь состояние beg.&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*'''beg''' -                 пауза перед open&lt;br /&gt;
*'''open''' -                 появляется по alpha-каналу&lt;br /&gt;
*'''start''' -               запустить новую игру (объект применяет все данные из лейаута + из файла уровней);&lt;br /&gt;
*'''pause''' -            поставить объект на паузу (&amp;quot;заморозить объект&amp;quot;);&lt;br /&gt;
*'''resume''' -            снять объект с паузы (&amp;quot;разморозить объект&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
*'''sel1''' -             ждем окончания первой пометки&lt;br /&gt;
*'''sel1_end''' -            показываем окончание первой пометки&lt;br /&gt;
*'''sel1_transf1''' -        первая трансформация первой пометки&lt;br /&gt;
*'''sel1_transf2''' -       вторая трансформация первой пометки&lt;br /&gt;
*'''sel2''' -                ждем окончания второй пометки&lt;br /&gt;
*'''sel2_end''' -            показываем окончание второй пометки&lt;br /&gt;
*'''sel2_trands1''' -        первая трансформация второй пометки&lt;br /&gt;
*'''sel2_trands2''' -        вторая трансформация второй пометки&lt;br /&gt;
&lt;br /&gt;
*'''born''' -               рождение фишек&lt;br /&gt;
*'''move''' -               перемещаем фишки      &lt;br /&gt;
*'''aftermatch''' -          проверяем, не случилось ли чего-то после движения/добавления фишек&lt;br /&gt;
*'''close''' -               исчезает по alpha-каналу&lt;br /&gt;
*'''end''' -                 недоступна, невидима&lt;br /&gt;
*'''rotate_left''' -         повернуть влево на 90 градусов&lt;br /&gt;
*'''rotate_right''' -       повернуть вправо на 90 градусов&lt;br /&gt;
*'''undo''' -                отменить один ход&lt;br /&gt;
*'''remove_color''' &lt;br /&gt;
*'''remove_single''' &lt;br /&gt;
*'''shuffle_cols''' &lt;br /&gt;
*'''remove_last''' -         удалить последнюю кликнутую ячейку (покупное удаление одиночных)&lt;br /&gt;
&lt;br /&gt;
=Нумерация фишек объектом=&lt;br /&gt;
Фишки которые использует объект, нумеруются от 0 до N. Данная нумерация зависит от количества цветов. Последовательность выглядит как:&lt;br /&gt;
*'''0''' - обычная цветная фишка (рандомного цвета - при запуске игры изменится на цветную фишку в диапазоне [1,numTokenNums])&lt;br /&gt;
*'''[1;n]''' - цветные фишки (n==numTokenNumsMax, максимальное количество цветов);&lt;br /&gt;
*'''[n+1;n+n]''' - цветные бомбы;&lt;br /&gt;
*'''n+n+1''' - обычная бомба;&lt;br /&gt;
*'''n+n+2''' - горизонтальная бомба;&lt;br /&gt;
*'''n+n+3''' - вертикальная бомба;&lt;br /&gt;
*'''n+n+4''' - крестовая бомба;&lt;br /&gt;
*'''n+n+5''' - ячейка-Хамелеон;&lt;br /&gt;
&lt;br /&gt;
=Вычитаемые параметры= &lt;br /&gt;
*'''tokenStyle''' - перечень основных клипов для фишек (&amp;quot;,&amp;quot; -разделитель;клипы фишек &amp;quot;norm&amp;quot;);&lt;br /&gt;
*'''bombClips''' - перечень клипов бонусов (по порядку &amp;quot;нумерации фишек&amp;quot;; первый клип - первая цветная бомба); &lt;br /&gt;
*'''nextLine''' - перечень номеров фишек следующего ряда для режима Аркада (&amp;quot;,&amp;quot; - разделитель; все номера бонусов смещены и начинаются с 100 (для удобства чтения); т.е. первая цветная бомба имеет номер 100, дальше по порядку);&lt;br /&gt;
*'''currentDt''' - время между генерациями следующего ряда(режим Аркада);&lt;br /&gt;
*'''chameleonColors''' - номера цветных фишек, используемых для ячейки-Хамелеон;&lt;br /&gt;
*'''level_cols''' - количество строчек поля текущего уровня;&lt;br /&gt;
*'''level_rows''' - количество колонок поля текущего уровня;&lt;br /&gt;
*'''lastMouseDnX,lastMouseDnY''' - координаты X,Y последнего нажатия мыши в координатах родительского объекта;&lt;br /&gt;
*'''goal_any''' - текущее значение цели - выбить N фишек;&lt;br /&gt;
*'''goal_lines''' - текущее значение цели - выжить N генераций линий(Аркада);&lt;br /&gt;
*'''goal_locks''' - текущее значение цели - убрать N замков;&lt;br /&gt;
*'''goal_num_%N%''' -  текущее значение цели - выбить m фишек N-го цвета (%N% - номер цвета фишки (нумерация с 0));&lt;br /&gt;
*'''randomSize''' - размер &amp;quot;мешка&amp;quot; со случайными числами для досыпаний фишек. По умолчанию равен 100* на кол-во цветов фишек. Мешок генерируется в формате 0,1,2,0,1,2,0,1,2... затем перемешивается. Кастомный размер мешка не должен быть меньше, чем кол-во цветов фишек.&lt;br /&gt;
*'''randomShuffles''' - число перемешиваний &amp;quot;мешка&amp;quot; для досыпаний. По умолчанию число перемешиваний равно размеру &amp;quot;мешка&amp;quot; (т.е. проходимся по каждой фишке и меняем ее с рандомной). Если кол-во перемешиваний меньше размера мешка, то игра усложнится (подсыпания приблизятся к последовательности 0,1,2,0,1,2... и будет сложнее матчить. Если кол-во перемешиваний = размеру мешка, то получаем полное перемешивание, т.е. абсолютно рандомную последовательность фишек. Ставить кол-во перемешиваний больше размера мешка нет смысла.&lt;br /&gt;
&lt;br /&gt;
=Файл уровней=&lt;br /&gt;
Объект умеет загружать настройки из файла уровней, для этих целей у объекта должны быть заданы:&lt;br /&gt;
*'''файл уровня'''(levelFile) - путь к xml файлу уровней;&lt;br /&gt;
*'''номер уровня'''(levelNum) - id уровня из файла уровней;&lt;br /&gt;
&lt;br /&gt;
На текущий момент объект вычитывает уровень из файла только при старте, т.е. чтобы сменить уровень нужно или сменить экран или проинитить сцену с коллапсом.&lt;br /&gt;
&lt;br /&gt;
==Структура файла==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;levels&amp;gt;&lt;br /&gt;
      &amp;lt;!-- style --&amp;gt;&lt;br /&gt;
      &amp;lt;style id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;tokens norm=&amp;quot;355&amp;quot;/&amp;gt;&lt;br /&gt;
           &amp;lt;tokens norm=&amp;quot;356&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/style&amp;gt;&lt;br /&gt;
      &amp;lt;!-- levels --&amp;gt;&lt;br /&gt;
      &amp;lt;level id=&amp;quot;1&amp;quot; rows=&amp;quot;2&amp;quot; cols=&amp;quot;2&amp;quot; numTokenNums=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
           &amp;lt;field&amp;gt;&lt;br /&gt;
                0,0,&lt;br /&gt;
                0,0&lt;br /&gt;
           &amp;lt;/field&amp;gt;&lt;br /&gt;
      &amp;lt;/level&amp;gt;&lt;br /&gt;
      &amp;lt;level id=&amp;quot;2&amp;quot; rows=&amp;quot;2&amp;quot; cols=&amp;quot;2&amp;quot; numTokenNums=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
           &amp;lt;field&amp;gt;&lt;br /&gt;
                0,0,&lt;br /&gt;
                0,0&lt;br /&gt;
           &amp;lt;/field&amp;gt;&lt;br /&gt;
      &amp;lt;/level&amp;gt;&lt;br /&gt;
 &amp;lt;/levels&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Где &amp;lt;style&amp;gt; - стиль в котором перечисляем настройки фишек (resID);&lt;br /&gt;
     &amp;lt;level&amp;gt; - один игровой уровень&lt;br /&gt;
         &amp;lt;field&amp;gt; - стартовая настройка поля&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Поле==&lt;br /&gt;
Поле указывается в файле уровня: &lt;br /&gt;
 &amp;lt;level&amp;gt;&amp;lt;field&amp;gt;NTKXY,NTKXY,NTKXY,NTKXY&amp;lt;/field&amp;gt;&amp;lt;/level&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Поле объекта - это строка которая имеет разделитель фишек &amp;quot;,&amp;quot;(пробелы,табуляции и символы переноса игнорируются).&lt;br /&gt;
Код каждой фишки может состоять от 1-го до 5-ти символов (&amp;quot;NTKXY&amp;quot;). &lt;br /&gt;
Т.е. объект воспринимает поле как последовательность &amp;quot;NTKXY,NTKXY,NTKXY,NTKXY&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Значение символов:&lt;br /&gt;
*'''N''' - индекс фишки объекта ( стартует с &amp;quot;0&amp;quot;);&lt;br /&gt;
**'''0''' - рандомная цветная фишка (цвет получится в диапазоне [1;numTokenNums]);&lt;br /&gt;
**'''[1;m]''' - цветная фишка;&lt;br /&gt;
**'''*''' - &amp;quot;дырка&amp;quot; (пустая ячейка) которая никогда не заполнится;&lt;br /&gt;
**'''#''' - &amp;quot;разовая дырка&amp;quot; (пустая ячейка) которая может заполнится (для Аркады);&lt;br /&gt;
**'''B''' - маркер который говорит, что данная фишка является бомбой, номер бомбы указывается в следующем поле('''T'''):&lt;br /&gt;
***'''0''' - цветная бомба 1-го цвета;&lt;br /&gt;
***'''[1;m-1]''' - цветная бомба с 2-го по (m-1) цвета;&lt;br /&gt;
***'''m''' - обычная бомба (взрывает всё в радиусе);&lt;br /&gt;
**'''Z''' - маркер который говорит, что данная фишка является бонусом, после цветных бомб, номер бомбы указывается в следующем поле ('''T'''):&lt;br /&gt;
***'''0''' - обычная бомба (взрывает всё в радиусе);&lt;br /&gt;
***'''1''' - горизонтальная бомба;&lt;br /&gt;
***'''2''' - вертикальная бомба;&lt;br /&gt;
***'''3''' - крестовая бомба;&lt;br /&gt;
***'''4''' - ячейка-Хамелеон;&lt;br /&gt;
*'''T''' - используется как дополнительное поле, для поля предыдущего поля ('''N''');&lt;br /&gt;
*'''K''' - покраска фона (фон имеет жизнь, и при каждом матчинге, уменьшает её, при этом меняет меняется клип):&lt;br /&gt;
**'''0''' - нет покраски;&lt;br /&gt;
*'''X''' - специальный функционал:&lt;br /&gt;
**'''0''' - обычная ячейка;&lt;br /&gt;
**'''Z''' - замок с жизнью(ячейка залочена, не даём на неё нажимать если есть жизнь), при каждом матчинге жизнь уменьшается, количество жизней задаётся параметром '''Y'''(если параметр не указан, считаем == 1):&lt;br /&gt;
***'''0''' - нет жизни (но смысла в этом мало);&lt;br /&gt;
***'''[1;n]''' - количество жизней;&lt;br /&gt;
*'''Y''' - используется как дополнительное поле, для поля '''X''';&lt;br /&gt;
&lt;br /&gt;
==Цели==&lt;br /&gt;
Важно указать в самом объекте флаг &amp;quot;перегрузка целей&amp;quot;(override_goal) и зануляем все параметры в теге &amp;quot;перегруженные цели&amp;quot; - чтобы не добавлялись цели которые нам не нужны (уронить статические, очистить поле).&lt;br /&gt;
*'''goalAny''' - выбить N фишек (у объекте параметр '''goal_any''');&lt;br /&gt;
*'''goalLines''' - выжить N генераций линий, для Аркады (у объекта параметр '''goal_lines''');&lt;br /&gt;
*'''goalLocks''' - убрать N замков (у объекта параметр '''goal_locks''');&lt;br /&gt;
*'''goalTokens''' - выбить N фишек конкретного цвета (последовательность через запятую для каждого нужного цвета); Объект пишет N параметров в себя '''goal_num_%N%''', где %N% - номер фишки (нумерация с 0);Важно задавать количество цветов '''numTokenNums''' не меньшим чем количество целей - иначе уровень нельзя будет пройти;&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
*'''id''' - id уровня (объект возьмёт первый уровень который совпадёт по id);&lt;br /&gt;
*'''cols''' - высота поля;&lt;br /&gt;
*'''rows''' - ширина поля;&lt;br /&gt;
*'''numTokenNums''' - количество цветов которые будет генерировать объект(если у вас режим дотсы - будьте бдительны, статическая фишка тоже считается цветом, и по-умолчанию она будет первой фишкой);&lt;br /&gt;
&lt;br /&gt;
==Дополнительные параметры==&lt;br /&gt;
*'''needCollapse''' - схлопывание фишек при пустой вертикальной линии;&lt;br /&gt;
*'''needBirth''' - досыпание фишек (для аркады можно не указывать);&lt;br /&gt;
*'''style''' - id стиля, применит указанный стиль (применит настройки фишек из стиля и запишет в себя строку '''tokenStyle''' (resID фишек через запятую));&lt;br /&gt;
&lt;br /&gt;
==Бонусы==&lt;br /&gt;
===Бонус Хамелеон===&lt;br /&gt;
Ячейка Хамелеон - это цветная фишка, которая периодически меняет свой цвет. Настраивается параметрами:&lt;br /&gt;
*'''chameleonTime''' - время изменения фишки-Хамелеон (у объекта параметр '''currentDt''');&lt;br /&gt;
*'''chameleonColors''' - перечень цветов, которые будет менять фишка-Хамелеон (у объекта параметр '''chameleonColors''');&lt;br /&gt;
&lt;br /&gt;
===Стартовая генерация бонусов===&lt;br /&gt;
Для того чтобы стартово на поле были бонусы (рандомное место положение), мы указываем следующие настройки:&lt;br /&gt;
startBomb'''N'''=&amp;quot;'''4'''&amp;quot;;&lt;br /&gt;
 где '''N''' - номер бонуса ( нумерация с &amp;quot;0&amp;quot;(первая цветная бомба));&lt;br /&gt;
     '''4''' - требуемое количество;&lt;br /&gt;
&lt;br /&gt;
===Генерация бонусов при досыпании===&lt;br /&gt;
Для уровней с досыпанием (режим аркада, тоже считается с досыпанием), мы можем указать перечень бонусов и вероятность их генерации:&lt;br /&gt;
*'''bombProbArray''' - перечень бонусов через &amp;quot;,&amp;quot;(нумерация с &amp;quot;0&amp;quot;(первая цветная бомба));&lt;br /&gt;
*'''bombProb''' - общая вероятность генерации бонусов (бонус будет выбран из списка '''bombProbArray''' рандомно);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Аркада==&lt;br /&gt;
Режим в котором ряд фишек добавляется снизу через время со сдвигом поля вверх. При этом проигрышь случается в случае когда мы не можем добавить ряд (размер поля увеличивается). В данном режиме очень не желательно использовать отмену действия (состояние undo).&lt;br /&gt;
*'''dt0''' - если больше 0 - включается режим аркады;&lt;br /&gt;
*'''n''' - количество линий через которое время уменьшиться на множитель;&lt;br /&gt;
*'''mult''' - множитель на которое уменьшиться время;&lt;br /&gt;
&lt;br /&gt;
При работе режима, объект записывает строку ('''nextLine''') в которой указан добавляемый ряд (цифры эквиваленты индексу фишки) и пинает обработчик - &amp;quot;запланирована новая линия в аркаде&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Пример=&lt;br /&gt;
S:\!MOBILE\!!!EditorGames\Wiki_sample\test_collaps.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Game mechanic]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Создание простейшего коллапса (классика)=&lt;br /&gt;
&lt;br /&gt;
Коллапс - самостоятельный обьект, и для создания простейшего коллапса не нужно никаких дополнительных обьектов. Создайте новый проект, и на сцену поместите пустой обьект, измените тип на коллапс.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Tree.JPG]]&lt;br /&gt;
&lt;br /&gt;
Графику для игры коллапс можно скачать здесь: [[Media:Fishki.rar]] &lt;br /&gt;
&lt;br /&gt;
Установите правила игры коллапс.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Коллапс.png]]&lt;br /&gt;
&lt;br /&gt;
Сначала стоит рассчитать размеры поля. При создании обычного коллапса поле делают квадратным, а сверху добавляют еще один ряд для статических обьектов. Соответственно, размерность коллапса составит х*(х+1). Размер поля в пикселях должен соответствовать размеру фишки, умноженной на количество строк/столбцов.&lt;br /&gt;
Создадим поле размером 12х13. Размеры нашей фишки в пикселях составляют 58х58, соответственно, размер нашего поля в пикслях составит 696*754.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Size.JPG]]&lt;br /&gt;
[[Файл:Size2.JPG]]&lt;br /&gt;
&lt;br /&gt;
Устанавливаем параметр &amp;quot;авторазмер&amp;quot; - авто.&lt;br /&gt;
&lt;br /&gt;
'''ОБРАТИТЕ ВНИМАНИЕ: Не надо загружать текстуры фишек в поле &amp;quot;фишки&amp;quot; во внешнем виде! Это делается отдельно в добавляемом свойстве &amp;quot;Графика фишки&amp;quot; отдельно для каждой фишки''' &lt;br /&gt;
&lt;br /&gt;
[[Файл:Grafika_fishki.JPG]]&lt;br /&gt;
&lt;br /&gt;
Добавьте графику для ваших фишек (один цвет - одна фишка), а также графику для статической фишки (которая будет находиться в верхнем ряду).&lt;br /&gt;
&lt;br /&gt;
== Перегрузка правил ==&lt;br /&gt;
&lt;br /&gt;
Теперь перегрузим правила для коллапса классического. Так как обьект collapse многоцелевой и с его помощью можно сделать несколько различных миниигр, мы установим правила, нужные для классического коллапса.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Rules_classic.JPG]]&lt;br /&gt;
&lt;br /&gt;
Разберем поподробнее некоторые установленные параметры:&lt;br /&gt;
&lt;br /&gt;
* перегрузка - да&lt;br /&gt;
:- для перегрузки правил необходимо уставить этот флаг;&lt;br /&gt;
* номеров в фишках - 5&lt;br /&gt;
:- это количество цветов и статических фишек, что у нас есть&lt;br /&gt;
* номер бомбы/крестобомбы - -1&lt;br /&gt;
:- будьте внимательны - изначально это значение стоит на 0, изза этого первый цветной блок у вас будет считаться бомбой, и при клике уничтожать все фишки своего цвета!&lt;br /&gt;
:- ''в классическом коллапсе вообще не используются бомбы''&lt;br /&gt;
* статический номер - 0&lt;br /&gt;
:- это номер фишки, которая будет лежать на самом верхнем ряду, и которые надо опустить вниз&lt;br /&gt;
'''Все, что касается пометки, не требуется для классического коллапса, так как в нем не нужно отмечать фишки.'''&lt;br /&gt;
&lt;br /&gt;
При установке номеров фишек для бомб и статических учтите, как нумеруется графика фишек.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Graphics_num.JPG]]&lt;br /&gt;
&lt;br /&gt;
Самый верхний добавленный ресурс будет иметь номер 0, следующий за ним - 1 и далее по возрастанию.&lt;br /&gt;
&lt;br /&gt;
Перегрузим также и условия победы в нашей игре:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Celi.JPG]]&lt;br /&gt;
&lt;br /&gt;
Так как условие победы в нашей игре - опустить все статические фишки на дно, то это мы и отметим, как цель игры.&lt;br /&gt;
Обрабочтик победы добавляется так же, как и фишки - с помощью создания нового свойства:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Win.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Внешний вид ==&lt;br /&gt;
&lt;br /&gt;
Настроим внешний вид нашей игры.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Vneshniy.JPG]]&lt;br /&gt;
&lt;br /&gt;
Некоторые параметры мы уже рассмотрели, немного об остальных:&lt;br /&gt;
* сетка? - работает по каким-то собственным алгоритмам, поэтому иногда выглядит странно, можно ее просто не показывать&lt;br /&gt;
* таймер - подключает таймер (можно установить ограничения по времени для решения коллапса)&lt;br /&gt;
* счетчик статических - подключаем счетчик, который ведет учет статических элементов, которые еще не опущены ко дну коллапса&lt;br /&gt;
* бомбы - в классическом коллапсе не используются&lt;br /&gt;
&lt;br /&gt;
Со временами всяких анимаций и появлений можете поэксперементировать сами или использовать вот эти:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Vremena.JPG]]&lt;br /&gt;
&lt;br /&gt;
При генерации коллапс устанавливает блоки одинаковых фишек рядом, подчиняясь этим правилам:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Generation.JPG]]&lt;br /&gt;
&lt;br /&gt;
Запустим получившуюся игру:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Game.JPG]]&lt;br /&gt;
&lt;br /&gt;
Более глубокие механики и условия попробуйте проработать сами с помощью машин, меняйте состояния для коллапса с помощью кнопок и создавайте красивые игры!&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B0%D0%BF%D1%81.png&amp;diff=9967</id>
		<title>Файл:Коллапс.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B0%D0%BF%D1%81.png&amp;diff=9967"/>
		<updated>2020-10-05T07:39:04Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9965</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9965"/>
		<updated>2020-09-25T12:24:36Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Настройка окна вывода */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированные объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== Таймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
=== Прогресс ===&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В HiddenList в разделе очковая система для сохранения данных в профиль необходимо указать '''id игры''' (например &amp;quot;hidden&amp;quot;).&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Настройка окна вывода ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла ([[Rectangle]]), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
[[Файл:Counters.png]]&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
=== Вывод итогов ===&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9964</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9964"/>
		<updated>2020-09-25T12:17:35Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Настройка окна вывода */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированные объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== Таймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
=== Прогресс ===&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В HiddenList в разделе очковая система для сохранения данных в профиль необходимо указать '''id игры''' (например &amp;quot;hidden&amp;quot;).&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Настройка окна вывода ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
[[Файл:Counters.png]]&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
=== Вывод итогов ===&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Counters.png&amp;diff=9963</id>
		<title>Файл:Counters.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Counters.png&amp;diff=9963"/>
		<updated>2020-09-25T12:16:35Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9962</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9962"/>
		<updated>2020-09-25T12:01:51Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Настройка полноценной системы подсчета очков */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированные объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== Таймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
=== Прогресс ===&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В HiddenList в разделе очковая система для сохранения данных в профиль необходимо указать '''id игры''' (например &amp;quot;hidden&amp;quot;).&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Настройка окна вывода ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9961</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9961"/>
		<updated>2020-09-25T12:01:16Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Упражнения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированные объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== Таймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
=== Прогресс ===&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В HiddenList в разделе очковая система для сохранения данных в профиль необходимо указать '''id игры''' (например &amp;quot;hidden&amp;quot;).&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Настройка окна вывода ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9960</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9960"/>
		<updated>2020-09-25T11:58:19Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Прогресс */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== Таймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
=== Прогресс ===&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В HiddenList в разделе очковая система для сохранения данных в профиль необходимо указать '''id игры''' (например &amp;quot;hidden&amp;quot;).&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Настройка окна вывода ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9959</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9959"/>
		<updated>2020-09-25T11:57:47Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Прогресс и окно вывода */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== Таймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
=== Прогресс ===&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В HiddenList в разделе очковая система для сохранения данных в профиль необходимо указать '''id игры''' (например &amp;quot;hiden&amp;quot;).&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Настройка окна вывода ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9958</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9958"/>
		<updated>2020-09-25T11:51:29Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* ПРОГРЕСС И ОКНО ВЫВОДА */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== Таймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
=== Прогресс и окно вывода===&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9957</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9957"/>
		<updated>2020-09-25T11:50:57Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* ТАаймер */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== Таймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9956</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9956"/>
		<updated>2020-09-25T11:50:51Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* ТАЙМЕР */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
=== ТАаймер ===&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9955</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9955"/>
		<updated>2020-09-25T11:50:17Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Счетчик */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
=== Счетчик ===&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9954</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9954"/>
		<updated>2020-09-25T11:49:35Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* СЧЕТЧИК */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9953</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9953"/>
		<updated>2020-09-25T11:48:47Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Упражнения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Настройка полноценной системы подсчета очков ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:444.png&amp;diff=9952</id>
		<title>Файл:444.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:444.png&amp;diff=9952"/>
		<updated>2020-09-25T11:46:08Z</updated>

		<summary type="html">&lt;p&gt;Astepin: Astepin загрузил новую версию Файл:444.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9951</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9951"/>
		<updated>2020-09-25T11:40:39Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Упражнение № 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9949</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9949"/>
		<updated>2020-09-25T11:12:32Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* ПРОГРЕСС И ОКНО ВЫВОДА */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Упражнение № 6 ==&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:HOL Final.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения.&lt;br /&gt;
&lt;br /&gt;
Добавим правой кнопкой мыши функцию &amp;quot;разбор: изменить состояние объекта&amp;quot; и укажем там машину ''win_lose'' состояние win. Состояние lose укажем в таймере timer_H также через добавление функции правой копкой мыши &amp;quot;время истекло: изменить состояние объекта&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Final.png&amp;diff=9948</id>
		<title>Файл:HOL Final.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Final.png&amp;diff=9948"/>
		<updated>2020-09-25T11:04:47Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9947</id>
		<title>Файл:HOL Time.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9947"/>
		<updated>2020-09-25T10:42:55Z</updated>

		<summary type="html">&lt;p&gt;Astepin: Astepin загрузил новую версию Файл:HOL Time.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9946</id>
		<title>Файл:HOL Time.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9946"/>
		<updated>2020-09-25T10:41:28Z</updated>

		<summary type="html">&lt;p&gt;Astepin: Astepin загрузил новую версию Файл:HOL Time.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9945</id>
		<title>Файл:HOL Time.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9945"/>
		<updated>2020-09-25T10:39:57Z</updated>

		<summary type="html">&lt;p&gt;Astepin: Astepin загрузил новую версию Файл:HOL Time.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9944</id>
		<title>Файл:HOL Time.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9944"/>
		<updated>2020-09-25T10:38:33Z</updated>

		<summary type="html">&lt;p&gt;Astepin: Astepin загрузил новую версию Файл:HOL Time.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9943</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9943"/>
		<updated>2020-09-25T10:35:37Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* ТАЙМЕР */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Упражнение № 6 ==&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL Time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1010.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения. &lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9942</id>
		<title>Файл:HOL Time.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:HOL_Time.png&amp;diff=9942"/>
		<updated>2020-09-25T10:35:17Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9941</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9941"/>
		<updated>2020-09-25T10:27:54Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* СЧЕТЧИК */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Упражнение № 6 ==&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (5).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL_time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1010.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения. &lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9940</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9940"/>
		<updated>2020-09-25T10:26:12Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* СЧЕТЧИК */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Упражнение № 6 ==&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Symb.png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL_time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1010.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения. &lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9939</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9939"/>
		<updated>2020-09-25T10:25:29Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* СЧЕТЧИК */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Упражнение № 6 ==&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Count 0.png]] ‎[[Файл:Count 1.png]] [[Файл:Count 2.png]] [[Файл:Count 3.png]] ‎[[Файл:Count 4.png]] [[Файл:Count 5.png]] ‎[[Файл:Count 6.png]] ‎[[Файл:Count 7.png]] ‎‎[[Файл:Count 8.png]] ‎[[Файл:Count 9.png]] ‎[[‎Файл:Coun (4).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL_time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1010.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения. &lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_9.png&amp;diff=9938</id>
		<title>Файл:Count 9.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_9.png&amp;diff=9938"/>
		<updated>2020-09-25T10:25:20Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_8.png&amp;diff=9937</id>
		<title>Файл:Count 8.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_8.png&amp;diff=9937"/>
		<updated>2020-09-25T10:24:52Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_7.png&amp;diff=9936</id>
		<title>Файл:Count 7.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_7.png&amp;diff=9936"/>
		<updated>2020-09-25T10:24:36Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_6.png&amp;diff=9935</id>
		<title>Файл:Count 6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_6.png&amp;diff=9935"/>
		<updated>2020-09-25T10:24:16Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_5.png&amp;diff=9934</id>
		<title>Файл:Count 5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_5.png&amp;diff=9934"/>
		<updated>2020-09-25T10:23:42Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_4.png&amp;diff=9933</id>
		<title>Файл:Count 4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_4.png&amp;diff=9933"/>
		<updated>2020-09-25T10:23:15Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_3.png&amp;diff=9932</id>
		<title>Файл:Count 3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_3.png&amp;diff=9932"/>
		<updated>2020-09-25T10:22:52Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_2.png&amp;diff=9931</id>
		<title>Файл:Count 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_2.png&amp;diff=9931"/>
		<updated>2020-09-25T10:22:22Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_1.png&amp;diff=9930</id>
		<title>Файл:Count 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_1.png&amp;diff=9930"/>
		<updated>2020-09-25T10:21:49Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_0.png&amp;diff=9929</id>
		<title>Файл:Count 0.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Count_0.png&amp;diff=9929"/>
		<updated>2020-09-25T10:21:19Z</updated>

		<summary type="html">&lt;p&gt;Astepin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9928</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9928"/>
		<updated>2020-09-25T10:04:05Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Упражнения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
&lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Упражнение № 6 ==&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Coun (5).png]] ‎[[Файл:Coun (6).png]] [[Файл:Coun (7).png]] [[Файл:Coun (8).png]] ‎[[Файл:Coun (9).png]] [[Файл:Coun_(10).png]] ‎[[Файл:Coun (11).png]] ‎[[Файл:Coun (1).png]] ‎‎[[Файл:Coun (2).png]] ‎[[Файл:Coun (3).png]] ‎[[‎Файл:Coun (4).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL_time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1010.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения. &lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9927</id>
		<title>Создание игры «Hidden Object Game»</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&amp;diff=9927"/>
		<updated>2020-09-25T10:03:50Z</updated>

		<summary type="html">&lt;p&gt;Astepin: /* Упражнения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и  [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.&lt;br /&gt;
 &lt;br /&gt;
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. &lt;br /&gt;
&lt;br /&gt;
== Создание экрана и сцены в игровом проекте ==&lt;br /&gt;
&lt;br /&gt;
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]&lt;br /&gt;
В экране Lesson_7 добавляем новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья». Перетягиваем сначала '''bg''', потом остальные объекты с папки ''hiddenObj''.&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи 2 значения, один из которых называет сам предмет, а второе - является его синонимом или ассоцией, которая укажет на него ([[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Word]], [[Интерфейс TextEditor#Создание и заполнение текстовой базы проекта | Sentence-En]]), добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип &amp;quot;icon1&amp;quot;. Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].&lt;br /&gt;
&lt;br /&gt;
== Общая настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
1. Для всех поисковых графических объектов изменяем тип с image на [[HiddenObject]]: выделяем первый и последний элементы, удерживая кнопку Shift, в окне Property выбраем соответствующий параметр.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создаем новую сцену, которую называем 7_1 и добавляем на нее специальные объекты [[Table]] и [[HiddenList]]. Для этого переносим графическое изображение table и изменяем его тип с image на Table. Название объекта изменить на table**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList создаем  новый объект и меняем его тип с image на HiddenList. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HiddenList**&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_HiddenList.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''**''' Имена для специальных объектов могут использоваться любые.&lt;br /&gt;
&lt;br /&gt;
== Детальная настройка объектов ==&lt;br /&gt;
&lt;br /&gt;
'''1. Описание HiddenObject.'''&lt;br /&gt;
&lt;br /&gt;
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]&lt;br /&gt;
&lt;br /&gt;
Необходимо выбрать используемый объект с именем HiddenList (тип HiddenObjectList) в поле list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;&lt;br /&gt;
&lt;br /&gt;
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);&lt;br /&gt;
&lt;br /&gt;
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;&lt;br /&gt;
&lt;br /&gt;
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);&lt;br /&gt;
&lt;br /&gt;
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.&lt;br /&gt;
&lt;br /&gt;
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Описание HiddenObjectList.'''&lt;br /&gt;
&lt;br /&gt;
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле &amp;quot;объектов&amp;quot;). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле &amp;quot;количество&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они &amp;quot;перебивали&amp;quot; общие значения для всех.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подготовка спрятанных объектов: &lt;br /&gt;
&lt;br /&gt;
''num'' (поле &amp;quot;объектов&amp;quot;) – максимальное количество объектов, участвующие в поиске. (int)&lt;br /&gt;
&lt;br /&gt;
''hide'' (поле &amp;quot;прятать&amp;quot;) – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) &lt;br /&gt;
&lt;br /&gt;
Визуальные параметры списка: &lt;br /&gt;
&lt;br /&gt;
''table'' (поле &amp;quot;таблица&amp;quot;) – идентификатор объекта Table. (objid)&lt;br /&gt;
&lt;br /&gt;
''kind'' (внешний вид - поле &amp;quot;тип списка&amp;quot;) – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)&lt;br /&gt;
&lt;br /&gt;
''cross'' (внешний вид - поле &amp;quot;вычеркнуть&amp;quot;) – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе &amp;quot;зачеркивается&amp;quot;.(int).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''3. Настройка Table'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Table lesson7.png]] &lt;br /&gt;
&lt;br /&gt;
 Хотелось бы напомнить , что вы можете “поиграться” с вкладкой “таблица”, чтобы настроить внешний вид , вспомогательную область для поиска предметов.&lt;br /&gt;
&lt;br /&gt;
'''4. Параметры, общие для всех спрятанных объектов:'''&lt;br /&gt;
&lt;br /&gt;
''die'' –  тип исчезания при удачном клике на объект (если нет актера) (int): &lt;br /&gt;
&lt;br /&gt;
0: просто исчезает;&lt;br /&gt;
&lt;br /&gt;
1: летит к пункту с описанием в списке HiddenList;&lt;br /&gt;
&lt;br /&gt;
2: улетает в случайном направлении;&lt;br /&gt;
&lt;br /&gt;
3: улетает к заданным координатам (fx, fy).&lt;br /&gt;
&lt;br /&gt;
vm - скорость движения при полете к списку предметов после клика в px/sec (float) &lt;br /&gt;
&lt;br /&gt;
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) &lt;br /&gt;
&lt;br /&gt;
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) &lt;br /&gt;
&lt;br /&gt;
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. &lt;br /&gt;
&lt;br /&gt;
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) &lt;br /&gt;
&lt;br /&gt;
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
        '''Внимание!'''  HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -&amp;gt; id игры; для теста заполним его любой строкой).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену (с названием stg_7_1).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену stg_7_1.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Screenshot 1.png]] &lt;br /&gt;
5. В новой сцене:&lt;br /&gt;
&lt;br /&gt;
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;&lt;br /&gt;
&lt;br /&gt;
b) разместить на местах предназначенных для их «Прятанья»;&lt;br /&gt;
&lt;br /&gt;
c) добавить текстовое описание в TextEditor;&lt;br /&gt;
&lt;br /&gt;
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.&lt;br /&gt;
&lt;br /&gt;
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.&lt;br /&gt;
&lt;br /&gt;
== Упражнение № 6 ==&lt;br /&gt;
Экран lesson_7  необходимо модифицировать  в полноценный уровень.&lt;br /&gt;
&lt;br /&gt;
Для этого создаем еще одну сцену 7_3 в первом экране с объектами, которые сделают игру полноценной: первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1.png]] &lt;br /&gt;
&lt;br /&gt;
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) активируется во время комбо.&lt;br /&gt;
&lt;br /&gt;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор и прогресс в свойствах HiddenList ([[hiddenList]]).&lt;br /&gt;
&lt;br /&gt;
== СЧЕТЧИК ==&lt;br /&gt;
&lt;br /&gt;
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!'''  Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её -  это просто). Анимация создается с названием папки, в которой хранились картинки, избегайте кириллицы в названии  папок.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ‎[[Файл:Coun (5).png]] ‎[[Файл:Coun (6).png]] [[Файл:Coun (7).png]] [[Файл:Coun (8).png]] ‎[[Файл:Coun (9).png]] [[Файл:Coun_(10).png]] ‎[[Файл:Coun (11).png]] ‎[[Файл:Coun (1).png]] ‎‎[[Файл:Coun (2).png]] ‎[[Файл:Coun (3).png]] ‎[[‎Файл:Coun (4).png]]&lt;br /&gt;
&lt;br /&gt;
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель уже указан в настройках. Настройки для счетчика:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:243.png]]&lt;br /&gt;
&lt;br /&gt;
== ТАЙМЕР ==&lt;br /&gt;
&lt;br /&gt;
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). &lt;br /&gt;
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие или делаем его обычным шрифтом, редактируя в свойствах параметр '''шрифт'''. Настройки для таймера:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:444.png]]&lt;br /&gt;
&lt;br /&gt;
Также стоит обновить настройки в HiddenObjectList , т.к. если мы их не укажем, то отсчет времени просто не начнется. Время таймера и время указанное в HiddenObjectList должны совпадать, иначе отсчет времени будет идти от меньшего времени вне зависимости указано оно в HOL или в таймере.&lt;br /&gt;
  [[Файл:HOL_time.png]]&lt;br /&gt;
&lt;br /&gt;
== ПРОГРЕСС И ОКНО ВЫВОДА==&lt;br /&gt;
&lt;br /&gt;
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходит уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую или совершая необходимые действия в игре, например комбо. &lt;br /&gt;
Настройки для '''прогресса''' : &lt;br /&gt;
&lt;br /&gt;
 [[Файл:555.png]]&lt;br /&gt;
&lt;br /&gt;
Графика для Progress: [[Файл:666.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) (подобъектe '''black''' изменяем тип на rectangle, более подробно о нем дальше):&lt;br /&gt;
&lt;br /&gt;
 [[Файл:Ban h na max.png]]&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для '''hiddenList''':&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1010.png]]&lt;br /&gt;
&lt;br /&gt;
Машина ''win_lose'' помогает определить победителя и вызывает соответствующее окно ''win'' после победы или поражения. &lt;br /&gt;
&lt;br /&gt;
Группа - звезды combo num =1 - количество быстро найденных объектов, нужное для получения звезды Combo. Combo time = 3000 - интервал между кликами, считающимися быстрыми. Combo accuracy = 0,85 - точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные). Лимит ложных кликов = 5 - количество неверных кликов. Формула расчета его: количество верных кликов делим на общее количество получаем коэффициент, если он равен или больше указного нами, то в опции пишем параметр, если нет то не пишем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для HiddenList и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем новую сцену '''w''' и создаем в ней объект c типом machine ''win'', на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков. Окно&lt;br /&gt;
должно открываться по окончанию игры и при выигрыше показывать набранные очки и надпись об удаче, при проигрыше - нулевые очки и надпись о неудаче.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]]    &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Rectangle black (Цвет задается в свойстве фон-&amp;gt;цвет заливки) используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1012.png]] [[Файл:0102.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее копируем Rectangle &amp;quot;black&amp;quot; и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!), устанавливаем параметр фон и alpha на свое усмотрение.&lt;br /&gt;
&lt;br /&gt;
Создадим еще 5 счетчиков. Они нам понадобятся в конце игры для выведения бонусного счета.&lt;br /&gt;
&lt;br /&gt;
В свойствах счетчиков необходимо прописать уровень!&lt;br /&gt;
&lt;br /&gt;
1) счетчик 7_4_1 — игровые очки;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_total&lt;br /&gt;
&lt;br /&gt;
2) счетчик 7_4_2 — бонус за время;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_time&lt;br /&gt;
&lt;br /&gt;
3) счетчик 7_4_3 — бонус за аккуратность;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_accuracy&lt;br /&gt;
&lt;br /&gt;
4) счетчик 7_4_4 — бонус за комбо;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.ecmbRowMax&lt;br /&gt;
&lt;br /&gt;
5) счетчик 7_4_5 — очки за уровень;&lt;br /&gt;
&lt;br /&gt;
уровень: last_game.score30_level&lt;br /&gt;
&lt;br /&gt;
Важный аспект: после того как вы добавили last.game.xxx в графу уровень в каждом счетчике , графа игра должна остаться пустой и так же не стоит эти счетчики закидывать в HOL , т.к. одни и те же данные могут конфликтовать между собой. Также обязательным условием является включение графы “очки 3.0” в HOL`e.&lt;br /&gt;
&lt;br /&gt;
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star1''' &lt;br /&gt;
(проверка в опциях параметра last_game.last_star_accuracy0, &lt;br /&gt;
last_game.last_star_time0, )&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0303.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star2''' &lt;br /&gt;
(если параметр accuracy=0)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0304.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''star3''' &lt;br /&gt;
(если игра пройдена за указанное время)&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0305.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины — '''win'''&lt;br /&gt;
&lt;br /&gt;
 [[Файл:0306.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Машина '''win''' считывает «read» показания счетчика и запускает star1 если игра пройдена.&lt;br /&gt;
&lt;br /&gt;
Также создаем кнопку ''close'' (button), которая должна закрывать окно результатов. Добавляем &amp;quot;изменить состояние объекта&amp;quot;; объект win, состояние close. &lt;br /&gt;
&lt;br /&gt;
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Редактор текстовых ресурсов|Урок 6]] &amp;lt;&amp;lt; &lt;br /&gt;
 ! width=&amp;quot;20%&amp;quot;|[[Learning|Оглавление]] &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot; align=&amp;quot;right&amp;quot;| &amp;gt;&amp;gt; [[Настройка миниигр|Урок 8]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Astepin</name></author>
		
	</entry>
</feed>