<?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=Dkamkov</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=Dkamkov"/>
	<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/Dkamkov"/>
	<updated>2026-10-17T05:17:43Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<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=9216</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=9216"/>
		<updated>2017-11-15T09:28:34Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &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;
* Для корректной работы на мобильном устройстве необходимо настроить параметр.&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение [[Интерфейс 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]].&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создать специальные объекты [[Table]] и [[HiddenList]]. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**&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;
Необходимо выбрать используемый объект с именем HOL (тип 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;
6. Параметры, общие для всех спрятанных объектов:&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;
[[Файл:07 11.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;
Для этого первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]), машиной-комбо3 ([[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;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» ([[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]] [[Файл:33.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;
&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;
Настройки для машины-Combo3c :&lt;br /&gt;
&lt;br /&gt;
 [[Файл:777.png]]&lt;br /&gt;
&lt;br /&gt;
Во всех HiddenObject добавить свойство &amp;quot;изменить состояние объекта&amp;quot; combo3c [[Файл:1818.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) :&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]] [[Файл:1011.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 и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно&lt;br /&gt;
должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.&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 black и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!).&lt;br /&gt;
&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;
&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>Dkamkov</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=9215</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=9215"/>
		<updated>2017-11-15T09:27:22Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &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;
* Для корректной работы на мобильном устройстве необходимо настроить параметр.&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение [[Интерфейс 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]].&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создать специальные объекты [[Table]] и [[HiddenList]]. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**&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;
Необходимо выбрать используемый объект с именем HOL (тип 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;
6. Параметры, общие для всех спрятанных объектов:&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;
[[Файл:07 11.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;
Для этого первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]), машиной-комбо3 ([[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;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» ([[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]] [[Файл:33.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;
&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;
Настройки для машины-Combo3c :&lt;br /&gt;
&lt;br /&gt;
 [[Файл:777.png]]&lt;br /&gt;
&lt;br /&gt;
Во всех HiddenObject добавить свойство &amp;quot;изменить состояние объекта&amp;quot; combo3c [[Файл:1818.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) :&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]] [[Файл:1011.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 и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно&lt;br /&gt;
должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.&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 black и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!).&lt;br /&gt;
&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;
&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>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ban_h_na_max.png&amp;diff=9214</id>
		<title>Файл:Ban h na max.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ban_h_na_max.png&amp;diff=9214"/>
		<updated>2017-11-15T09:23:41Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</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=9213</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=9213"/>
		<updated>2017-11-15T09:04:35Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &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;
* Для корректной работы на мобильном устройстве необходимо настроить параметр.&lt;br /&gt;
&lt;br /&gt;
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».&lt;br /&gt;
&lt;br /&gt;
Создадим папку Lesson_7  в базе текстовых описаний с помощью TextEditor.  Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение [[Интерфейс 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]].&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson7_hidden_obj.png]]&lt;br /&gt;
&lt;br /&gt;
2. Создать специальные объекты [[Table]] и [[HiddenList]]. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**&lt;br /&gt;
&lt;br /&gt;
[[Файл:07 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**&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;
Необходимо выбрать используемый объект с именем HOL (тип 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;
6. Параметры, общие для всех спрятанных объектов:&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;
[[Файл:07 11.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;
Для этого первый экран дополняем  2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]), машиной-комбо3 ([[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;
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» ([[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]] [[Файл:33.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;
&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;
Настройки для машины-Combo3c :&lt;br /&gt;
&lt;br /&gt;
 [[Файл:777.png]]&lt;br /&gt;
&lt;br /&gt;
Во всех HiddenObject добавить свойство &amp;quot;изменить состояние объекта&amp;quot; combo3c [[Файл:1818.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для машины-блокатора «ban_H» (machine) :&lt;br /&gt;
&lt;br /&gt;
 [[Файл:9.png]]&lt;br /&gt;
&lt;br /&gt;
Настройки для hiddenList:&lt;br /&gt;
&lt;br /&gt;
 [[Файл:1010.png]] [[Файл:1011.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 и Counter пункт &amp;quot;сохранить в профиль&amp;quot; должен совпадать. Если в HiddenList указано &amp;quot;глобально&amp;quot;, то и в Counter также необходимо установить &amp;quot;глобально&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно&lt;br /&gt;
должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.&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 используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. &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 black и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!).&lt;br /&gt;
&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;
&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>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hint_counter_na_max.png&amp;diff=9212</id>
		<title>Файл:Hint counter na max.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hint_counter_na_max.png&amp;diff=9212"/>
		<updated>2017-11-15T08:59:53Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: Dkamkov загрузил новую версию Файл:Hint counter na max.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9211</id>
		<title>Настройка миниигр</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9211"/>
		<updated>2017-11-15T08:58:46Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' изучить настройки объектов, реализующих различные минигры.&lt;br /&gt;
&lt;br /&gt;
'''Задачи:''' &lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Puzzle&lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Patchwork &lt;br /&gt;
&lt;br /&gt;
== Puzzle ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_07.1, создать экран Lesson_08.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 1.png]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08 создать новые сцены 08 и Buttons, в которую (через ResourcesEditor) добавить графические ресурсы (Level_01, hint_normal в папку 05 и hint_normal, ico_R_normal2 в папку Buttons) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 2.png]]  [[Файл:08 3.png]]&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов, создание машин состояний ===&lt;br /&gt;
	&lt;br /&gt;
1. В сцене 08 изменить название графического ресурса hint_normal на applause и в общих настройках элемента удалить саму графику через модификаторы → res.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 4.png]]&lt;br /&gt;
&lt;br /&gt;
2. Графическое изображение level_01 перевести в тип [[Puzzle|puzzle]] и установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Объект applause перевести в тип машина и прописать ему состояния on и off.&lt;br /&gt;
&lt;br /&gt;
4. В состоянии on добавить команду play (проиграть звук) и в списке команды выбрать snd (короткий звук), подгружаемый с помощью ResourcesEditor из папки ресурсов Level_08; &lt;br /&gt;
&lt;br /&gt;
[[Файл:08 6.png]]&lt;br /&gt;
&lt;br /&gt;
5. Создать новое состояние с именем off. В общих настройка свойства элемента изначально установить состояние off.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 7.png]]  [[Файл:08 8.png]]&lt;br /&gt;
&lt;br /&gt;
6. Далее перейти к сцене Buttons, перевести графические объекты hint_normal, ico_R_normal2 в тип button, в свойстве элемента установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 9.png]]  [[Файл:08 10.png]]&lt;br /&gt;
&lt;br /&gt;
''Кнопка R (переиграть)'' — кнопка, запускающая игру Puzzle сначала. В общих настройках свойства элемента устанавливаем, в какое начало должна возвращать кнопка (в нашем случае перейти на экран Lesson_08).Для данной игры, мы сделали переход на экран &amp;lt;tt&amp;gt;Lesson_08&amp;lt;/tt&amp;gt;, который запускает игру сначала. Но в дальнейшем, чтобы не переводить все объекты в начальное состояние  правильнее будет, в графе '''«изменить состояние»''' выбрать объект &amp;lt;tt&amp;gt;Level_01&amp;lt;/tt&amp;gt; и указать ему состояние &amp;lt;tt&amp;gt;mix&amp;lt;/tt&amp;gt;, которое означает, что игра возвращается в состояние перемешивания картинок, а не запускает всю игру заново.&lt;br /&gt;
	&lt;br /&gt;
7. В объекте (кнопке) hint_normal нажать правой кнопкой и выбрать изменить состояние объекта → потом выбрать объект level_01 и вписать состояние hint, которое означает, что при нажатии кнопки, в качестве подсказки, игра покажет картинку в собранном виде.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 11.png]]  [[Файл:08 12.png]]&lt;br /&gt;
&lt;br /&gt;
''hint'' – кнопка, реализующая подсказку на экране поиска.&lt;br /&gt;
&lt;br /&gt;
8. Вернуться на сцену 08 к объекту  level_01 и в общих настройках свойства элемента изменить состояние объекта → выбрать объект applause и вписать состояние on.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 13.png]]&lt;br /&gt;
&lt;br /&gt;
9. Проверить выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08, создать новый экран Lesson_08.1&lt;br /&gt;
&lt;br /&gt;
2. Создать новые сцены (с названием 08.1 и Buttons).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08) и Buttons (экрана Lesson_08).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену 08.1 и Buttons (экрана Lesson_08.1).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 15.png]]&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить звук аплодисментов другим аудиофайлом, имеющимся в базе ресурсов;&lt;br /&gt;
 &lt;br /&gt;
b) в пазле изменить количество разбиваемых частей на шесть (3х2), добавить сетку, изменить перестановку ячеек на смешивание по alpha, изменить время смешивания на 500 миллисекунд;&lt;br /&gt;
 &lt;br /&gt;
c) при нажатии hint (подсказки) изменить время показа подсказки на 2 секунды, изменить время финального показа пазла на 3 секунды, установить время закрытия пазла 500 миллисекунд.&lt;br /&gt;
&lt;br /&gt;
6. Сделать счетчик подсказок, используя объект '''[[Store|Store]]''' создать возможность совершать покупки подсказок за реальные деньги.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши по экрану Lesson_08.1  создадим новый экран '''lessons_8_1_1'''. Добавим в него сцены str_8_1 и Button_8_1. В сцену str_8_1 поместим объекты из экрана  Lesson_08.1: level_01, applause; оставим их без изменения. В сцену  Button_8_1 скопируем из Lesson_08.1 кнопки hint_normal и ico_R_normal2 и создадим новый объект, поменяв ему тип на '''counter''' (счетчик) и названия на '''hint'''. Добавим ресурс из базы ресурсов —  анимацию file1 (brown_big). Счетчик  hint будет считывать купленные подсказки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hint counter na max.png]]&lt;br /&gt;
&lt;br /&gt;
В  hint_normal добавим подобъект, сделаем его машиной и назовем '''hint_m'''.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши на сцену  Button_8_1 создадим новые сцены store и error, которые, соответственно, будут предназначены для совершения покупок — начисления подсказок и окна с ошибкой при невозможности купить подсказку.&lt;br /&gt;
&lt;br /&gt;
В сцену  store добавим две машины:  '''buy''' и '''store'''; в  error - машину  '''error'''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:8 1 1 .PNG]]&lt;br /&gt;
&lt;br /&gt;
Для машины  buy зададим состояния,  при котором значении параметра hint=1, то есть  она начисляет подсказку:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy na max.png]]&lt;br /&gt;
&lt;br /&gt;
Соответственно в машине  store зададим считывания со счетчика  и  прозрачность экрана:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store.PNG]]&lt;br /&gt;
&lt;br /&gt;
Машина error будет отвечать за вывод ошибки при неудачной покупке, то есть задает прозрачность экрана с ошибкой&lt;br /&gt;
&lt;br /&gt;
[[Файл:Error.PNG]]&lt;br /&gt;
&lt;br /&gt;
Вернемся к машине hint_m сцены Button_8_1 и пропишем для нее состояния. Машина отвечает за начисление подсказки при удачной покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hint m.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Совершение покупки'''&lt;br /&gt;
&lt;br /&gt;
Для того что бы покупку можно было совершить необходимо задать в глобальных свойствах возможность совершения покупки. Для этого на сцене в глобальном экране opt добавим новый элемент, которому изменим тип на store. В свойствах объекта store  кликнем правой кнопкой мыши на свойстве wallet, вставляем новое свойство — '''in-app покупка'''. Добавляем поля для покупки: внутренний id, и выбираем расходуемая.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Описание объекта Store'''&lt;br /&gt;
&lt;br /&gt;
Объект '''Store''' необходим для описания InApp покупок (позволяют продавать отдельные бонусы, паки и т.п.) в игре.&lt;br /&gt;
&lt;br /&gt;
Основные параметры объекта Store&lt;br /&gt;
&lt;br /&gt;
''id покупки'' – внутренний id покупки.&lt;br /&gt;
&lt;br /&gt;
''Расходуемая'' – 1 – покупка расходуемая, 0 – покупка раз и навсегда, если параметр не указан, по-умолчанию покупка – одноразовая.&lt;br /&gt;
&lt;br /&gt;
''объект (restore)'' – объект - Слушатель восстановления покупки. Этому объекту будет сообщено об успехе восстановления этой покупки покупки.&lt;br /&gt;
состояние (restore) – это состояние будет установлено объекту при успешном восстановлении этой покупки.&lt;br /&gt;
&lt;br /&gt;
'''Для того, чтобы объект Store работал во Вьювере, нужно подкорректировать файл app.icf'''&lt;br /&gt;
&lt;br /&gt;
1. Найти файл app.icf в папке с вашим проектом.&lt;br /&gt;
&lt;br /&gt;
2. Открыть его и найти тег [Game].&lt;br /&gt;
&lt;br /&gt;
3. В теге Game добавить строку purchaseEverything=1.&lt;br /&gt;
&lt;br /&gt;
4. Сохранить файл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Game]&lt;br /&gt;
purchaseEverything=1&lt;br /&gt;
DispFixRot=&amp;quot;Landscape&amp;quot;&lt;br /&gt;
# comments and whitespace stripped by deployment tool&lt;br /&gt;
debug=&amp;quot;Absolutist-2253&amp;quot;&lt;br /&gt;
show_build_date=1&lt;br /&gt;
AppTitle=&amp;quot;Viewer&amp;quot;&lt;br /&gt;
DebuggerIP=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
DebuggerPort=5322&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Оформление'''&lt;br /&gt;
&lt;br /&gt;
Теперь перейдем к оформлению. Для того что бы на экране появлялось окно с предложением о покупке подсказке необходимо его создать. В начальный момент оно должно быть невидимым и прокликиваем, это состояние задано в машине store.  Создадим в ней 5 подобъектов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.1. Первые два переименуем в '''black''' и '''rec''', изменим им тип на '''[[Rectangle|Rectangle]]'''.&lt;br /&gt;
&lt;br /&gt;
Откроем объект  black, пропишем ему свойствах, оставив его пустым рамку, и цвет фона&lt;br /&gt;
&lt;br /&gt;
[[Файл:Black.PNG]]&lt;br /&gt;
&lt;br /&gt;
Для объекта rec зададим рамку и текстуру заливки. Для этого из базы ресурсов мышкой перетащим соответствующие элементы. Ресурсы для графики находятся в предыдущем уроке. Чтобы прямоугольник отображался правильно, задайте ему ненулевые размеры.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Rec.PNG]]&lt;br /&gt;
&lt;br /&gt;
Чтобы прямоугольник отображался правильно, задайте ему ненулевые параметры размера.&lt;br /&gt;
&lt;br /&gt;
1.2. Третьему элементу поменяем тип на text с текстом&lt;br /&gt;
&lt;br /&gt;
[[Файл:Text.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.3. Четвертый и пятый объекты сделаем кнопками, и назовем их '''ok''' – купить подсказку, '''no''' – отказаться от покупки. &lt;br /&gt;
&lt;br /&gt;
Для кнопки ok из базы ресурсов выберем внешний вид&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok1.PNG]]&lt;br /&gt;
&lt;br /&gt;
и зададим переход на совершение или провал покупки. Для этого кликнем правой кнопкой мыши на свойстве позиционирование и добавим свойство совершить in-app покупку, заполним для нее поля как указано на картинки&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok2.PNG]]&lt;br /&gt;
&lt;br /&gt;
Аналогично  поступим с кнопкой no. Добавим графический ресурс и  свойство «изменить состояние объекта», которое будет закрывать окно с предложением о покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:No1.PNG]]         [[Файл:No2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Таким же само сделаем со сценой error. В ней создадим четыре объекта: два rectangle: '''rec_error''' –  пустой, '''black_error''' — оформленный  в такую же рамку; кнопку '''buy''', которая будет делать активным состояние error; текстовый объект '''text_error'''  с текстом «error!»&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy1.PNG]]&lt;br /&gt;
 &lt;br /&gt;
Разместим все объекты так, что бы картинка хорошо смотрелась. Сохраним все изменения и запустим вьювер. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Снимок1.PNG]] &lt;br /&gt;
&lt;br /&gt;
Сейчас при покупке подсказки количество покупок не имеет лимита, по этому вывод ошибки мы не получим. Этот параметр в реальной игре будет реализован с помощью объекта store, заданием ему соответствующих свойств.&lt;br /&gt;
&lt;br /&gt;
== Patchwork ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_08.1, создать экран Lesson_08.2.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_1.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08.2 создать новую сцену 08, в которую (через ResourcesEditor) добавить графические ресурсы (bg_game, panel_down, btb_replay_normal) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»). В редактор ресурсов добавить графику нашего будущего Patchwork: level_17, level_17_mask.&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов ===&lt;br /&gt;
&lt;br /&gt;
1. Создадим на сцене 08 еще два объекта. Для этого нажмем правой кнопкой мыши по сцене и выберем &amp;quot;Создать объект в текущем элементе&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Переименуем один из созданных объектов в Patchwork, а другой в table.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_4.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
3. Теперь будем изменять тип объектов на сцене, чтобы получить нужные нам элементы. Графические ресурсы bg_game и panel_down оставляем без изменений. Ресурсу btb_replay_normal изменяем тип на button. Объекту Patchwork меняем тип на patchwork, table изменяем на тип table.&lt;br /&gt;
4. Теперь объекты нужно разместить на сцене. Обратим внимание на то, что два последних объекта которые мы добавили без графического ресурса. По умолчанию, создаваемые на сцене объекты имеют размер 100х100 пикселей. Увеличим размер таблицы по высоте до 450 пикселей и перетащим ее влево, поместив над объектом panel_down.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
Кнопку поместим в левый нижний угол. Добиваемся такого расположения объектов, как показанно на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
5. Настроим наши объекты. Для кнопки btb_replay_normal в поле &amp;quot;перейти на&amp;quot; укажите текущий экран Lesson_8.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для таблицы измените следующие параметры&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для Patchwork устанавливаем следующие настройки. Обратите внимание, что поля &amp;quot;карт.спереди&amp;quot; и &amp;quot;шаблон&amp;quot; заполняются перетаскиванием графического ресурса из редактора ресурсов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_9.jpg]]&lt;br /&gt;
&lt;br /&gt;
6. Для корректной работы вашего Patchwork необходимо, чтобы таблица находилась выше Patchwork по дереву объектов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_10.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Проверьте выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08.2, создать новый экран Lesson_08.3&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену с названием game.&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08.2).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену game (экрана Lesson_08.3).&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить картинку пэчворка и маски на другую, имеющуюся в базе ресурсов;&lt;br /&gt;
&lt;br /&gt;
b) изменить настройки кнопки рестарта таким образом, чтобы не переходить на экран Lesson_08.3, а сразу передавать пэчворку состояние mix.&lt;br /&gt;
----&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hint_counter_na_max.png&amp;diff=9210</id>
		<title>Файл:Hint counter na max.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hint_counter_na_max.png&amp;diff=9210"/>
		<updated>2017-11-15T08:56:53Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A1%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA.PNG&amp;diff=9209</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%A1%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA.PNG&amp;diff=9209"/>
		<updated>2017-11-15T08:56:01Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: Dkamkov загрузил новую версию Файл:Счетчик.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9208</id>
		<title>Настройка миниигр</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9208"/>
		<updated>2017-11-15T08:52:54Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' изучить настройки объектов, реализующих различные минигры.&lt;br /&gt;
&lt;br /&gt;
'''Задачи:''' &lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Puzzle&lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Patchwork &lt;br /&gt;
&lt;br /&gt;
== Puzzle ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_07.1, создать экран Lesson_08.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 1.png]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08 создать новые сцены 08 и Buttons, в которую (через ResourcesEditor) добавить графические ресурсы (Level_01, hint_normal в папку 05 и hint_normal, ico_R_normal2 в папку Buttons) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 2.png]]  [[Файл:08 3.png]]&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов, создание машин состояний ===&lt;br /&gt;
	&lt;br /&gt;
1. В сцене 08 изменить название графического ресурса hint_normal на applause и в общих настройках элемента удалить саму графику через модификаторы → res.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 4.png]]&lt;br /&gt;
&lt;br /&gt;
2. Графическое изображение level_01 перевести в тип [[Puzzle|puzzle]] и установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Объект applause перевести в тип машина и прописать ему состояния on и off.&lt;br /&gt;
&lt;br /&gt;
4. В состоянии on добавить команду play (проиграть звук) и в списке команды выбрать snd (короткий звук), подгружаемый с помощью ResourcesEditor из папки ресурсов Level_08; &lt;br /&gt;
&lt;br /&gt;
[[Файл:08 6.png]]&lt;br /&gt;
&lt;br /&gt;
5. Создать новое состояние с именем off. В общих настройка свойства элемента изначально установить состояние off.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 7.png]]  [[Файл:08 8.png]]&lt;br /&gt;
&lt;br /&gt;
6. Далее перейти к сцене Buttons, перевести графические объекты hint_normal, ico_R_normal2 в тип button, в свойстве элемента установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 9.png]]  [[Файл:08 10.png]]&lt;br /&gt;
&lt;br /&gt;
''Кнопка R (переиграть)'' — кнопка, запускающая игру Puzzle сначала. В общих настройках свойства элемента устанавливаем, в какое начало должна возвращать кнопка (в нашем случае перейти на экран Lesson_08).Для данной игры, мы сделали переход на экран &amp;lt;tt&amp;gt;Lesson_08&amp;lt;/tt&amp;gt;, который запускает игру сначала. Но в дальнейшем, чтобы не переводить все объекты в начальное состояние  правильнее будет, в графе '''«изменить состояние»''' выбрать объект &amp;lt;tt&amp;gt;Level_01&amp;lt;/tt&amp;gt; и указать ему состояние &amp;lt;tt&amp;gt;mix&amp;lt;/tt&amp;gt;, которое означает, что игра возвращается в состояние перемешивания картинок, а не запускает всю игру заново.&lt;br /&gt;
	&lt;br /&gt;
7. В объекте (кнопке) hint_normal нажать правой кнопкой и выбрать изменить состояние объекта → потом выбрать объект level_01 и вписать состояние hint, которое означает, что при нажатии кнопки, в качестве подсказки, игра покажет картинку в собранном виде.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 11.png]]  [[Файл:08 12.png]]&lt;br /&gt;
&lt;br /&gt;
''hint'' – кнопка, реализующая подсказку на экране поиска.&lt;br /&gt;
&lt;br /&gt;
8. Вернуться на сцену 08 к объекту  level_01 и в общих настройках свойства элемента изменить состояние объекта → выбрать объект applause и вписать состояние on.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 13.png]]&lt;br /&gt;
&lt;br /&gt;
9. Проверить выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08, создать новый экран Lesson_08.1&lt;br /&gt;
&lt;br /&gt;
2. Создать новые сцены (с названием 08.1 и Buttons).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08) и Buttons (экрана Lesson_08).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену 08.1 и Buttons (экрана Lesson_08.1).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 15.png]]&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить звук аплодисментов другим аудиофайлом, имеющимся в базе ресурсов;&lt;br /&gt;
 &lt;br /&gt;
b) в пазле изменить количество разбиваемых частей на шесть (3х2), добавить сетку, изменить перестановку ячеек на смешивание по alpha, изменить время смешивания на 500 миллисекунд;&lt;br /&gt;
 &lt;br /&gt;
c) при нажатии hint (подсказки) изменить время показа подсказки на 2 секунды, изменить время финального показа пазла на 3 секунды, установить время закрытия пазла 500 миллисекунд.&lt;br /&gt;
&lt;br /&gt;
6. Сделать счетчик подсказок, используя объект '''[[Store|Store]]''' создать возможность совершать покупки подсказок за реальные деньги.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши по экрану Lesson_08.1  создадим новый экран '''lessons_8_1_1'''. Добавим в него сцены str_8_1 и Button_8_1. В сцену str_8_1 поместим объекты из экрана  Lesson_08.1: level_01, applause; оставим их без изменения. В сцену  Button_8_1 скопируем из Lesson_08.1 кнопки hint_normal и ico_R_normal2 и создадим новый объект, поменяв ему тип на '''counter''' (счетчик) и названия на '''hint'''. Добавим ресурс из базы ресурсов —  анимацию brown_big. Счетчик  hint будет считывать купленные подсказки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Счетчик.PNG]]&lt;br /&gt;
&lt;br /&gt;
В  hint_normal добавим подобъект, сделаем его машиной и назовем '''hint_m'''.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши на сцену  Button_8_1 создадим новые сцены store и error, которые, соответственно, будут предназначены для совершения покупок — начисления подсказок и окна с ошибкой при невозможности купить подсказку.&lt;br /&gt;
&lt;br /&gt;
В сцену  store добавим две машины:  '''buy''' и '''store'''; в  error - машину  '''error'''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:8 1 1 .PNG]]&lt;br /&gt;
&lt;br /&gt;
Для машины  buy зададим состояния,  при котором значении параметра hint=1, то есть  она начисляет подсказку:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy na max.png]]&lt;br /&gt;
&lt;br /&gt;
Соответственно в машине  store зададим считывания со счетчика  и  прозрачность экрана:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store.PNG]]&lt;br /&gt;
&lt;br /&gt;
Машина error будет отвечать за вывод ошибки при неудачной покупке, то есть задает прозрачность экрана с ошибкой&lt;br /&gt;
&lt;br /&gt;
[[Файл:Error.PNG]]&lt;br /&gt;
&lt;br /&gt;
Вернемся к машине hint_m сцены Button_8_1 и пропишем для нее состояния. Машина отвечает за начисление подсказки при удачной покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hint m.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Совершение покупки'''&lt;br /&gt;
&lt;br /&gt;
Для того что бы покупку можно было совершить необходимо задать в глобальных свойствах возможность совершения покупки. Для этого на сцене в глобальном экране opt добавим новый элемент, которому изменим тип на store. В свойствах объекта store  кликнем правой кнопкой мыши на свойстве wallet, вставляем новое свойство — '''in-app покупка'''. Добавляем поля для покупки: внутренний id, и выбираем расходуемая.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Описание объекта Store'''&lt;br /&gt;
&lt;br /&gt;
Объект '''Store''' необходим для описания InApp покупок (позволяют продавать отдельные бонусы, паки и т.п.) в игре.&lt;br /&gt;
&lt;br /&gt;
Основные параметры объекта Store&lt;br /&gt;
&lt;br /&gt;
''id покупки'' – внутренний id покупки.&lt;br /&gt;
&lt;br /&gt;
''Расходуемая'' – 1 – покупка расходуемая, 0 – покупка раз и навсегда, если параметр не указан, по-умолчанию покупка – одноразовая.&lt;br /&gt;
&lt;br /&gt;
''объект (restore)'' – объект - Слушатель восстановления покупки. Этому объекту будет сообщено об успехе восстановления этой покупки покупки.&lt;br /&gt;
состояние (restore) – это состояние будет установлено объекту при успешном восстановлении этой покупки.&lt;br /&gt;
&lt;br /&gt;
'''Для того, чтобы объект Store работал во Вьювере, нужно подкорректировать файл app.icf'''&lt;br /&gt;
&lt;br /&gt;
1. Найти файл app.icf в папке с вашим проектом.&lt;br /&gt;
&lt;br /&gt;
2. Открыть его и найти тег [Game].&lt;br /&gt;
&lt;br /&gt;
3. В теге Game добавить строку purchaseEverything=1.&lt;br /&gt;
&lt;br /&gt;
4. Сохранить файл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Game]&lt;br /&gt;
purchaseEverything=1&lt;br /&gt;
DispFixRot=&amp;quot;Landscape&amp;quot;&lt;br /&gt;
# comments and whitespace stripped by deployment tool&lt;br /&gt;
debug=&amp;quot;Absolutist-2253&amp;quot;&lt;br /&gt;
show_build_date=1&lt;br /&gt;
AppTitle=&amp;quot;Viewer&amp;quot;&lt;br /&gt;
DebuggerIP=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
DebuggerPort=5322&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Оформление'''&lt;br /&gt;
&lt;br /&gt;
Теперь перейдем к оформлению. Для того что бы на экране появлялось окно с предложением о покупке подсказке необходимо его создать. В начальный момент оно должно быть невидимым и прокликиваем, это состояние задано в машине store.  Создадим в ней 5 подобъектов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.1. Первые два переименуем в '''black''' и '''rec''', изменим им тип на '''[[Rectangle|Rectangle]]'''.&lt;br /&gt;
&lt;br /&gt;
Откроем объект  black, пропишем ему свойствах, оставив его пустым рамку, и цвет фона&lt;br /&gt;
&lt;br /&gt;
[[Файл:Black.PNG]]&lt;br /&gt;
&lt;br /&gt;
Для объекта rec зададим рамку и текстуру заливки. Для этого из базы ресурсов мышкой перетащим соответствующие элементы. Ресурсы для графики находятся в предыдущем уроке. Чтобы прямоугольник отображался правильно, задайте ему ненулевые размеры.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Rec.PNG]]&lt;br /&gt;
&lt;br /&gt;
Чтобы прямоугольник отображался правильно, задайте ему ненулевые параметры размера.&lt;br /&gt;
&lt;br /&gt;
1.2. Третьему элементу поменяем тип на text с текстом&lt;br /&gt;
&lt;br /&gt;
[[Файл:Text.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.3. Четвертый и пятый объекты сделаем кнопками, и назовем их '''ok''' – купить подсказку, '''no''' – отказаться от покупки. &lt;br /&gt;
&lt;br /&gt;
Для кнопки ok из базы ресурсов выберем внешний вид&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok1.PNG]]&lt;br /&gt;
&lt;br /&gt;
и зададим переход на совершение или провал покупки. Для этого кликнем правой кнопкой мыши на свойстве позиционирование и добавим свойство совершить in-app покупку, заполним для нее поля как указано на картинки&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok2.PNG]]&lt;br /&gt;
&lt;br /&gt;
Аналогично  поступим с кнопкой no. Добавим графический ресурс и  свойство «изменить состояние объекта», которое будет закрывать окно с предложением о покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:No1.PNG]]         [[Файл:No2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Таким же само сделаем со сценой error. В ней создадим четыре объекта: два rectangle: '''rec_error''' –  пустой, '''black_error''' — оформленный  в такую же рамку; кнопку '''buy''', которая будет делать активным состояние error; текстовый объект '''text_error'''  с текстом «error!»&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy1.PNG]]&lt;br /&gt;
 &lt;br /&gt;
Разместим все объекты так, что бы картинка хорошо смотрелась. Сохраним все изменения и запустим вьювер. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Снимок1.PNG]] &lt;br /&gt;
&lt;br /&gt;
Сейчас при покупке подсказки количество покупок не имеет лимита, по этому вывод ошибки мы не получим. Этот параметр в реальной игре будет реализован с помощью объекта store, заданием ему соответствующих свойств.&lt;br /&gt;
&lt;br /&gt;
== Patchwork ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_08.1, создать экран Lesson_08.2.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_1.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08.2 создать новую сцену 08, в которую (через ResourcesEditor) добавить графические ресурсы (bg_game, panel_down, btb_replay_normal) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»). В редактор ресурсов добавить графику нашего будущего Patchwork: level_17, level_17_mask.&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов ===&lt;br /&gt;
&lt;br /&gt;
1. Создадим на сцене 08 еще два объекта. Для этого нажмем правой кнопкой мыши по сцене и выберем &amp;quot;Создать объект в текущем элементе&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Переименуем один из созданных объектов в Patchwork, а другой в table.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_4.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
3. Теперь будем изменять тип объектов на сцене, чтобы получить нужные нам элементы. Графические ресурсы bg_game и panel_down оставляем без изменений. Ресурсу btb_replay_normal изменяем тип на button. Объекту Patchwork меняем тип на patchwork, table изменяем на тип table.&lt;br /&gt;
4. Теперь объекты нужно разместить на сцене. Обратим внимание на то, что два последних объекта которые мы добавили без графического ресурса. По умолчанию, создаваемые на сцене объекты имеют размер 100х100 пикселей. Увеличим размер таблицы по высоте до 450 пикселей и перетащим ее влево, поместив над объектом panel_down.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
Кнопку поместим в левый нижний угол. Добиваемся такого расположения объектов, как показанно на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
5. Настроим наши объекты. Для кнопки btb_replay_normal в поле &amp;quot;перейти на&amp;quot; укажите текущий экран Lesson_8.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для таблицы измените следующие параметры&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для Patchwork устанавливаем следующие настройки. Обратите внимание, что поля &amp;quot;карт.спереди&amp;quot; и &amp;quot;шаблон&amp;quot; заполняются перетаскиванием графического ресурса из редактора ресурсов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_9.jpg]]&lt;br /&gt;
&lt;br /&gt;
6. Для корректной работы вашего Patchwork необходимо, чтобы таблица находилась выше Patchwork по дереву объектов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_10.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Проверьте выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08.2, создать новый экран Lesson_08.3&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену с названием game.&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08.2).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену game (экрана Lesson_08.3).&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить картинку пэчворка и маски на другую, имеющуюся в базе ресурсов;&lt;br /&gt;
&lt;br /&gt;
b) изменить настройки кнопки рестарта таким образом, чтобы не переходить на экран Lesson_08.3, а сразу передавать пэчворку состояние mix.&lt;br /&gt;
----&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9207</id>
		<title>Настройка миниигр</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9207"/>
		<updated>2017-11-15T08:52:10Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' изучить настройки объектов, реализующих различные минигры.&lt;br /&gt;
&lt;br /&gt;
'''Задачи:''' &lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Puzzle&lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Patchwork &lt;br /&gt;
&lt;br /&gt;
== Puzzle ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_07.1, создать экран Lesson_08.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 1.png]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08 создать новые сцены 08 и Buttons, в которую (через ResourcesEditor) добавить графические ресурсы (Level_01, hint_normal в папку 05 и hint_normal, ico_R_normal2 в папку Buttons) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 2.png]]  [[Файл:08 3.png]]&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов, создание машин состояний ===&lt;br /&gt;
	&lt;br /&gt;
1. В сцене 08 изменить название графического ресурса hint_normal на applause и в общих настройках элемента удалить саму графику через модификаторы → res.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 4.png]]&lt;br /&gt;
&lt;br /&gt;
2. Графическое изображение level_01 перевести в тип [[Puzzle|puzzle]] и установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Объект applause перевести в тип машина и прописать ему состояния on и off.&lt;br /&gt;
&lt;br /&gt;
4. В состоянии on добавить команду play (проиграть звук) и в списке команды выбрать snd (короткий звук), подгружаемый с помощью ResourcesEditor из папки ресурсов Level_08; &lt;br /&gt;
&lt;br /&gt;
[[Файл:08 6.png]]&lt;br /&gt;
&lt;br /&gt;
5. Создать новое состояние с именем off. В общих настройка свойства элемента изначально установить состояние off.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 7.png]]  [[Файл:08 8.png]]&lt;br /&gt;
&lt;br /&gt;
6. Далее перейти к сцене Buttons, перевести графические объекты hint_normal, ico_R_normal2 в тип button, в свойстве элемента установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 9.png]]  [[Файл:08 10.png]]&lt;br /&gt;
&lt;br /&gt;
''Кнопка R (переиграть)'' — кнопка, запускающая игру Puzzle сначала. В общих настройках свойства элемента устанавливаем, в какое начало должна возвращать кнопка (в нашем случае перейти на экран Lesson_08).Для данной игры, мы сделали переход на экран &amp;lt;tt&amp;gt;Lesson_08&amp;lt;/tt&amp;gt;, который запускает игру сначала. Но в дальнейшем, чтобы не переводить все объекты в начальное состояние  правильнее будет, в графе '''«изменить состояние»''' выбрать объект &amp;lt;tt&amp;gt;Level_01&amp;lt;/tt&amp;gt; и указать ему состояние &amp;lt;tt&amp;gt;mix&amp;lt;/tt&amp;gt;, которое означает, что игра возвращается в состояние перемешивания картинок, а не запускает всю игру заново.&lt;br /&gt;
	&lt;br /&gt;
7. В объекте (кнопке) hint_normal нажать правой кнопкой и выбрать изменить состояние объекта → потом выбрать объект level_01 и вписать состояние hint, которое означает, что при нажатии кнопки, в качестве подсказки, игра покажет картинку в собранном виде.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 11.png]]  [[Файл:08 12.png]]&lt;br /&gt;
&lt;br /&gt;
''hint'' – кнопка, реализующая подсказку на экране поиска.&lt;br /&gt;
&lt;br /&gt;
8. Вернуться на сцену 08 к объекту  level_01 и в общих настройках свойства элемента изменить состояние объекта → выбрать объект applause и вписать состояние on.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 13.png]]&lt;br /&gt;
&lt;br /&gt;
9. Проверить выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08, создать новый экран Lesson_08.1&lt;br /&gt;
&lt;br /&gt;
2. Создать новые сцены (с названием 08.1 и Buttons).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08) и Buttons (экрана Lesson_08).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену 08.1 и Buttons (экрана Lesson_08.1).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 15.png]]&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить звук аплодисментов другим аудиофайлом, имеющимся в базе ресурсов;&lt;br /&gt;
 &lt;br /&gt;
b) в пазле изменить количество разбиваемых частей на шесть (3х2), добавить сетку, изменить перестановку ячеек на смешивание по alpha, изменить время смешивания на 500 миллисекунд;&lt;br /&gt;
 &lt;br /&gt;
c) при нажатии hint (подсказки) изменить время показа подсказки на 2 секунды, изменить время финального показа пазла на 3 секунды, установить время закрытия пазла 500 миллисекунд.&lt;br /&gt;
&lt;br /&gt;
6. Сделать счетчик подсказок, используя объект '''[[Store|Store]]''' создать возможность совершать покупки подсказок за реальные деньги.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши по экрану Lesson_08.1  создадим новый экран '''lessons_8_1_1'''. Добавим в него сцены str_8_1 и Button_8_1. В сцену str_8_1 поместим объекты из экрана  Lesson_08.1: level_01, applause; оставим их без изменения. В сцену  Button_8_1 скопируем из Lesson_08.1 кнопки hint_normal и ico_R_normal2 и создадим новый объект, поменяв ему тип на '''counter''' (счетчик) и названия на '''hint'''. Добавим ресурс из базы ресурсов —  анимацию brown_big. Счетчик  hint будет считывать купленные подсказки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Счетчик.PNG]]&lt;br /&gt;
&lt;br /&gt;
В  hint_normal добавим подобъект, сделаем его машиной и назовем '''hint_m'''.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши на сцену  Button_8_1 создадим новые сцены store и error, которые, соответственно, будут предназначены для совершения покупок — начисления подсказок и окна с ошибкой при невозможности купить подсказку.&lt;br /&gt;
&lt;br /&gt;
В сцену  store добавим две машины:  '''buy''' и '''store'''; в  error - машину  '''error'''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:8 1 1 .PNG]]&lt;br /&gt;
&lt;br /&gt;
Для машины  buy зададим состояния,  при котором значении параметра hint=1, то есть  она начисляет подсказку:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy na max.png]]&lt;br /&gt;
&lt;br /&gt;
Соответственно в машине  store зададим считывания со счетчика  и  прозрачность экрана:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store.PNG]]&lt;br /&gt;
&lt;br /&gt;
Машина error будет отвечать за вывод ошибки при неудачной покупке, то есть задает прозрачность экрана с ошибкой&lt;br /&gt;
&lt;br /&gt;
[[Файл:Error.PNG]]&lt;br /&gt;
&lt;br /&gt;
Вернемся к машине hint_m сцены Button_8_1 и пропишем для нее состояния. Машина отвечает за начисление подсказки при удачной покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hint m.PNG|800px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Совершение покупки'''&lt;br /&gt;
&lt;br /&gt;
Для того что бы покупку можно было совершить необходимо задать в глобальных свойствах возможность совершения покупки. Для этого на сцене в глобальном экране opt добавим новый элемент, которому изменим тип на store. В свойствах объекта store  кликнем правой кнопкой мыши на свойстве wallet, вставляем новое свойство — '''in-app покупка'''. Добавляем поля для покупки: внутренний id, и выбираем расходуемая.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Описание объекта Store'''&lt;br /&gt;
&lt;br /&gt;
Объект '''Store''' необходим для описания InApp покупок (позволяют продавать отдельные бонусы, паки и т.п.) в игре.&lt;br /&gt;
&lt;br /&gt;
Основные параметры объекта Store&lt;br /&gt;
&lt;br /&gt;
''id покупки'' – внутренний id покупки.&lt;br /&gt;
&lt;br /&gt;
''Расходуемая'' – 1 – покупка расходуемая, 0 – покупка раз и навсегда, если параметр не указан, по-умолчанию покупка – одноразовая.&lt;br /&gt;
&lt;br /&gt;
''объект (restore)'' – объект - Слушатель восстановления покупки. Этому объекту будет сообщено об успехе восстановления этой покупки покупки.&lt;br /&gt;
состояние (restore) – это состояние будет установлено объекту при успешном восстановлении этой покупки.&lt;br /&gt;
&lt;br /&gt;
'''Для того, чтобы объект Store работал во Вьювере, нужно подкорректировать файл app.icf'''&lt;br /&gt;
&lt;br /&gt;
1. Найти файл app.icf в папке с вашим проектом.&lt;br /&gt;
&lt;br /&gt;
2. Открыть его и найти тег [Game].&lt;br /&gt;
&lt;br /&gt;
3. В теге Game добавить строку purchaseEverything=1.&lt;br /&gt;
&lt;br /&gt;
4. Сохранить файл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Game]&lt;br /&gt;
purchaseEverything=1&lt;br /&gt;
DispFixRot=&amp;quot;Landscape&amp;quot;&lt;br /&gt;
# comments and whitespace stripped by deployment tool&lt;br /&gt;
debug=&amp;quot;Absolutist-2253&amp;quot;&lt;br /&gt;
show_build_date=1&lt;br /&gt;
AppTitle=&amp;quot;Viewer&amp;quot;&lt;br /&gt;
DebuggerIP=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
DebuggerPort=5322&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Оформление'''&lt;br /&gt;
&lt;br /&gt;
Теперь перейдем к оформлению. Для того что бы на экране появлялось окно с предложением о покупке подсказке необходимо его создать. В начальный момент оно должно быть невидимым и прокликиваем, это состояние задано в машине store.  Создадим в ней 5 подобъектов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.1. Первые два переименуем в '''black''' и '''rec''', изменим им тип на '''[[Rectangle|Rectangle]]'''.&lt;br /&gt;
&lt;br /&gt;
Откроем объект  black, пропишем ему свойствах, оставив его пустым рамку, и цвет фона&lt;br /&gt;
&lt;br /&gt;
[[Файл:Black.PNG]]&lt;br /&gt;
&lt;br /&gt;
Для объекта rec зададим рамку и текстуру заливки. Для этого из базы ресурсов мышкой перетащим соответствующие элементы. Ресурсы для графики находятся в предыдущем уроке. Чтобы прямоугольник отображался правильно, задайте ему ненулевые размеры.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Rec.PNG]]&lt;br /&gt;
&lt;br /&gt;
Чтобы прямоугольник отображался правильно, задайте ему ненулевые параметры размера.&lt;br /&gt;
&lt;br /&gt;
1.2. Третьему элементу поменяем тип на text с текстом&lt;br /&gt;
&lt;br /&gt;
[[Файл:Text.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.3. Четвертый и пятый объекты сделаем кнопками, и назовем их '''ok''' – купить подсказку, '''no''' – отказаться от покупки. &lt;br /&gt;
&lt;br /&gt;
Для кнопки ok из базы ресурсов выберем внешний вид&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok1.PNG]]&lt;br /&gt;
&lt;br /&gt;
и зададим переход на совершение или провал покупки. Для этого кликнем правой кнопкой мыши на свойстве позиционирование и добавим свойство совершить in-app покупку, заполним для нее поля как указано на картинки&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok2.PNG]]&lt;br /&gt;
&lt;br /&gt;
Аналогично  поступим с кнопкой no. Добавим графический ресурс и  свойство «изменить состояние объекта», которое будет закрывать окно с предложением о покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:No1.PNG]]         [[Файл:No2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Таким же само сделаем со сценой error. В ней создадим четыре объекта: два rectangle: '''rec_error''' –  пустой, '''black_error''' — оформленный  в такую же рамку; кнопку '''buy''', которая будет делать активным состояние error; текстовый объект '''text_error'''  с текстом «error!»&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy1.PNG]]&lt;br /&gt;
 &lt;br /&gt;
Разместим все объекты так, что бы картинка хорошо смотрелась. Сохраним все изменения и запустим вьювер. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Снимок1.PNG]] &lt;br /&gt;
&lt;br /&gt;
Сейчас при покупке подсказки количество покупок не имеет лимита, по этому вывод ошибки мы не получим. Этот параметр в реальной игре будет реализован с помощью объекта store, заданием ему соответствующих свойств.&lt;br /&gt;
&lt;br /&gt;
== Patchwork ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_08.1, создать экран Lesson_08.2.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_1.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08.2 создать новую сцену 08, в которую (через ResourcesEditor) добавить графические ресурсы (bg_game, panel_down, btb_replay_normal) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»). В редактор ресурсов добавить графику нашего будущего Patchwork: level_17, level_17_mask.&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов ===&lt;br /&gt;
&lt;br /&gt;
1. Создадим на сцене 08 еще два объекта. Для этого нажмем правой кнопкой мыши по сцене и выберем &amp;quot;Создать объект в текущем элементе&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Переименуем один из созданных объектов в Patchwork, а другой в table.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_4.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
3. Теперь будем изменять тип объектов на сцене, чтобы получить нужные нам элементы. Графические ресурсы bg_game и panel_down оставляем без изменений. Ресурсу btb_replay_normal изменяем тип на button. Объекту Patchwork меняем тип на patchwork, table изменяем на тип table.&lt;br /&gt;
4. Теперь объекты нужно разместить на сцене. Обратим внимание на то, что два последних объекта которые мы добавили без графического ресурса. По умолчанию, создаваемые на сцене объекты имеют размер 100х100 пикселей. Увеличим размер таблицы по высоте до 450 пикселей и перетащим ее влево, поместив над объектом panel_down.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
Кнопку поместим в левый нижний угол. Добиваемся такого расположения объектов, как показанно на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
5. Настроим наши объекты. Для кнопки btb_replay_normal в поле &amp;quot;перейти на&amp;quot; укажите текущий экран Lesson_8.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для таблицы измените следующие параметры&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для Patchwork устанавливаем следующие настройки. Обратите внимание, что поля &amp;quot;карт.спереди&amp;quot; и &amp;quot;шаблон&amp;quot; заполняются перетаскиванием графического ресурса из редактора ресурсов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_9.jpg]]&lt;br /&gt;
&lt;br /&gt;
6. Для корректной работы вашего Patchwork необходимо, чтобы таблица находилась выше Patchwork по дереву объектов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_10.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Проверьте выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08.2, создать новый экран Lesson_08.3&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену с названием game.&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08.2).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену game (экрана Lesson_08.3).&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить картинку пэчворка и маски на другую, имеющуюся в базе ресурсов;&lt;br /&gt;
&lt;br /&gt;
b) изменить настройки кнопки рестарта таким образом, чтобы не переходить на экран Lesson_08.3, а сразу передавать пэчворку состояние mix.&lt;br /&gt;
----&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9206</id>
		<title>Настройка миниигр</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9206"/>
		<updated>2017-11-15T08:51:19Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' изучить настройки объектов, реализующих различные минигры.&lt;br /&gt;
&lt;br /&gt;
'''Задачи:''' &lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Puzzle&lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Patchwork &lt;br /&gt;
&lt;br /&gt;
== Puzzle ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_07.1, создать экран Lesson_08.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 1.png]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08 создать новые сцены 08 и Buttons, в которую (через ResourcesEditor) добавить графические ресурсы (Level_01, hint_normal в папку 05 и hint_normal, ico_R_normal2 в папку Buttons) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 2.png]]  [[Файл:08 3.png]]&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов, создание машин состояний ===&lt;br /&gt;
	&lt;br /&gt;
1. В сцене 08 изменить название графического ресурса hint_normal на applause и в общих настройках элемента удалить саму графику через модификаторы → res.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 4.png]]&lt;br /&gt;
&lt;br /&gt;
2. Графическое изображение level_01 перевести в тип [[Puzzle|puzzle]] и установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Объект applause перевести в тип машина и прописать ему состояния on и off.&lt;br /&gt;
&lt;br /&gt;
4. В состоянии on добавить команду play (проиграть звук) и в списке команды выбрать snd (короткий звук), подгружаемый с помощью ResourcesEditor из папки ресурсов Level_08; &lt;br /&gt;
&lt;br /&gt;
[[Файл:08 6.png]]&lt;br /&gt;
&lt;br /&gt;
5. Создать новое состояние с именем off. В общих настройка свойства элемента изначально установить состояние off.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 7.png]]  [[Файл:08 8.png]]&lt;br /&gt;
&lt;br /&gt;
6. Далее перейти к сцене Buttons, перевести графические объекты hint_normal, ico_R_normal2 в тип button, в свойстве элемента установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 9.png]]  [[Файл:08 10.png]]&lt;br /&gt;
&lt;br /&gt;
''Кнопка R (переиграть)'' — кнопка, запускающая игру Puzzle сначала. В общих настройках свойства элемента устанавливаем, в какое начало должна возвращать кнопка (в нашем случае перейти на экран Lesson_08).Для данной игры, мы сделали переход на экран &amp;lt;tt&amp;gt;Lesson_08&amp;lt;/tt&amp;gt;, который запускает игру сначала. Но в дальнейшем, чтобы не переводить все объекты в начальное состояние  правильнее будет, в графе '''«изменить состояние»''' выбрать объект &amp;lt;tt&amp;gt;Level_01&amp;lt;/tt&amp;gt; и указать ему состояние &amp;lt;tt&amp;gt;mix&amp;lt;/tt&amp;gt;, которое означает, что игра возвращается в состояние перемешивания картинок, а не запускает всю игру заново.&lt;br /&gt;
	&lt;br /&gt;
7. В объекте (кнопке) hint_normal нажать правой кнопкой и выбрать изменить состояние объекта → потом выбрать объект level_01 и вписать состояние hint, которое означает, что при нажатии кнопки, в качестве подсказки, игра покажет картинку в собранном виде.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 11.png]]  [[Файл:08 12.png]]&lt;br /&gt;
&lt;br /&gt;
''hint'' – кнопка, реализующая подсказку на экране поиска.&lt;br /&gt;
&lt;br /&gt;
8. Вернуться на сцену 08 к объекту  level_01 и в общих настройках свойства элемента изменить состояние объекта → выбрать объект applause и вписать состояние on.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 13.png]]&lt;br /&gt;
&lt;br /&gt;
9. Проверить выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08, создать новый экран Lesson_08.1&lt;br /&gt;
&lt;br /&gt;
2. Создать новые сцены (с названием 08.1 и Buttons).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08) и Buttons (экрана Lesson_08).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену 08.1 и Buttons (экрана Lesson_08.1).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 15.png]]&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить звук аплодисментов другим аудиофайлом, имеющимся в базе ресурсов;&lt;br /&gt;
 &lt;br /&gt;
b) в пазле изменить количество разбиваемых частей на шесть (3х2), добавить сетку, изменить перестановку ячеек на смешивание по alpha, изменить время смешивания на 500 миллисекунд;&lt;br /&gt;
 &lt;br /&gt;
c) при нажатии hint (подсказки) изменить время показа подсказки на 2 секунды, изменить время финального показа пазла на 3 секунды, установить время закрытия пазла 500 миллисекунд.&lt;br /&gt;
&lt;br /&gt;
6. Сделать счетчик подсказок, используя объект '''[[Store|Store]]''' создать возможность совершать покупки подсказок за реальные деньги.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши по экрану Lesson_08.1  создадим новый экран '''lessons_8_1_1'''. Добавим в него сцены str_8_1 и Button_8_1. В сцену str_8_1 поместим объекты из экрана  Lesson_08.1: level_01, applause; оставим их без изменения. В сцену  Button_8_1 скопируем из Lesson_08.1 кнопки hint_normal и ico_R_normal2 и создадим новый объект, поменяв ему тип на '''counter''' (счетчик) и названия на '''hint'''. Добавим ресурс из базы ресурсов —  анимацию brown_big. Счетчик  hint будет считывать купленные подсказки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Счетчик.PNG]]&lt;br /&gt;
&lt;br /&gt;
В  hint_normal добавим подобъект, сделаем его машиной и назовем '''hint_m'''.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши на сцену  Button_8_1 создадим новые сцены store и error, которые, соответственно, будут предназначены для совершения покупок — начисления подсказок и окна с ошибкой при невозможности купить подсказку.&lt;br /&gt;
&lt;br /&gt;
В сцену  store добавим две машины:  '''buy''' и '''store'''; в  error - машину  '''error'''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:8 1 1 .PNG]]&lt;br /&gt;
&lt;br /&gt;
Для машины  buy зададим состояния,  при котором значении параметра hint=1, то есть  она начисляет подсказку:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy na max.png]]&lt;br /&gt;
&lt;br /&gt;
Соответственно в машине  store зададим считывания со счетчика  и  прозрачность экрана:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store.PNG]]&lt;br /&gt;
&lt;br /&gt;
Машина error будет отвечать за вывод ошибки при неудачной покупке, то есть задает прозрачность экрана с ошибкой&lt;br /&gt;
&lt;br /&gt;
[[Файл:Error.PNG]]&lt;br /&gt;
&lt;br /&gt;
Вернемся к машине hint_m сцены Button_8_1 и пропишем для нее состояния. Машина отвечает за начисление подсказки при удачной покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hint m.PNG|500px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Совершение покупки'''&lt;br /&gt;
&lt;br /&gt;
Для того что бы покупку можно было совершить необходимо задать в глобальных свойствах возможность совершения покупки. Для этого на сцене в глобальном экране opt добавим новый элемент, которому изменим тип на store. В свойствах объекта store  кликнем правой кнопкой мыши на свойстве wallet, вставляем новое свойство — '''in-app покупка'''. Добавляем поля для покупки: внутренний id, и выбираем расходуемая.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Описание объекта Store'''&lt;br /&gt;
&lt;br /&gt;
Объект '''Store''' необходим для описания InApp покупок (позволяют продавать отдельные бонусы, паки и т.п.) в игре.&lt;br /&gt;
&lt;br /&gt;
Основные параметры объекта Store&lt;br /&gt;
&lt;br /&gt;
''id покупки'' – внутренний id покупки.&lt;br /&gt;
&lt;br /&gt;
''Расходуемая'' – 1 – покупка расходуемая, 0 – покупка раз и навсегда, если параметр не указан, по-умолчанию покупка – одноразовая.&lt;br /&gt;
&lt;br /&gt;
''объект (restore)'' – объект - Слушатель восстановления покупки. Этому объекту будет сообщено об успехе восстановления этой покупки покупки.&lt;br /&gt;
состояние (restore) – это состояние будет установлено объекту при успешном восстановлении этой покупки.&lt;br /&gt;
&lt;br /&gt;
'''Для того, чтобы объект Store работал во Вьювере, нужно подкорректировать файл app.icf'''&lt;br /&gt;
&lt;br /&gt;
1. Найти файл app.icf в папке с вашим проектом.&lt;br /&gt;
&lt;br /&gt;
2. Открыть его и найти тег [Game].&lt;br /&gt;
&lt;br /&gt;
3. В теге Game добавить строку purchaseEverything=1.&lt;br /&gt;
&lt;br /&gt;
4. Сохранить файл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Game]&lt;br /&gt;
purchaseEverything=1&lt;br /&gt;
DispFixRot=&amp;quot;Landscape&amp;quot;&lt;br /&gt;
# comments and whitespace stripped by deployment tool&lt;br /&gt;
debug=&amp;quot;Absolutist-2253&amp;quot;&lt;br /&gt;
show_build_date=1&lt;br /&gt;
AppTitle=&amp;quot;Viewer&amp;quot;&lt;br /&gt;
DebuggerIP=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
DebuggerPort=5322&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Оформление'''&lt;br /&gt;
&lt;br /&gt;
Теперь перейдем к оформлению. Для того что бы на экране появлялось окно с предложением о покупке подсказке необходимо его создать. В начальный момент оно должно быть невидимым и прокликиваем, это состояние задано в машине store.  Создадим в ней 5 подобъектов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.1. Первые два переименуем в '''black''' и '''rec''', изменим им тип на '''[[Rectangle|Rectangle]]'''.&lt;br /&gt;
&lt;br /&gt;
Откроем объект  black, пропишем ему свойствах, оставив его пустым рамку, и цвет фона&lt;br /&gt;
&lt;br /&gt;
[[Файл:Black.PNG]]&lt;br /&gt;
&lt;br /&gt;
Для объекта rec зададим рамку и текстуру заливки. Для этого из базы ресурсов мышкой перетащим соответствующие элементы. Ресурсы для графики находятся в предыдущем уроке. Чтобы прямоугольник отображался правильно, задайте ему ненулевые размеры.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Rec.PNG]]&lt;br /&gt;
&lt;br /&gt;
Чтобы прямоугольник отображался правильно, задайте ему ненулевые параметры размера.&lt;br /&gt;
&lt;br /&gt;
1.2. Третьему элементу поменяем тип на text с текстом&lt;br /&gt;
&lt;br /&gt;
[[Файл:Text.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.3. Четвертый и пятый объекты сделаем кнопками, и назовем их '''ok''' – купить подсказку, '''no''' – отказаться от покупки. &lt;br /&gt;
&lt;br /&gt;
Для кнопки ok из базы ресурсов выберем внешний вид&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok1.PNG]]&lt;br /&gt;
&lt;br /&gt;
и зададим переход на совершение или провал покупки. Для этого кликнем правой кнопкой мыши на свойстве позиционирование и добавим свойство совершить in-app покупку, заполним для нее поля как указано на картинки&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok2.PNG]]&lt;br /&gt;
&lt;br /&gt;
Аналогично  поступим с кнопкой no. Добавим графический ресурс и  свойство «изменить состояние объекта», которое будет закрывать окно с предложением о покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:No1.PNG]]         [[Файл:No2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Таким же само сделаем со сценой error. В ней создадим четыре объекта: два rectangle: '''rec_error''' –  пустой, '''black_error''' — оформленный  в такую же рамку; кнопку '''buy''', которая будет делать активным состояние error; текстовый объект '''text_error'''  с текстом «error!»&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy1.PNG]]&lt;br /&gt;
 &lt;br /&gt;
Разместим все объекты так, что бы картинка хорошо смотрелась. Сохраним все изменения и запустим вьювер. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Снимок1.PNG]] &lt;br /&gt;
&lt;br /&gt;
Сейчас при покупке подсказки количество покупок не имеет лимита, по этому вывод ошибки мы не получим. Этот параметр в реальной игре будет реализован с помощью объекта store, заданием ему соответствующих свойств.&lt;br /&gt;
&lt;br /&gt;
== Patchwork ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_08.1, создать экран Lesson_08.2.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_1.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08.2 создать новую сцену 08, в которую (через ResourcesEditor) добавить графические ресурсы (bg_game, panel_down, btb_replay_normal) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»). В редактор ресурсов добавить графику нашего будущего Patchwork: level_17, level_17_mask.&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов ===&lt;br /&gt;
&lt;br /&gt;
1. Создадим на сцене 08 еще два объекта. Для этого нажмем правой кнопкой мыши по сцене и выберем &amp;quot;Создать объект в текущем элементе&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Переименуем один из созданных объектов в Patchwork, а другой в table.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_4.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
3. Теперь будем изменять тип объектов на сцене, чтобы получить нужные нам элементы. Графические ресурсы bg_game и panel_down оставляем без изменений. Ресурсу btb_replay_normal изменяем тип на button. Объекту Patchwork меняем тип на patchwork, table изменяем на тип table.&lt;br /&gt;
4. Теперь объекты нужно разместить на сцене. Обратим внимание на то, что два последних объекта которые мы добавили без графического ресурса. По умолчанию, создаваемые на сцене объекты имеют размер 100х100 пикселей. Увеличим размер таблицы по высоте до 450 пикселей и перетащим ее влево, поместив над объектом panel_down.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
Кнопку поместим в левый нижний угол. Добиваемся такого расположения объектов, как показанно на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
5. Настроим наши объекты. Для кнопки btb_replay_normal в поле &amp;quot;перейти на&amp;quot; укажите текущий экран Lesson_8.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для таблицы измените следующие параметры&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для Patchwork устанавливаем следующие настройки. Обратите внимание, что поля &amp;quot;карт.спереди&amp;quot; и &amp;quot;шаблон&amp;quot; заполняются перетаскиванием графического ресурса из редактора ресурсов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_9.jpg]]&lt;br /&gt;
&lt;br /&gt;
6. Для корректной работы вашего Patchwork необходимо, чтобы таблица находилась выше Patchwork по дереву объектов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_10.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Проверьте выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08.2, создать новый экран Lesson_08.3&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену с названием game.&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08.2).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену game (экрана Lesson_08.3).&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить картинку пэчворка и маски на другую, имеющуюся в базе ресурсов;&lt;br /&gt;
&lt;br /&gt;
b) изменить настройки кнопки рестарта таким образом, чтобы не переходить на экран Lesson_08.3, а сразу передавать пэчворку состояние mix.&lt;br /&gt;
----&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hint_m.PNG&amp;diff=9205</id>
		<title>Файл:Hint m.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Hint_m.PNG&amp;diff=9205"/>
		<updated>2017-11-15T08:48:07Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: Dkamkov загрузил новую версию Файл:Hint m.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9204</id>
		<title>Настройка миниигр</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BC%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80&amp;diff=9204"/>
		<updated>2017-11-15T08:46:25Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
'''Цель:''' изучить настройки объектов, реализующих различные минигры.&lt;br /&gt;
&lt;br /&gt;
'''Задачи:''' &lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Puzzle&lt;br /&gt;
* создать уровень игры с объектом, содержащим тип механики Patchwork &lt;br /&gt;
&lt;br /&gt;
== Puzzle ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_07.1, создать экран Lesson_08.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 1.png]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08 создать новые сцены 08 и Buttons, в которую (через ResourcesEditor) добавить графические ресурсы (Level_01, hint_normal в папку 05 и hint_normal, ico_R_normal2 в папку Buttons) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 2.png]]  [[Файл:08 3.png]]&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов, создание машин состояний ===&lt;br /&gt;
	&lt;br /&gt;
1. В сцене 08 изменить название графического ресурса hint_normal на applause и в общих настройках элемента удалить саму графику через модификаторы → res.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 4.png]]&lt;br /&gt;
&lt;br /&gt;
2. Графическое изображение level_01 перевести в тип [[Puzzle|puzzle]] и установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 5.png]]&lt;br /&gt;
&lt;br /&gt;
3. Объект applause перевести в тип машина и прописать ему состояния on и off.&lt;br /&gt;
&lt;br /&gt;
4. В состоянии on добавить команду play (проиграть звук) и в списке команды выбрать snd (короткий звук), подгружаемый с помощью ResourcesEditor из папки ресурсов Level_08; &lt;br /&gt;
&lt;br /&gt;
[[Файл:08 6.png]]&lt;br /&gt;
&lt;br /&gt;
5. Создать новое состояние с именем off. В общих настройка свойства элемента изначально установить состояние off.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 7.png]]  [[Файл:08 8.png]]&lt;br /&gt;
&lt;br /&gt;
6. Далее перейти к сцене Buttons, перевести графические объекты hint_normal, ico_R_normal2 в тип button, в свойстве элемента установить такие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 9.png]]  [[Файл:08 10.png]]&lt;br /&gt;
&lt;br /&gt;
''Кнопка R (переиграть)'' — кнопка, запускающая игру Puzzle сначала. В общих настройках свойства элемента устанавливаем, в какое начало должна возвращать кнопка (в нашем случае перейти на экран Lesson_08).Для данной игры, мы сделали переход на экран &amp;lt;tt&amp;gt;Lesson_08&amp;lt;/tt&amp;gt;, который запускает игру сначала. Но в дальнейшем, чтобы не переводить все объекты в начальное состояние  правильнее будет, в графе '''«изменить состояние»''' выбрать объект &amp;lt;tt&amp;gt;Level_01&amp;lt;/tt&amp;gt; и указать ему состояние &amp;lt;tt&amp;gt;mix&amp;lt;/tt&amp;gt;, которое означает, что игра возвращается в состояние перемешивания картинок, а не запускает всю игру заново.&lt;br /&gt;
	&lt;br /&gt;
7. В объекте (кнопке) hint_normal нажать правой кнопкой и выбрать изменить состояние объекта → потом выбрать объект level_01 и вписать состояние hint, которое означает, что при нажатии кнопки, в качестве подсказки, игра покажет картинку в собранном виде.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 11.png]]  [[Файл:08 12.png]]&lt;br /&gt;
&lt;br /&gt;
''hint'' – кнопка, реализующая подсказку на экране поиска.&lt;br /&gt;
&lt;br /&gt;
8. Вернуться на сцену 08 к объекту  level_01 и в общих настройках свойства элемента изменить состояние объекта → выбрать объект applause и вписать состояние on.&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 13.png]]&lt;br /&gt;
&lt;br /&gt;
9. Проверить выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08, создать новый экран Lesson_08.1&lt;br /&gt;
&lt;br /&gt;
2. Создать новые сцены (с названием 08.1 и Buttons).&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08) и Buttons (экрана Lesson_08).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену 08.1 и Buttons (экрана Lesson_08.1).&lt;br /&gt;
&lt;br /&gt;
[[Файл:08 15.png]]&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить звук аплодисментов другим аудиофайлом, имеющимся в базе ресурсов;&lt;br /&gt;
 &lt;br /&gt;
b) в пазле изменить количество разбиваемых частей на шесть (3х2), добавить сетку, изменить перестановку ячеек на смешивание по alpha, изменить время смешивания на 500 миллисекунд;&lt;br /&gt;
 &lt;br /&gt;
c) при нажатии hint (подсказки) изменить время показа подсказки на 2 секунды, изменить время финального показа пазла на 3 секунды, установить время закрытия пазла 500 миллисекунд.&lt;br /&gt;
&lt;br /&gt;
6. Сделать счетчик подсказок, используя объект '''[[Store|Store]]''' создать возможность совершать покупки подсказок за реальные деньги.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши по экрану Lesson_08.1  создадим новый экран '''lessons_8_1_1'''. Добавим в него сцены str_8_1 и Button_8_1. В сцену str_8_1 поместим объекты из экрана  Lesson_08.1: level_01, applause; оставим их без изменения. В сцену  Button_8_1 скопируем из Lesson_08.1 кнопки hint_normal и ico_R_normal2 и создадим новый объект, поменяв ему тип на '''counter''' (счетчик) и названия на '''hint'''. Добавим ресурс из базы ресурсов —  анимацию brown_big. Счетчик  hint будет считывать купленные подсказки.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Счетчик.PNG]]&lt;br /&gt;
&lt;br /&gt;
В  hint_normal добавим подобъект, сделаем его машиной и назовем '''hint_m'''.&lt;br /&gt;
&lt;br /&gt;
Щелкнув правой кнопкой мыши на сцену  Button_8_1 создадим новые сцены store и error, которые, соответственно, будут предназначены для совершения покупок — начисления подсказок и окна с ошибкой при невозможности купить подсказку.&lt;br /&gt;
&lt;br /&gt;
В сцену  store добавим две машины:  '''buy''' и '''store'''; в  error - машину  '''error'''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:8 1 1 .PNG]]&lt;br /&gt;
&lt;br /&gt;
Для машины  buy зададим состояния,  при котором значении параметра hint=1, то есть  она начисляет подсказку:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy na max.png]]&lt;br /&gt;
&lt;br /&gt;
Соответственно в машине  store зададим считывания со счетчика  и  прозрачность экрана:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store.PNG]]&lt;br /&gt;
&lt;br /&gt;
Машина error будет отвечать за вывод ошибки при неудачной покупке, то есть задает прозрачность экрана с ошибкой&lt;br /&gt;
&lt;br /&gt;
[[Файл:Error.PNG]]&lt;br /&gt;
&lt;br /&gt;
Вернемся к машине hint_m сцены Button_8_1 и пропишем для нее состояния. Машина отвечает за начисление подсказки при удачной покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:Hint m.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Совершение покупки'''&lt;br /&gt;
&lt;br /&gt;
Для того что бы покупку можно было совершить необходимо задать в глобальных свойствах возможность совершения покупки. Для этого на сцене в глобальном экране opt добавим новый элемент, которому изменим тип на store. В свойствах объекта store  кликнем правой кнопкой мыши на свойстве wallet, вставляем новое свойство — '''in-app покупка'''. Добавляем поля для покупки: внутренний id, и выбираем расходуемая.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Store2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Описание объекта Store'''&lt;br /&gt;
&lt;br /&gt;
Объект '''Store''' необходим для описания InApp покупок (позволяют продавать отдельные бонусы, паки и т.п.) в игре.&lt;br /&gt;
&lt;br /&gt;
Основные параметры объекта Store&lt;br /&gt;
&lt;br /&gt;
''id покупки'' – внутренний id покупки.&lt;br /&gt;
&lt;br /&gt;
''Расходуемая'' – 1 – покупка расходуемая, 0 – покупка раз и навсегда, если параметр не указан, по-умолчанию покупка – одноразовая.&lt;br /&gt;
&lt;br /&gt;
''объект (restore)'' – объект - Слушатель восстановления покупки. Этому объекту будет сообщено об успехе восстановления этой покупки покупки.&lt;br /&gt;
состояние (restore) – это состояние будет установлено объекту при успешном восстановлении этой покупки.&lt;br /&gt;
&lt;br /&gt;
'''Для того, чтобы объект Store работал во Вьювере, нужно подкорректировать файл app.icf'''&lt;br /&gt;
&lt;br /&gt;
1. Найти файл app.icf в папке с вашим проектом.&lt;br /&gt;
&lt;br /&gt;
2. Открыть его и найти тег [Game].&lt;br /&gt;
&lt;br /&gt;
3. В теге Game добавить строку purchaseEverything=1.&lt;br /&gt;
&lt;br /&gt;
4. Сохранить файл&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Game]&lt;br /&gt;
purchaseEverything=1&lt;br /&gt;
DispFixRot=&amp;quot;Landscape&amp;quot;&lt;br /&gt;
# comments and whitespace stripped by deployment tool&lt;br /&gt;
debug=&amp;quot;Absolutist-2253&amp;quot;&lt;br /&gt;
show_build_date=1&lt;br /&gt;
AppTitle=&amp;quot;Viewer&amp;quot;&lt;br /&gt;
DebuggerIP=&amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
DebuggerPort=5322&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Оформление'''&lt;br /&gt;
&lt;br /&gt;
Теперь перейдем к оформлению. Для того что бы на экране появлялось окно с предложением о покупке подсказке необходимо его создать. В начальный момент оно должно быть невидимым и прокликиваем, это состояние задано в машине store.  Создадим в ней 5 подобъектов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.1. Первые два переименуем в '''black''' и '''rec''', изменим им тип на '''[[Rectangle|Rectangle]]'''.&lt;br /&gt;
&lt;br /&gt;
Откроем объект  black, пропишем ему свойствах, оставив его пустым рамку, и цвет фона&lt;br /&gt;
&lt;br /&gt;
[[Файл:Black.PNG]]&lt;br /&gt;
&lt;br /&gt;
Для объекта rec зададим рамку и текстуру заливки. Для этого из базы ресурсов мышкой перетащим соответствующие элементы. Ресурсы для графики находятся в предыдущем уроке. Чтобы прямоугольник отображался правильно, задайте ему ненулевые размеры.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Rec.PNG]]&lt;br /&gt;
&lt;br /&gt;
Чтобы прямоугольник отображался правильно, задайте ему ненулевые параметры размера.&lt;br /&gt;
&lt;br /&gt;
1.2. Третьему элементу поменяем тип на text с текстом&lt;br /&gt;
&lt;br /&gt;
[[Файл:Text.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.3. Четвертый и пятый объекты сделаем кнопками, и назовем их '''ok''' – купить подсказку, '''no''' – отказаться от покупки. &lt;br /&gt;
&lt;br /&gt;
Для кнопки ok из базы ресурсов выберем внешний вид&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok1.PNG]]&lt;br /&gt;
&lt;br /&gt;
и зададим переход на совершение или провал покупки. Для этого кликнем правой кнопкой мыши на свойстве позиционирование и добавим свойство совершить in-app покупку, заполним для нее поля как указано на картинки&lt;br /&gt;
&lt;br /&gt;
[[Файл:Ok2.PNG]]&lt;br /&gt;
&lt;br /&gt;
Аналогично  поступим с кнопкой no. Добавим графический ресурс и  свойство «изменить состояние объекта», которое будет закрывать окно с предложением о покупке&lt;br /&gt;
&lt;br /&gt;
[[Файл:No1.PNG]]         [[Файл:No2.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Таким же само сделаем со сценой error. В ней создадим четыре объекта: два rectangle: '''rec_error''' –  пустой, '''black_error''' — оформленный  в такую же рамку; кнопку '''buy''', которая будет делать активным состояние error; текстовый объект '''text_error'''  с текстом «error!»&lt;br /&gt;
&lt;br /&gt;
[[Файл:Buy1.PNG]]&lt;br /&gt;
 &lt;br /&gt;
Разместим все объекты так, что бы картинка хорошо смотрелась. Сохраним все изменения и запустим вьювер. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Снимок1.PNG]] &lt;br /&gt;
&lt;br /&gt;
Сейчас при покупке подсказки количество покупок не имеет лимита, по этому вывод ошибки мы не получим. Этот параметр в реальной игре будет реализован с помощью объекта store, заданием ему соответствующих свойств.&lt;br /&gt;
&lt;br /&gt;
== Patchwork ==&lt;br /&gt;
&lt;br /&gt;
=== Создание экрана и сцены в игровом проекте ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить SceneEditor.&lt;br /&gt;
&lt;br /&gt;
2. В меню Проект → Загрузить → Learning.seproj. &lt;br /&gt;
&lt;br /&gt;
3. Кликнув правой кнопкой мыши по ранее созданному экрану Lesson_08.1, создать экран Lesson_08.2.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_1.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_08.2 создать новую сцену 08, в которую (через ResourcesEditor) добавить графические ресурсы (bg_game, panel_down, btb_replay_normal) из папки Sources\Lesson_08 (см. подготовка к работе «Создание проекта»). В редактор ресурсов добавить графику нашего будущего Patchwork: level_17, level_17_mask.&lt;br /&gt;
&lt;br /&gt;
=== Настройка объектов ===&lt;br /&gt;
&lt;br /&gt;
1. Создадим на сцене 08 еще два объекта. Для этого нажмем правой кнопкой мыши по сцене и выберем &amp;quot;Создать объект в текущем элементе&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. Переименуем один из созданных объектов в Patchwork, а другой в table.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_4.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
3. Теперь будем изменять тип объектов на сцене, чтобы получить нужные нам элементы. Графические ресурсы bg_game и panel_down оставляем без изменений. Ресурсу btb_replay_normal изменяем тип на button. Объекту Patchwork меняем тип на patchwork, table изменяем на тип table.&lt;br /&gt;
4. Теперь объекты нужно разместить на сцене. Обратим внимание на то, что два последних объекта которые мы добавили без графического ресурса. По умолчанию, создаваемые на сцене объекты имеют размер 100х100 пикселей. Увеличим размер таблицы по высоте до 450 пикселей и перетащим ее влево, поместив над объектом panel_down.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
Кнопку поместим в левый нижний угол. Добиваемся такого расположения объектов, как показанно на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
5. Настроим наши объекты. Для кнопки btb_replay_normal в поле &amp;quot;перейти на&amp;quot; укажите текущий экран Lesson_8.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для таблицы измените следующие параметры&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:правка_намба_2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для Patchwork устанавливаем следующие настройки. Обратите внимание, что поля &amp;quot;карт.спереди&amp;quot; и &amp;quot;шаблон&amp;quot; заполняются перетаскиванием графического ресурса из редактора ресурсов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_9.jpg]]&lt;br /&gt;
&lt;br /&gt;
6. Для корректной работы вашего Patchwork необходимо, чтобы таблица находилась выше Patchwork по дереву объектов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson8_10.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Проверьте выполнение задачи с помощью проигрывателя сцен Viewer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_08.2, создать новый экран Lesson_08.3&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену с названием game.&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 08 (экрана Lesson_08.2).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену game (экрана Lesson_08.3).&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) заменить картинку пэчворка и маски на другую, имеющуюся в базе ресурсов;&lt;br /&gt;
&lt;br /&gt;
b) изменить настройки кнопки рестарта таким образом, чтобы не переходить на экран Lesson_08.3, а сразу передавать пэчворку состояние mix.&lt;br /&gt;
----&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Создание игры «Hidden Object Game»|Урок 7]] &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; [[Работа с эффектами|Урок 9]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Buy_na_max.png&amp;diff=9203</id>
		<title>Файл:Buy na max.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Buy_na_max.png&amp;diff=9203"/>
		<updated>2017-11-15T08:45:26Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Buy.PNG&amp;diff=9202</id>
		<title>Файл:Buy.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Buy.PNG&amp;diff=9202"/>
		<updated>2017-11-15T08:41:16Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: Dkamkov загрузил новую версию Файл:Buy.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Buy.PNG&amp;diff=9201</id>
		<title>Файл:Buy.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Buy.PNG&amp;diff=9201"/>
		<updated>2017-11-15T08:39:36Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: Dkamkov загрузил новую версию Файл:Buy.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Buy.PNG&amp;diff=9200</id>
		<title>Файл:Buy.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Buy.PNG&amp;diff=9200"/>
		<updated>2017-11-15T08:36:40Z</updated>

		<summary type="html">&lt;p&gt;Dkamkov: Dkamkov загрузил новую версию Файл:Buy.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dkamkov</name></author>
		
	</entry>
</feed>