<?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=Anecheporenko</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=Anecheporenko"/>
	<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/Anecheporenko"/>
	<updated>2026-10-17T02:13:23Z</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_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%BE%D0%B2,_%D1%81%D1%86%D0%B5%D0%BD._%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B0%D0%BC%D0%B8&amp;diff=9574</id>
		<title>Создание экранов, сцен. Работа с кнопками</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_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%BE%D0%B2,_%D1%81%D1%86%D0%B5%D0%BD._%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B0%D0%BC%D0%B8&amp;diff=9574"/>
		<updated>2018-06-04T06:11:19Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: /* Упражнения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Введение в AppSalute Сreator|Урок 1]] &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; [[Checkbox как машина состояний|Урок 3]]&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;
'''Задачи:''' &lt;br /&gt;
* Создать три экрана с одной сценой на каждом из них.&lt;br /&gt;
* На экраны поместить кнопки, перехода между экранами.&lt;br /&gt;
* Создать надпись на экране.&lt;br /&gt;
* Изучить условные переходы по экранам.&lt;br /&gt;
* Добавить свою картинку в редактор ресурсов и на сцену.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создание экранов и сцен ==&lt;br /&gt;
&lt;br /&gt;
Запускаем SceneEditor и загружаем проект lessons (см. предыдущий [[Введение в AppSalute Сreator|урок]]). Кликаем на первый экран проекта (lesson_1) в панели Layout мышью и нажимаем её правую кнопку. В выпадающем меню выбираем &amp;quot;''Создать экран после текущего элемента''&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson2_screen.png]]&lt;br /&gt;
&lt;br /&gt;
В выскочившем диалоговом окошке вводим имя экрана: '''lesson_2_Main''' (помним об осмысленности имен объектов?) и нажимаем Ok. В результате этот экран появится в дереве проектов (Layout).&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson2_layout1.png|right]]&lt;br /&gt;
Повторяя эти действия, создадим еще 2 экрана с именами '''lesson_2_Sky''' и '''lesson_2_Moon'''. При этом, каждый раз правую кнопку мыши необходимо нажимать на предыдущем экране. Если же произошла ошибка, экраны всегда можно перетащить по дереву проекта или удалить, как это было описано в предыдущем [[Введение в AppSalute Сreator|уроке]].&lt;br /&gt;
&lt;br /&gt;
Теперь в каждом экране необходимо создать по одной сцене. Назовем их одинаково: '''stg_main'''.&lt;br /&gt;
Приставка stg обозначает stage (сцена). Впрочем, она необязательна так как тип объекта в дереве помечается соответствующей иконкой. То, что сцены имеют одинаковые имена не существенно, так как в дереве они находятся внутри разных экранов, имена которых говорят о назначении всего, что в них находится. &lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson2_layout2.png|right]]&lt;br /&gt;
Создание сцены происходит аналогично созданию экрана. Кликнем мышкой на экран '''lesson_2_Main''' и нажмем её правую кнопку. В выпавшем меню выбираем &amp;quot;''Создать сцену в текущем элементе''&amp;quot; и в появившемся окошке вводим имя stg_main, соглашаясь с размерами сцены (в пикселях), предложенными по умолчанию.  Повторям эту операцию, нажимая последовательно на экраны '''lesson_2_Sky''' и '''lesson_2_Moon'''. В результате получится панель проекта, приведенная на картинке справа.&lt;br /&gt;
&lt;br /&gt;
Таким образом, проект этого урока будет состоять из трех экранов Main, Sky и Moon. Заметим, что над ними остался экран первого урока. Он нам не будет мешать. Постепенно в этом проекте добавятся экраны других уроков. Напомним, что при запуске вьювера мы указываем какой экран начать проигрывать. Если с этого экрана переходов на другие экраны нет, то вьювер не относящиеся к делу экраны не заметит.&lt;br /&gt;
&lt;br /&gt;
Чтобы завершить процесс подготовки сцен, поместим на каждую из них соответствующий фон.&lt;br /&gt;
Для этого открываем редактор ресурсов [[Файл:Resourse_editor.png]], в котором кликаем на папку lesson_2. Последние три картинки bg_1, bg_2, bg_3 по очереди  [[Введение в AppSalute Сreator|перетаскиваем]] на сцены в соответствующих экранах. Соответствие между фоном и экраном предлагается определить в качестве упражнения :).&lt;br /&gt;
&lt;br /&gt;
== Создание кнопок ==&lt;br /&gt;
&lt;br /&gt;
Создадим теперь [[Button|кнопку]]. Для этого сделаем активной сцену '''stg_main''' в экране lesson_2_Main.&lt;br /&gt;
Затем откроем редактор ресурсов и перетащим на сцену картинку '''arrow_rt_norm''' из папки lesson2. Эта картинка появится на сцене и в дереве проекта под картинкой фона bg_3.&lt;br /&gt;
При помощи мышки, разместим её на сцене в правом нижнем углу фона.&lt;br /&gt;
&lt;br /&gt;
Чтобы превратить картинку в кнопку, необходимо в её свойствах (Properties) поменять тип&lt;br /&gt;
с image на '''button'''. Для этого кликаем справа от поля '''тип''' и в появившейся выпадалке выбираем button. Стоит обратить внимание на разнообразие игровых объектов. Часть из них будет описана в этих уроках, описание остальных можно найти в [[Absolutist_Framework|документации]].&lt;br /&gt;
&lt;br /&gt;
Следуя правилам хорошего тона переименуем объект, заменив его имя arrow_rt_normal на '''next_scr''' (следующий экран). Для этого редактируем поле имя в панели свойств (нажав после окончания Enter) или дважды кликаем в панели проекта (Layout). &lt;br /&gt;
&lt;br /&gt;
Откроем в свойствах кнопки группу '''внешний вид'''. Первые два поля '''up''' и '''down''' соответствуют картинкам изображающим отжатую и нажатую кнопку. Поле up уже заполнено картинкой arrow_rt_normal, которую мы превращали в кнопку. Зададим картинку для кнопки в состоянии нажатия.&lt;br /&gt;
Для этого кликаем справа от поля '''down''', чтобы оно стало редактируемым.&lt;br /&gt;
Затем снова открываем редактор ресурсов и хватем картинку arrow_rt_down из папки lesson_2.&lt;br /&gt;
Однако тащим её не на область редактирования сцены, а непосредственно в поле '''down''' свойства группы &amp;quot;внешний вид&amp;quot; кнопки next_scr. После того как мышка отпущена, кликаем в произвольное место вне поля редактирования, заканчивая тем самым процесс:&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson_2_btn_dn.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Обратим внимание, что поле редактирования должно быть активно в момент перетаскивания в него картинки. Поэтому, если редактор ресурсов еще не запущен, его необходимо сначала запустить, разместить поверх стальных окон (Always on Top), а только затем кликать в значение поля down и тащить в него картинку.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Имена картинок графических ресурсов в полях свойств объектов не являются простыми текстовыми надписями. С ними связывается конкретный файл из редактора ресурсов. Поэтому пытаться редактировать их руками не стоит. Эти поля нужно заполнять при помощи мышки, так как это описано выше. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Чтобы кнопка выполнила полезную функцию, отредактируем у неё ещё одно поле &amp;quot;'''перейти на'''&amp;quot;.&lt;br /&gt;
При клике справа от него выпадет список из доступных в проекте экранов. Выберем экран lesson_2_Sky.&lt;br /&gt;
&lt;br /&gt;
Теперь можно протестировать, что у нас получилось.&lt;br /&gt;
Проверяем, что в дереве проекта активным является экран lesson_2_Main.&lt;br /&gt;
Сохраняем изменения в проекте [[Файл:00 8.png]] и запускаем вьювер [[Файл:00 9.png]].&lt;br /&gt;
Нажимая на кнопку, убеждаемся, что происходит заданный переход из одного экрана на другой.&lt;br /&gt;
Обращаем внимание, также на изменение вида кнопки в момент клика на неё мышки.&lt;br /&gt;
&lt;br /&gt;
Как видно из списка свойств, кроме картинок up и down у кнопки есть еще поля для картинок '''over''' и '''disable'''. Первое соответствует  внешнему виду в момент когда мышь находится над кнопкой (но не нажата). Если игра пректируется для мобильных устройств (телефоны, планшетники), то обычно это поле не используется. Внешний вид disable (недоступна) соответствует виду кнопки, когда в неё нельзя кликать.&lt;br /&gt;
&lt;br /&gt;
== Навигация по экранам ==&lt;br /&gt;
&lt;br /&gt;
Повторим проделанные выше действия с двумя оставшимися экранами (lesson_2_Sky, lesson_2_Moon) этого урока. Поместим на lesson_2_Sky кнопку, по памяти, не подглядывая в предыдущие инструкции. Пусть при клике на неё происходит переход на экран lesson_2_Moon.&lt;br /&gt;
&lt;br /&gt;
Третью кнопку на экране lesson_2_Moon мы создадим новым методом.&lt;br /&gt;
Для этого наступим в дереве на уже существующую кнопку и нажмем правую кнопку мыши.&lt;br /&gt;
В выпавшем меню выберем пункт &amp;quot;'''Copy'''&amp;quot;. Можно также не пользуясь меню, при активном объекте на клавиатуре нажать клавиши '''Control''' и не отпуская её '''C'''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson_2_copy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь кликнем на stg_main экрана lesson_2_Moon и нажав правую кнопку мыши выберем пункт меню &amp;quot;''Paste into current object''&amp;quot;. Кнопка появится на экране и в дереве проекта.&lt;br /&gt;
&lt;br /&gt;
При копировании объекты сохраняют свои свойства.&lt;br /&gt;
Поэтому в скопированной кнопке необходимо изменить поле &amp;quot;'''перейти на'''&amp;quot;.&lt;br /&gt;
Давайте зациклим навигацию, сделав переходы:&lt;br /&gt;
 Main -&amp;gt; Sky -&amp;gt; Moon -&amp;gt; Main -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Протестируем получившийся результат (сохраняем проект и запускаем вьювер).&lt;br /&gt;
Если при нажатии на кнопки не происходит листание трёх экранов по кругу, &lt;br /&gt;
необходимо у каждой кнопки проверить свойство &amp;quot;'''перейти на'''&amp;quot;,&lt;br /&gt;
убедившись, что оно ведет на правильный экран.&lt;br /&gt;
&lt;br /&gt;
== Работа с текстом ==&lt;br /&gt;
&lt;br /&gt;
Объекты можно создавать на сцене не только при помощи таскания картинок из&lt;br /&gt;
редактора ресурсов, а и прямо в дереве проекта.&lt;br /&gt;
Сделаем активным экран lesson_2_Sky и кликнем в нём на последний в его ветке дерева&lt;br /&gt;
объект (кнопка next_scr). Нажмём правую кнопку мыши и выберем пункт меню &lt;br /&gt;
&amp;quot;''Создать объект после текущего элемента...''&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson_2_create.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
После этого в дереве появится&lt;br /&gt;
объект с именем  '''new_object''' типа image.&lt;br /&gt;
Впрочем непосредственно на сцене мы ничего не увидим кроме зеленой точки. Чтобы текст можно было перемещать, ему нужно задать ненулевой размер. Сделать это можно, отредактировав его свойства '''w''' (ширина) и '''h'''(высота) в разделе свойств объекта '''&amp;quot;размер&amp;quot;'''.После этого он будет отображаться как пустая зеленая рамка.&lt;br /&gt;
Тем не, менее схватимся за неё и расположим прямоугольник примерно по середине фона.&lt;br /&gt;
Если при попытке перетащить рамку, Вы промахнулись, то вместо неё сдвинется фон. &lt;br /&gt;
В этом случае, поставьте его на место и постарайтесь лучше прицелиться при хватании за рамку. &lt;br /&gt;
&lt;br /&gt;
Начнем теперь менять свойства созданного объекта:&lt;br /&gt;
* Зададим ему тип '''[[Text|text]]''' (в списке типов его возможно придется поискать в самом низу). &lt;br /&gt;
* Поменяем имя, например, на '''txt_first'''.&lt;br /&gt;
* В поле '''текст''' введем: &amp;quot;''И сказал Бог: да будет свет. И стал свет.''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:Ok.png|right|32px]]&lt;br /&gt;
'''Совет''': для ускорения поиска нужного типа в списке типов можно нажать первую букву имени типа (t). Если пометка стала на нужное место, нажмите Enter.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраним проект и запустим вьювер. Получившийся результат выглядит не очень красиво.&lt;br /&gt;
Текст вписался в рамку созданного объекта и оказался сильно сжатым. &lt;br /&gt;
Чтобы придать ему более читаемый вид закроем вьювер и изменим у txt_first&lt;br /&gt;
в панели Properties ещё несколько свойств:&lt;br /&gt;
* размер '''w''' = 400  (это новая ширина области в которую вписывается текст);&lt;br /&gt;
* форматирование '''отступ''' = 10 (это расстояние в пикселях между строчками).&lt;br /&gt;
Можно поэкспериментировать с другими параметрами свойств, читая их краткое описание в хинте, появляющемся при наведении мышки на имя свойства. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание:''' Описанный выше способ задания текста нельзя применять в реальных проектах. Обычно игра является мультиязычной. Поэтому, все тексты создаются в редакторе текстовых ресурсов, где переводятся на несколько языков. Соответствующий текстовый идентификатор перетаскивается аналогично картинкам в поле текстID.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Более подробное описание редактора текстовых ресурсов и работу с объектом text&lt;br /&gt;
мы рассмотрим позже в соответствующем [[Редактор текстовых ресурсов|уроке]]. &lt;br /&gt;
А пока вернемся к нашим кнопкам.&lt;br /&gt;
&lt;br /&gt;
== Логика переходов ==&lt;br /&gt;
&lt;br /&gt;
Пока кнопки, осуществлявшие переходы на следующие экраны, вели себя достаточно однообразно.&lt;br /&gt;
Придадим нашему приложению небольшую непредсказуемость.&lt;br /&gt;
Для этого активизируем второй экран (lesson_2_Sky) и кликнем на его объект '''next_scr'''.&lt;br /&gt;
В панели свойств этой кнопки на свойстве &amp;quot;'''перейти на'''&amp;quot; нажмём правую кнопку мыши.&lt;br /&gt;
В появившемся меню выберем пункт &amp;quot;''если был экран''&amp;quot;.&lt;br /&gt;
В результате, ниже поля &amp;quot;перейти на&amp;quot; появится пара полей, объединенных свойством &amp;quot;если был экран&amp;quot;.&lt;br /&gt;
В первом поле группы &amp;quot;'''был экран'''&amp;quot; выберем экран lesson_2_Moon, а во втором поле &amp;quot;'''перейти на'''&amp;quot; - экран lesson_2_Main:&lt;br /&gt;
&lt;br /&gt;
[[файл:lesson2_cond.png]]&lt;br /&gt;
&lt;br /&gt;
Активизируем в дереве проектов первый экран этого урока (lesson_2_Main),&lt;br /&gt;
сохраним проект и запустим вьювер. Кликая на кнопки следующего экрана,&lt;br /&gt;
мы первый раз пролистаем их все. Повторим этот процесс ещё раз.&lt;br /&gt;
Когда мы окажемся второй раз на экране с небом (lesson_2_Sky), кнопка следующего экрана&lt;br /&gt;
перебросит нас не на третий экран (lesson_2_Moon), как раньше, а на первый (lesson_2_Main).&lt;br /&gt;
После этого все время будут происходить переходы только между первым и вторым экранами.&lt;br /&gt;
&lt;br /&gt;
Логика получившегося результата состоит в следующем.&lt;br /&gt;
Свойство '''перейти на''', находящееся в панели Properties по умолчанию,&lt;br /&gt;
является безусловным переходом. Если в этом поле задан конкретный экран, при клике на кнопку вьювер отправится именно туда. Однако, этот переход происходит только в тех случаях, если не заданы дополнительные условные переходы (или условие срабатывание не выполняется ни для одного из этих переходов). Иными словами, вьвер сначала попытается совершить условный переход, для которого выполнилось условие срабатывания. Если такого перехода не найдется, будет выполнен переход по умолчанию. Условные переходы мы добавляем динамически в свойства кнопки при помощи правой кнопки мыши.&lt;br /&gt;
В нашем случае, добавленные два поля звучат так:&lt;br /&gt;
 Если уже '''был экран''' lesson_2_Moon, то надо '''перейти на''' экран lesson_2_Main.&lt;br /&gt;
&lt;br /&gt;
Пусть проект был запущен с первого экрана lesson_2_Main. На нём мы кликнули на кнопку и оказались на следующем экране lesson_2_Sky. Кнопка этого экрана содержит условный переход. Однако, первый раз он не срабатывает, так как на экране lesson_2_Moon мы ещё не были (и соответствующее условия срабатывания не выполнено). В результате, при клике на кнопку выполняется переход по умолчанию '''перейти на''' lesson_2_Moon. Когда пролистав по кругу все экраны, мы снова оказываемся на lesson_2_Sky, условный переход уже срабатывает (мы были на экране lesson_2_Moon). Поэтому, мы отправляемся на первый экран lesson_2_Main.&lt;br /&gt;
&lt;br /&gt;
Как мы видим, кнопка может выполнять достаточно сложные логические функции.&lt;br /&gt;
У неё много динамически добавляемых полей. Они позволяют менять другие объекты, совершать некоторые служебные действия и т.д.&lt;br /&gt;
&lt;br /&gt;
== Добавление картинок в ресурсы == &lt;br /&gt;
&lt;br /&gt;
Данный проект содержит все необходимые графические ресурсы для выполнения уроков.&lt;br /&gt;
Однако, если Вы креативный человек (а другие эти уроки не читают), Вам, рано или поздно,&lt;br /&gt;
захочется добавить собственную картинку в игровой проект.&lt;br /&gt;
&lt;br /&gt;
Делается это очень просто. В редакторе ресурсов станьте мышкой на имя папки с текущем уроком (lesson_02)&lt;br /&gt;
и нажмите правую кнопку. В появившемся меню выберете пункт &amp;quot;''Add Images...''&amp;quot;.&lt;br /&gt;
Затем, найдите нужную картинку у себя на диске:&lt;br /&gt;
&lt;br /&gt;
[[файл:lesson_2_addImg.png]]&lt;br /&gt;
&lt;br /&gt;
Она добавится в графические ресурсы и появится в списке доступных картинок &lt;br /&gt;
в редакторе ресурсов. Теперь можно смело перетаскивать её на сцену.&lt;br /&gt;
&lt;br /&gt;
Аналогично можно добавить и другие ресурсы.&lt;br /&gt;
Например, для анимации нужно выбрать группу картинок. Анимация добавится с названием, идентичным названию папки, содержащей ресурсы.&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
* Добавьте на все экраны кнопку в виде стрелочки влево (поместив её в левом нижнем углу). Активнее используйте копирование объектов.&lt;br /&gt;
* Задайте соответствующие переходы между экранами (листание в обратную сторону).&lt;br /&gt;
* Добавьте на последний экран любой на Ваш выбор текст; отформатируйте его.&lt;br /&gt;
* Сделайте логику перехода по экранам, при которой после первого экрана мы попадаем сразу на третий, если уже был второй.&lt;br /&gt;
* Загрузите в проект свою любимую картинку или фотографию и разместите её на любом из созданных в этом уроке экране. Если она окажется слишком большой, вспомните о модификаторах масштаба.&lt;br /&gt;
&lt;br /&gt;
== Эффекты с Альфа каналом ==&lt;br /&gt;
 &lt;br /&gt;
В этом уроке рассмотрим эффект с альфаканалом на примере смены экранов.&lt;br /&gt;
&lt;br /&gt;
1. Откройте первый экран из урока 2.&lt;br /&gt;
&lt;br /&gt;
2. Выделите экран и посмотрите на его свойства. Вы увидите пункт '''анимация переходов'''.&lt;br /&gt;
&lt;br /&gt;
3. Выставьте тип перехода и время растворения как показано на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_16.jpg‎]]&lt;br /&gt;
&lt;br /&gt;
4. Сохраните проект и проверьте переход с этого экрана во viewer. Экран сменяется другим экраном путем плавного растворения по альфе.&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
В этом уроке мы поставили время растворения 2 секунды. Таким образом наша смена экранов выглядит как слайд-шоу. В большинстве случаев это большое время. Путем подбора времени растворения сделайте смену экранов наиболее привлекательной. Сделайте то же самое для двух остальных экранов.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Введение в AppSalute Сreator|Урок 1]] &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; [[Checkbox как машина состояний|Урок 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Anecheporenko</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Statesmanager&amp;diff=9428</id>
		<title>Statesmanager</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Statesmanager&amp;diff=9428"/>
		<updated>2018-02-06T13:21:52Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: /* Состояния */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Object|Объект]] предназначен для постановки объектов в очередь выполнения единообразными командами. Можно применять для управления отображением всплывающих окон.&lt;br /&gt;
&lt;br /&gt;
=Свойства=&lt;br /&gt;
&lt;br /&gt;
==Процесс==&lt;br /&gt;
*'''объект открытия''' (obj) - объект который будет переведён в заданное состояние, если данный объект будет первым в очереди на открытие и передадим менеджеру окон состояние ''next'';  &lt;br /&gt;
*'''состояние открытия''' (st) - перевести выбранный объект в заданное состояние;&lt;br /&gt;
*'''объект back''' (obj_b) - объект который будет переведён в заданное состояние, если данный объект будет первым в очереди на закрытие и передадим менеджеру окон состояние ''back'';  &lt;br /&gt;
*'''состояние back''' (st_b) - перевести выбранный объект в заданное состояние.&lt;br /&gt;
&lt;br /&gt;
==Визуализация окон==&lt;br /&gt;
*'''fading_t''' - Время фейдинга для окон типа ''по альфе''. Statesmanager'у должен приходить таймер!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Дополнительные параметры=&lt;br /&gt;
[[Файл:+.png]] '''изменить состояние объекта - очередь back пуста:'''&lt;br /&gt;
:'''объект''' ('' obj '') - Перевести объект в состояние из следующего поля;&lt;br /&gt;
:'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля.&lt;br /&gt;
&lt;br /&gt;
[[Файл:+.png]] '''изменить состояние объекта - очередь next пуста:'''&lt;br /&gt;
:'''объект''' ('' obj '') - Перевести объект в состояние из следующего поля;&lt;br /&gt;
:'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Параметры которые мы можем считать из statesmanager=&lt;br /&gt;
*'''n_back''' - количество событий в очереди на закрытие (не учитывая события добавленные как попапы);&lt;br /&gt;
*'''n_next''' - количество событий в очереди на открытие (не учитывая события добавленные как попапы).&lt;br /&gt;
*'''n_popup''' - количество событий открытых как попапы.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Состояния=&lt;br /&gt;
*'''add_first''' - добавить событие в начало очереди на открытие;&lt;br /&gt;
*'''add_first_uni''' - добавить событие в начало очереди на открытие, но если данное событие уже добавлено в очередь, то повторно оно не добавиться (удобно если окно не должно открываться дважды);&lt;br /&gt;
*'''add_last''' - добавить событие в конец очереди на открытие;&lt;br /&gt;
*'''add_last_uni''' - добавить событие в конец очереди на закрытие, но если данное событие уже добавлено в очередь, то повторно оно не добавиться;&lt;br /&gt;
*'''add_popup''' - добавить в очередь попапов событие, и сразу его открыть (добавляется в очередь беков на закрытие в начало). Примечание попапы добавляются в свою очередь на закрытие и открытие, параметры объекта statesmanagera (n_back и n_next) не повышаются при добавления попапа. &lt;br /&gt;
*'''add_popup_uni''' - добавить попап с проверкой уникальности;&lt;br /&gt;
*'''next''' - активировать первое событие в очереди на открытие;&lt;br /&gt;
*'''back''' - активировать back для текущего события в очереди на закрытие;&lt;br /&gt;
*'''clear''' - очищает стек очереди, очищает обе очереди (на открытие и на закрытие, включая попапы);&lt;br /&gt;
*'''clear_back''' - очищает стек очереди на закрытие ( чистит очередь окон на закрытие, очередь попапов не трогает);&lt;br /&gt;
*'''delete''' - удалить из очереди элемент с id из param;&lt;br /&gt;
*'''log''' - записывает в лог, три очереди ( очередь next и две очереди беков (попапы и окна)):&lt;br /&gt;
*'''add_state_last''' - добавить в очередь состояний вызываемых при закрытых окнах&lt;br /&gt;
&lt;br /&gt;
  ==================================================&lt;br /&gt;
  NEXT QUEUE&lt;br /&gt;
  id = 15, st = open&lt;br /&gt;
  id = 18, st = open&lt;br /&gt;
  id = 21, st = open&lt;br /&gt;
  id = 72, st = open&lt;br /&gt;
  id = 68, st = open&lt;br /&gt;
  id = 80, st = open&lt;br /&gt;
  id = 80, st = open&lt;br /&gt;
  id = 76, st = open&lt;br /&gt;
  03/10/14 11:53:17.485: &lt;br /&gt;
  ==================================================&lt;br /&gt;
  POPUP QUEUE&lt;br /&gt;
  03/10/14 11:53:17.485: &lt;br /&gt;
  ==================================================&lt;br /&gt;
  BACK QUEUE&lt;br /&gt;
  id = 11, st = open&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Альтернативное описание состояний, взятое прямиком из кода==&lt;br /&gt;
   &amp;quot;idle&amp;quot;,                                    //!&amp;lt; Состояние простоя&lt;br /&gt;
   &amp;quot;add_first&amp;quot;,                               //!&amp;lt; Добавить событие в начало очереди&lt;br /&gt;
   &amp;quot;add_last&amp;quot;,                                //!&amp;lt; Добавить событие в конец очереди&lt;br /&gt;
   &amp;quot;add_first_uni&amp;quot;,                           //!&amp;lt; Добавить событие в начало очереди&lt;br /&gt;
   &amp;quot;add_last_uni&amp;quot;,                            //!&amp;lt; Добавить событие в конец очереди&lt;br /&gt;
   &amp;quot;next&amp;quot;,                                    //!&amp;lt; Активировать первое событие в очереди&lt;br /&gt;
   &amp;quot;back&amp;quot;,                                    //!&amp;lt; Активировать back для текущего события в очереди&lt;br /&gt;
   &amp;quot;clear&amp;quot;,                                   //!&amp;lt; Очистить обе очереди&lt;br /&gt;
   &amp;quot;add_popup&amp;quot;,                               //!&amp;lt; Начать ветку попапов от текущего элемента очереди. Срабатывает&lt;br /&gt;
                                              //!&amp;lt; сразу, до зачиски всех попапов next не делает ничего, back сначала &lt;br /&gt;
                                              //!&amp;lt; закрывает попапы&lt;br /&gt;
   &amp;quot;delete&amp;quot;,                                  //!&amp;lt; Удалить из очереди элемент с id из param;&lt;br /&gt;
   &amp;quot;log&amp;quot;                                      //!&amp;lt; Вывести содержимое всех трех очередей в лог&lt;br /&gt;
   &amp;quot;double_back&amp;quot;,                             //!&amp;lt; двойной back (и отличная песня ZZ Top, к тому же)&lt;br /&gt;
   &amp;quot;triple_back&amp;quot;                              //!&amp;lt; тройной back&lt;br /&gt;
&lt;br /&gt;
=Схема работы=&lt;br /&gt;
&lt;br /&gt;
1) Добавить объекты по одному в очередь&lt;br /&gt;
&lt;br /&gt;
2) вызывать состояния next или back - объекты у которых вызваны состояния убираются из очереди&lt;br /&gt;
очередь разбирается с конца&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Пример реализации=&lt;br /&gt;
&lt;br /&gt;
==Очередь из окон==&lt;br /&gt;
Задача: У нас открывается окно 1, после его закрытия открывается окно 2,окно 3 и т.д. (после закрытия одного окна открывается другое).&lt;br /&gt;
&lt;br /&gt;
Пример: Закончили уровень, и после закрытия окна с результатами, мы должны показать два окошка с новыми задачами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Реализация:'''&lt;br /&gt;
&lt;br /&gt;
*'''1) Открываем окно с результатами:'''&lt;br /&gt;
:Из машины окна, вызываем состояние ''next'' машине обработчику менеджера окон (9win_root). Предварительно записываем состояния для закрытия и открытия данного окна(машины; состояния ''close'' и ''open'' соответственно):&lt;br /&gt;
&lt;br /&gt;
::[[Файл:Statesmanager W next.png]]&lt;br /&gt;
&lt;br /&gt;
:В машине обработчике менеджера окон (9win_root), в состоянии ''next'' мы задаём менеджеру окон и передаём состояние ''add_first'', а затем ''next''. То есть мы добавляем первым в очередь на открытие наше окно с результатами и его открываем:&lt;br /&gt;
&lt;br /&gt;
::[[Файл:Statesmanager Next.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''2) Добавляем в очередь окно с задачей:'''&lt;br /&gt;
:Из машины окна, вызываем состояние ''add'' машине обработчику менеджера окон (9win_root). Предварительно записываем состояния для закрытия и открытия данного окна(машины; состояния ''close'' и ''open'' соответственно):&lt;br /&gt;
&lt;br /&gt;
::[[Файл:Statesmanager W add.png]]&lt;br /&gt;
&lt;br /&gt;
:В машине обработчике менеджера окон (9win_root), в состоянии ''add'' мы задаём менеджеру окон и передаём состояние ''add_last''( то есть мы добавляем окно в конец очереди на открытие).&lt;br /&gt;
:[[Файл:Statesmanager.Add.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''3) Аналогично добавляем другие задачи.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''4) Для закрытия окна с результатами уровня, мы передаём менеджеру окон состояние ''back'' (закрываем окно, первое в списке на закрытие), а затем состояние ''next'' (открываем первое окно в очереди на открытие, в нашем случае - первую добавленную задачу) '''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Main objects]]&lt;/div&gt;</summary>
		<author><name>Anecheporenko</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_AppSalute_%D0%A1reator&amp;diff=9398</id>
		<title>Введение в AppSalute Сreator</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_AppSalute_%D0%A1reator&amp;diff=9398"/>
		<updated>2018-02-02T15:30:54Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: /* Введение */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Learning|Оглавление]] &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; [[Создание экранов, сцен. Работа с кнопками|Урок 2]]&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
----&lt;br /&gt;
'''Цель:''' &lt;br /&gt;
познакомиться со средой разработки игр AppSalute Сreator.&lt;br /&gt;
&lt;br /&gt;
'''Задачи:''' &lt;br /&gt;
* проинсталлировать AppSalute Сreator;&lt;br /&gt;
* открыть готовый проект в редакторе сцен;&lt;br /&gt;
* освоить взаимодействие редактора сцен и редактора ресурсов;&lt;br /&gt;
* изучить основные методы редактирования сцены.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
Для начала работы с редактором его необходимо [[Установка и настройка|установить]], загрузив и запустив [[Downloads|инсталлятор]].&lt;br /&gt;
По умолчанию все необходимые программы будут размещены '''C:\Program Files\AppSalute Creator''' и материалы для уроков находятся в папке '''Мои Документы\Absolutist\Projects\lessons'''. При желании её можно в дальнейшем перенести в любое удобное место.&lt;br /&gt;
После инсталляции запускаем программу Scene Editor, найдя на рабочем столе или в списке приложений иконку:&lt;br /&gt;
&lt;br /&gt;
[[Файл:icon_se.png]].&lt;br /&gt;
&lt;br /&gt;
Для создания игр в AppSalute Сreator используются четыре взаимодействующих между собой приложения:&lt;br /&gt;
* [[Файл:Ico_main.png|40px]] '''[[Интерфейс ScenceEditor|Scene Editor]]''' - редактор игровых сцен (экранов), в котором происходит настройка свойств объектов и игровой логики. Это основной инструмент при разработке игры.&lt;br /&gt;
* [[Файл:Ico_base.png|40px]] '''[[Редактор ресурсов|Resources Editor]]''' - хранилище медиа-ресурсов (картинки, звуки, видео, анимация), использующихся в игре. Эти ресурсы при помощи мышки перетаскиваются на сцену в Scene Editor.&lt;br /&gt;
* [[Файл:Ico_text.png|40px]] '''[[Интерфейс TextEditor|Text Editor]]''' - хранилище всех текстовых ресурсов (надписей) на различных языках. Аналогично графике и звукам при помощи мышки они перетаскиваются в соответствующие свойства объектов, находящихся в Scene Editor. См. также [[Редактор текстовых ресурсов|Урок 6]]&lt;br /&gt;
* '''Viewer''' - проигрыватель созданной игры. Обычно запускается непосредственно из Scene Editor. Вы увидите, возможно сыграете, игру в том же виде, как и на любом мобильном устройстве.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Layout.png|right]]&lt;br /&gt;
Игра состоит из набора '''экранов'''. На каждом экране может находиться одна или несколько '''сцен'''.&lt;br /&gt;
Например, пусть на экране находится игровое поле и панель с интерфейсными кнопками. Эти две области можно оформить при помощи различных сцен. Первая сцена содержит игровые '''объекты''' редактора, например миниигры такие как puzzle и фоновую картинку. Вторая сцена содержит базовые элементы управления (кнопки, чекбоксы), универсальные машины состояний (программирующие логику) и т.д. &lt;br /&gt;
&lt;br /&gt;
Так как игра обычно запускается на различных устройствах (телефон, планшетник, десктоп), важным понятием является '''лейаут''' (layout). Лейаут - размещение элементов игры на экране. Так как мониторы имеют разное разрешение в пикселях и разное соотношение высоты и ширины, для них нужны  разные варианты размещения игровых объектов и интерфейса. Если игра проектируется для разных устройств, должны поддерживаться несколько лейаутов.&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson_1_layouts.png|400px]]&lt;br /&gt;
&lt;br /&gt;
В качестве примера справа на рисунке представлена структура некоторого проекта в лейауте с размерами экрана устройства 960x640 пикселей. На этом лейауте находятся экраны, из которых только один экран (pack1) развернут. Внутри него находятся 2 сцены (stg_list1 и stg_main1). Одна сцена (stg_list1) раскрыта и содержит три игровых объекта. Последний из них (tbk_pack1) является сложным объектом, содержащим несколько других.&lt;br /&gt;
Таким образом, игровой проект можно представить как '''дерево''', на различных ветках которого находятся игровые объекты.&lt;br /&gt;
&lt;br /&gt;
== Редактор сцен ==&lt;br /&gt;
&lt;br /&gt;
=== Открытие проекта ===&lt;br /&gt;
	&lt;br /&gt;
Шаг первый. &lt;br /&gt;
Вверху окна редактора расположено общее меню и кнопки быстрого запуска:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Меню.png]]&lt;br /&gt;
&lt;br /&gt;
Если нажать пункт меню &amp;lt;tt&amp;gt;Project&amp;lt;/tt&amp;gt; (Проект), то выпадет список команд, с помощью которых можно [[Подготовка к работе &amp;quot;Создание проекта&amp;quot;|создать новый]] или загрузить уже созданный проект, сохранить проект с указанием места сохранения и т.д.&lt;br /&gt;
&lt;br /&gt;
Откроем проект, на основании которого будут проходиться эти уроки. Для этого нажмём в меню пункты &amp;lt;tt&amp;gt;Project&amp;lt;/tt&amp;gt; &amp;amp;rarr; &amp;lt;tt&amp;gt;Open&amp;lt;/tt&amp;gt; или сразу кнопку быстрого доступа [[Файл:Открыть проект.png]]. Заходим в папку '''Мои документы/Absolutist/Projects/Lessons'''.&lt;br /&gt;
Внутри неё кликнем на файл '''lessons.seproj''' &lt;br /&gt;
&lt;br /&gt;
[[Файл:Seproj.JPG|400px]].&lt;br /&gt;
&lt;br /&gt;
В результате откроется проект, визуальная часть которого окажется в основной (центральной) части редактора. Чтобы увидеть что-то кроме белого экрана, необходимо на панели Layout, которая находится в правой верхней части экрана, кликнуть мышкой на строчку с надписью '''lesson_1''' (это первый игровой экран приложения). В результате мы должны увидеть:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Экран.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
=== Свойства проекта ===&lt;br /&gt;
&lt;br /&gt;
В правой части окна редактора расположены две панели '''Layout''' (лейаут) и '''Properties''' (свойства).&lt;br /&gt;
На панели Layout показано иерархическое дерево проекта, который пока состоит из одного игрового экрана lesson_1. Если кликнуть на стрелочку (или плюсик, или треугольник, в зависимости от Вашей ОС) слева от надписи lesson_1, то экран раскроется и мы увидим [[Проектирование_экранов_игры#Принципы_формирования_сцен_и_их_наполнения|сцену]], которая находится на [[Проектирование_экранов_игры|экране]]. Она называется lessons_1. Продолжая кликать на стрелочки, раскроем всю структуру этого проекта: &lt;br /&gt;
&lt;br /&gt;
[[Файл:Лэйаут.png]]&lt;br /&gt;
&lt;br /&gt;
Наиболее простым объектом, находящимся в дереве проекта, является статическая картинка фона, которая называется '''bg'''. Если на неё кликнуть, то ниже в панели '''Properties''' можно увидеть параметры настройки этого объекта (его свойства):&lt;br /&gt;
&lt;br /&gt;
[[Файл:Свойства.png]]&lt;br /&gt;
&lt;br /&gt;
Стоит &amp;quot;пораскрывать&amp;quot; ветки настроек объекта bg, нажимая на стрелочки (или плюсики, или треугольники) слева от имен полей. Если навести мышкой на имя поля, то появится краткая подсказка, поясняющий смысл свойства.&lt;br /&gt;
&lt;br /&gt;
Панели Layout и Properties могут перетаскиваться мышкой в произвольное место редактора,&lt;br /&gt;
располагаться одна под другой или объединяться в одну панель с двумя закладками снизу.&lt;br /&gt;
Если панели находятся одна под другой, можно мышкой изменить их относительную высоту. Для этого мышь располагаем между ними, пока она не изменит своей формы со стрелочки на сплиттер (две горизонтальные полоски). Затем, нажав на мышь, таскаем вверх-вниз границу между панелями.&lt;br /&gt;
&lt;br /&gt;
=== Проигрывание проекта ===&lt;br /&gt;
&lt;br /&gt;
В процессе разработки игрового проекта, игру в любой момент можно запустить в отдельном окне вьювера ('''Viewer''') для проверки. Для этого в дереве проекта (панель Layout) необходимо выбрать интересующий нас экран (с которого произойдёт запуск) и нажать кнопку [[Файл:Play111.png]] (или пункт меню &amp;lt;tt&amp;gt;Viewer&amp;lt;/tt&amp;gt; &amp;amp;rarr; &amp;lt;tt&amp;gt;Start Viewer&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[файл:View.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В нашем случае мы увидим летающее над слонёнком солнышко. Оба объекта (и слонёнок, и солнышко) являются активными. Кликните сначала на голову слонёнка - она должна повернуться. Клик на тело слонёнка заставит его подпрыгнуть. При должной сноровке можно кликнуть также на летающее солнышко, что приведёт к кратковременному изменению его формы.&lt;br /&gt;
&lt;br /&gt;
Стоит запомнить три важных правила при работе с вьювером:&lt;br /&gt;
* Если приложение редактировалось, то перед запуском вьювера проект необходимо &amp;lt;u&amp;gt;сначала&amp;lt;/u&amp;gt; сохранить (меню: &amp;lt;tt&amp;gt;Project&amp;lt;/tt&amp;gt; &amp;amp;rarr; &amp;lt;tt&amp;gt;Save Project&amp;lt;/tt&amp;gt;).&lt;br /&gt;
* Всегда необходимо перед запуском вьювера выбирать экран, который начнёт проигрываться (сейчас такой экран пока один).&lt;br /&gt;
* После просмотра во вьювере игры, его необходимо закрыть, нажав (как обычно в Windows) крестик в правом верхнем углу окна.&lt;br /&gt;
&lt;br /&gt;
=== Кнопки быстрого запуска ===&lt;br /&gt;
&lt;br /&gt;
Приведем для справки описание кнопок быстрого доступа к некоторым командам редактора сцен (более подробная информация будет предоставлена в последующих уроках):&lt;br /&gt;
&lt;br /&gt;
*[[Файл:00001.png]] — создать новый проект; &lt;br /&gt;
*[[Файл:Открыть проект.png]] — открыть уже созданный проект;&lt;br /&gt;
*[[Файл:00002.png]] — сохранить изменения в проекте; &lt;br /&gt;
*[[Файл:00003.png]] — нормальный вид; &lt;br /&gt;
*[[Файл:Play111.png]] —  запустить Viewer;&lt;br /&gt;
*[[Файл:000004.png]] — запустить Viewer с изменением времени; &lt;br /&gt;
*[[Файл:000005.png]] — очистить данные;&lt;br /&gt;
*[[Файл:00006.png]] — вызов редактора ресурсов;&lt;br /&gt;
*[[Файл:00007.png]] — вызов текстового редактора;&lt;br /&gt;
*[[Файл:00008.png]] — анализ использованных ресурсов;  &lt;br /&gt;
*[[Файл:00009.png]] — поиск объекта по имени или id;&lt;br /&gt;
*[[Файл:0000010.png]] — общие свойства объекта.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Редактор ресурсов]] ==&lt;br /&gt;
&lt;br /&gt;
Второе важное приложение, это редактор ресурсов.&lt;br /&gt;
Так как мы открыли готовый проект, то с ним уже связана база графических ресурсов.&lt;br /&gt;
Чтобы её увидеть, нажмите кнопку [[Файл:00006.png|20px]] (или меню: &amp;lt;tt&amp;gt;Tools&amp;lt;/tt&amp;gt; &amp;amp;rarr; &amp;lt;tt&amp;gt;Resources Editor&amp;lt;/tt&amp;gt;).&lt;br /&gt;
Откроется новое окно, которое, на самом деле, является независимым приложением:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Редактор ресурсов111.png]]&lt;br /&gt;
&lt;br /&gt;
Как и в редакторе сцен, вверху окна редактора ресурсов расположено меню и кнопки быстрого доступа: создать базу ресурсов, открыть уже существующую, показать экспорт последних объектов, сохранить изменения в редакторе ресурсов, добавить картинку (png, jpeg), добавить картинку из папки, добавить анимацию, мелодию (mp3, ogg), видео (mp4).&lt;br /&gt;
Ниже, в левой панели, находятся папки, внутри которых можно найти различные графические ресурсы, которые мы будем использовать на протяжении этих уроков. Каждая папка названа по имени урока.&lt;br /&gt;
Кликнув на стрелочку (или плюсик, или треугольник) слева от папки lesson_1 мы увидим текстовый список из 8 картинок, находящихся в ранее запущенном приложении со слоненком и солнышком.&lt;br /&gt;
&lt;br /&gt;
Если в дереве папок активна данная папка, то на правой панели мы видим список графических ресурсов в виде иконок. Если же в дереве кликнуть на имя конкретной картинки, то в правой панели она будет представлена в натуральную величину. Если кликнуть правой кнопкой мыши на конкретный ресурс отобразится всплывающее подменю, которое аналогично кнопкам быстрого доступа, за исключением одного пункта - &amp;lt;tt&amp;gt;Заменить изображение...&amp;lt;/tt&amp;gt;. Замену изображений необходимо делать через всплывающее подменю.&lt;br /&gt;
&lt;br /&gt;
Текущее приложение содержит фоновую картинку (bg), три картинки частей слонёнка (elephant_body, elephant_head_1, elephant_head_2) и 4 картинки с различным видом солнышка. &lt;br /&gt;
&lt;br /&gt;
Так как редактор ресурсов является отдельным приложением, он может оказаться под окном редактора сцен. Это не всегда удобно, поэтому зайдем в пункт меню &amp;lt;tt&amp;gt;'''View'''&amp;lt;/tt&amp;gt; редактора ресурсов и поставим галочку у пункта &amp;lt;tt&amp;gt;'''Always on Top'''&amp;lt;/tt&amp;gt;. Теперь редактор ресурсов окажется поверх редактора сцен (как впрочем, и поверх всех остальных окон). Естественно, галочку можно в любой момент снять или свернуть окно редактора ресурсов.&lt;br /&gt;
&lt;br /&gt;
Размер окна редактора ресурсов можно изменять мышкой, схватившись за правый нижний угол окна.&lt;br /&gt;
Правую панель, которая выводит картинки, можно “перетащить” в любое место окна редактора ресурсов (для этого необходимо потянуть за её заголовок). Чтобы вернуть панель на фиксированное место, необходимо дважды кликнуть на её заголовке.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Редактирование сцены ==&lt;br /&gt;
&lt;br /&gt;
=== Добавление на сцену ===&lt;br /&gt;
&lt;br /&gt;
Разберемся, как на сцену добавляются новые объекты. Предполагается, что мы одновременно видим окна обоих редакторов. Убедимся, что в панели проекта (Layout) редактора сцен активна текущая сцена lessons_1. Не путайте её с экраном lesson_1, находящимся выше. Рядом с каждым объектом в дереве ресурсов находится иконка, отражающая тип объекта. Рядом с экраном изображено, что-то похожее на фотоаппарат, а рядом со сценой - чистый лист бумаги. &lt;br /&gt;
 &lt;br /&gt;
Нажав мышкой на иконку головы слонёнка в '''редакторе ресурсов''', перетащим её на сцену в '''редактор сцен''', где кнопку мышки отпустим:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Add picture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Теперь окно редактора ресурсов можно свернуть, чтобы оно не мешало. &lt;br /&gt;
На сцене мы видим одного полноценного слонёнка и отдельно парящую голову.&lt;br /&gt;
В списке объектов (панель Layout) добавился объект elephant_head_2. &lt;br /&gt;
Его имя по умолчанию совпадает с именем картинки в редакторе ресурсов.&lt;br /&gt;
Если оно не достаточно точно выражает назначение этого объекта, то его '''необходимо'''&lt;br /&gt;
изменить в панели Properties (предполагается, что на дереве объектов эта голова сейчас выбрана).&lt;br /&gt;
Переименуем её, например, в elephant_ghost (дух слонёнка). Для этого кликнем справа от поля '''имя''' в панели Properties и введем новое название. После окончания редактирования нажимаем Enter. Одновременно с этим изменилось имя на дереве объектов (Layout).&lt;br /&gt;
Стоит всегда придерживаться следующего правила:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:Ok.png|right|32px]]&lt;br /&gt;
'''Необходимо присваивать объектам в проекте осмысленные имена, отражающие их роль и функции. Это относится также к именам экранов и сцен.'''&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Названия объектов могут повторяться, но это плохой тон. В частности, неудачным примером названий в этом проекте служат похожие имена экрана (lesson_1) и сцены (lessons_1). Плохое имя (move) у летающего солнышка (лучше было бы fly_sun). &lt;br /&gt;
&lt;br /&gt;
Обратим внимание, что добавленная голова имеет тип '''image''' (первое поле в панели Properties).&lt;br /&gt;
Большинство объектов в начале имеют такой тип. Далее он меняется в зависимости от функциональности объекта (подробнее об этом в следующих уроках).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:Ok.png|right|32px]]&lt;br /&gt;
'''Совет''': Переименовывать объекты можно непосредственно в панели Layout, после двойного клика мышкой на имя этого объекта. Редактирование завершается нажатием клавиши Enter.  &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Изменение положения ===&lt;br /&gt;
&lt;br /&gt;
На сцене вокруг добавленной головы находится &amp;lt;span style=&amp;quot;color:#007700&amp;quot;&amp;gt;зелёная прямоугольная рамка&amp;lt;/span&amp;gt; (объект активен). &lt;br /&gt;
Если она &amp;lt;span style=&amp;quot;color:#770000&amp;quot;&amp;gt;красная&amp;lt;/span&amp;gt;, необходимо кликнуть на объект (голову) и он станет активным.&lt;br /&gt;
Заметим, что при клике на объекте меняется не только цвет рамки, &lt;br /&gt;
но и активный объект на дереве объектов (Layout). Соответственно в панели Properties показываются его свойства.&lt;br /&gt;
Стоит покликать на различные объекты на сцене и на дереве проекта, наблюдая одним глазом за их рамкой, а другим за панелями проекта и свойств. В заключении этого увлекательного упражнения необходимо снова сделать активной голову.&lt;br /&gt;
&lt;br /&gt;
Активный объект можно таскать мышкой по экрану, задав ему требуемое положение (не оторвите только голову исходному слоненку). Стоит раскрыть свойство &amp;quot;'''положение'''&amp;quot; в панели Properties и понаблюдать, как при таскании головы меняются её координаты. &lt;br /&gt;
Начало координат (точка x=0, y=0) расположено в центре сцены. Горизонтальная ось x направлена вправо, а вертикальная ось y - вниз. Если объект находится ниже центра сцены, он будет иметь положительное значение y, а если выше, то отрицательное.&lt;br /&gt;
Естественно, положение объекта можно изменить и при помощи прямого редактирования полей '''x''', '''y''' свойства &amp;quot;'''положение'''&amp;quot;. Перетащите голову в правый верхний угол сцены.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Модификаторы ===&lt;br /&gt;
&lt;br /&gt;
Будем считать, что добавленная голова слона - это дух предков исходного слонёнка.&lt;br /&gt;
Духу положено быть полупрозрачным. Это достигается изменением &lt;br /&gt;
свойства '''alpha''' в группе '''модификаторы''' на панели свойств (Properties).&lt;br /&gt;
Изменим исходное значение 1.00 (непрозрачен) на 0.5 (полупрозрачен).&lt;br /&gt;
Значение alpha=0 соответствует полной невидимости объекта (возможно любое значение между 0 и 1).&lt;br /&gt;
Обратим внимание, что десятичная точка является именно точкой, а не запятой, как всё ещё учат на 1/6 части суши. Впрочем, если в вашей операционной системе в языковых настройках стоит русский язык, Вы увидите привычную запятую, вместо десятичной точки. &lt;br /&gt;
&lt;br /&gt;
Дополнительно в разделе '''модификаторы''' можно изменить угол ('''angle''') в градусах (поставьте, например -30)&lt;br /&gt;
и масштаб картинки (поля '''scale x''' и '''scale y'''). Исходная картинка имеет единичный масштаб, т.е. на сцене выглядит также, как и в редакторе ресурсов. Если масштаб увеличить, то увеличится и картинка (это можно сделать независимо по ширине и высоте). &lt;br /&gt;
Соответственно, значение меньшее 1 (но большее нуля) её уменьшит.&lt;br /&gt;
Отрицательное значение масштаба переворачивает картинку. Задайте scale_x=-2 и scale_y=2.&lt;br /&gt;
В результате должно получиться что-то типа:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Mod.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Заметим, что при сильном масштабировании (scale) могут появляться дефекты картинки (квадратики пикселей), поэтому злоупотреблять большими значениями, обычно, не стоит.&lt;br /&gt;
&lt;br /&gt;
=== Z - порядок объектов ===&lt;br /&gt;
&lt;br /&gt;
Пришло время посмотреть, что у нас получилось. Для этого сохраняем все изменения &lt;br /&gt;
[[Файл:00 8.png]] (нажав кнопку Ok на выскочившем окошке).&lt;br /&gt;
Затем запускаем вьювер [[Файл:00 9.png]]. Понаблюдаем за солнцем. Оно движется над фоновой&lt;br /&gt;
картинкой &amp;quot;'''bg'''&amp;quot;, но ''под'' головой духа слона (он должен, естественно, находится в верхней части сцены). Такая последовательность прорисовки связана с порядком объектов в дереве на панели Layout. Отрисовка происходит сверху вниз (сначала bg, затем move и т.д.). Это правило является иерархическим. Если на дереве находятся объекты, содержащие другие объекты, то сначала рисуется вся эта ветка дерева, а затем поверх неё рисуются нижележащие на дереве объекты на других ветках. Это же правило относится к последовательности рисования сцен. Если на экране несколько сцен, то они рисуются сверху вниз в соответствии с их порядком на дереве. Сама по себе сцена - это невидимый объект (контейнер). Поэтому, рисование сцены означает последовательное рисование всех объектов, которые в ней находятся.&lt;br /&gt;
&lt;br /&gt;
Попробуем во вьювере кликнуть на солнце, когда оно оказывается под головой духа слона.&lt;br /&gt;
Его форма не изменяется, так как картинка головы, хотя и является полупрозрачной, по умолчанию &amp;quot;не прокликивается&amp;quot;. Чтобы изменить ситуацию, закроем вьювер (крестик) и отредактируем поле свойств головы с именем &amp;quot;'''прокликиваемая'''&amp;quot;, выбрав из соответствующего списка &amp;quot;прокликиваемая&amp;quot; вместо &amp;quot;нет&amp;quot;. Закончив редактирование поля (нажав Enter), сохраняем проект [[Файл:00 8.png]] и снова запускаем вьювер [[Файл:00 9.png]].&lt;br /&gt;
Теперь дух, как и положено астральным образованиям, пропускает клик сквозь себя.&lt;br /&gt;
&lt;br /&gt;
Порядок рисования объектов можно изменить, перетащив их по дереву в панели Layout.&lt;br /&gt;
Эта операция требует определенной сноровки. Наступим на имя объекта elephant_ghost и не отпуская мыши потащим его вверх. Когда он окажется на уровне объекта bg, отпустим мышь. Он станет подобъектом фона,&lt;br /&gt;
что отобразится как сдвиг elephant_ghost вправо (у объекта фона bg слева появится стрелочка). Теперь снова схватим elephant_ghost и потащим чуть вниз и влево по дереву.&lt;br /&gt;
Когда указатель мыши окажется между объектами bg и move, появится длинная горизонтальная полоска. В этот момент отпускаем мышь, и наш дух размещается между этими объектами.&lt;br /&gt;
&lt;br /&gt;
Ниже на рисунке представлены оба варианта положения духа на дереве сцены (слева подобъект elephant_ghost в объекте bg, а справа равноправный с bg объект, но ниже по дереву и, следовательно, рисуемый позже):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[файл:El.png]]&lt;br /&gt;
[[файл:El2.png]]&lt;br /&gt;
&lt;br /&gt;
С точки зрения отрисовки, оба эти варианта приведут к одинаковому результату.&lt;br /&gt;
Проверьте это, потренировавшись в таскании, сохранении и запуске вьювера. Подумайте также, почему так происходит.&lt;br /&gt;
&lt;br /&gt;
=== Удаление объектов ===&lt;br /&gt;
&lt;br /&gt;
Откройте снова окно редактора ресурсов (скорее всего оно находится в свернутом состоянии в панели приложений). Расположите его над окном редактора сцен. Перетащите на сцену из папки lesson_1 какую-нибудь небольшую картинку (например, sun_1). Сверните редактор ресурсов. Новая картинка появилась на сцене и в дереве объектов панели Layout. Чтобы её удалить, нажмите правую кнопку мыши на объекте sun_1 в панели Layout. В вывалившемся меню выберете пункт '''Delete'''. Картинка исчезнет. Эквивалентно, объект можно удалить, кликнув на него в дереве и нажав на клавиатуре кнопку Del.&lt;br /&gt;
&lt;br /&gt;
Заметим, что если объект на сцене сделать активным (кликнув на него - зеленая рамка) и попытаться нажать Del, то ничего не произойдет. Сделано это умышленно. Дело в том, что при удалении уничтожается не только сам объект, но и все его подобъекты. Подобная иерархия видна только на дереве проекта. &lt;br /&gt;
&lt;br /&gt;
В качестве упражнения, поместите на сцену две картинки. Одну их них в дереве панели Layout перетащите на другую, сделав её подобъектом. Потаскайте мышкой по сцене обе картинки. Обратите внимание, что подобъект перемещается независимым образом. В тоже время при таскании корневого объекта начнут двигаться они оба. Координаты подобъекта задаются относительно его владельца. Поэтому при перемещении корневого объекта вместе с ним движутся и все подобъекты.&lt;br /&gt;
Теперь удалите сразу оба объекта, сделав активным  на дереве корневой объект и нажав затем на кнопку Del (или при помощи правой кнопки мыши).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Другие объекты ===&lt;br /&gt;
&lt;br /&gt;
На нашей сцене кроме картинок находятся еще два типа объектов - это кнопка и машина состояний. С кнопками мы будем работать уже на следующем [[Создание экранов, сцен. Работа с кнопками|уроке]], а машинам состояний посвящены сразу 3 урока, начиная с [[Checkbox как машина состояний|третьего]]. Пока наша задача состоит в их поиске в дереве проекта и первым знакомством с их свойствами.&lt;br /&gt;
&lt;br /&gt;
Кликнем на стрелочку слева от объекта move в панели Layout. Под ним раскроется подобъект с именем '''sun_1'''. Это кнопка. Сам же объект move является машиной состояния. Кроме указания соответствующего типа в панели Properties (посмотрите на него!), тип объекта помечается иконкой на дереве. Для машины - это шестеренка, а кнопка - это кнопка :).&lt;br /&gt;
&lt;br /&gt;
Кликнув на объект '''sun_1''', рассмотрим его свойства в панели Properties. Кроме уже знакомых по картинке (тип=image) полей, появился ряд других. Например, раскроем стрелочку свойства &amp;quot;'''внешний вид'''&amp;quot;. Там находятся несколько полей, из которых заполнены '''up''' и '''down'''. В них заданы имена картинок для изображения отжатой и нажатой кнопки. Как они там оказались выясним в следующем [[Создание экранов, сцен. Работа с кнопками|уроке]]. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим теперь объект '''move'''. Не смотря на небольшое количество свойств, это один из самых универсальных и сложных объектов, позволяющих программировать динамическое поведение объектов и их логику. Чтобы краем глаза заглянуть на кухню этого процесса кликните на свойство '''states''', а затем на появившиеся три точки в этом поле. Выскочит следующее окошко:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[файл:Mov prop.png]]            [[файл:Move.png]]&lt;br /&gt;
&lt;br /&gt;
Эта машина состояний, которая имеет одно состояние. В нём задана последовательность команд, которые управляют её движением по экрану. Сама машина в данном случае является невидимым объектом. Однако, она содержит в качестве подобъекта кнопку '''sun_1'''. Поэтому, когда машина move бегает по экрану, вместе с ней движется и кнопка. Клики на себя принимает кнопка, меняя при этом свой внешний вид. Несложно догадаться, что в результате получается солнышко.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
* Найдите две машины состояний, связанные со слонёнком, и попробуйте догадаться как они работают (ответы в следующих уроках).&lt;br /&gt;
* Откройте демонстрационный проект, находящийся в папке AppSaluteСreator/Projects/Demo/demо. Поиграйтесь с ним.&lt;br /&gt;
* Снова откройте учебный проект c которым мы работали (AppSaluteСreator/Projects/Lessons/lessons). Он нам понадобится для следующего урока.&lt;br /&gt;
* Затем переходите на [[Создание экранов, сцен. Работа с кнопками|урок 2]].&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;|[[Learning|Оглавление]] &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; [[Создание экранов, сцен. Работа с кнопками|Урок 2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Anecheporenko</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_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%BE%D0%B2,_%D1%81%D1%86%D0%B5%D0%BD._%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B0%D0%BC%D0%B8&amp;diff=9395</id>
		<title>Создание экранов, сцен. Работа с кнопками</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_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%BE%D0%B2,_%D1%81%D1%86%D0%B5%D0%BD._%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B0%D0%BC%D0%B8&amp;diff=9395"/>
		<updated>2018-02-02T15:02:39Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Введение в AppSalute Сreator|Урок 1]] &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; [[Checkbox как машина состояний|Урок 3]]&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;
'''Задачи:''' &lt;br /&gt;
* Создать три экрана с одной сценой на каждом из них.&lt;br /&gt;
* На экраны поместить кнопки, перехода между экранами.&lt;br /&gt;
* Создать надпись на экране.&lt;br /&gt;
* Изучить условные переходы по экранам.&lt;br /&gt;
* Добавить свою картинку в редактор ресурсов и на сцену.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создание экранов и сцен ==&lt;br /&gt;
&lt;br /&gt;
Запускаем SceneEditor и загружаем проект lessons (см. предыдущий [[Введение в AppSalute Сreator|урок]]). Кликаем на первый экран проекта (lesson_1) в панели Layout мышью и нажимаем её правую кнопку. В выпадающем меню выбираем &amp;quot;''Создать экран после текущего элемента''&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson2_screen.png]]&lt;br /&gt;
&lt;br /&gt;
В выскочившем диалоговом окошке вводим имя экрана: '''lesson_2_Main''' (помним об осмысленности имен объектов?) и нажимаем Ok. В результате этот экран появится в дереве проектов (Layout).&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson2_layout1.png|right]]&lt;br /&gt;
Повторяя эти действия, создадим еще 2 экрана с именами '''lesson_2_Sky''' и '''lesson_2_Moon'''. При этом, каждый раз правую кнопку мыши необходимо нажимать на предыдущем экране. Если же произошла ошибка, экраны всегда можно перетащить по дереву проекта или удалить, как это было описано в предыдущем [[Введение в AppSalute Сreator|уроке]].&lt;br /&gt;
&lt;br /&gt;
Теперь в каждом экране необходимо создать по одной сцене. Назовем их одинаково: '''stg_main'''.&lt;br /&gt;
Приставка stg обозначает stage (сцена). Впрочем, она необязательна так как тип объекта в дереве помечается соответствующей иконкой. То, что сцены имеют одинаковые имена не существенно, так как в дереве они находятся внутри разных экранов, имена которых говорят о назначении всего, что в них находится. &lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson2_layout2.png|right]]&lt;br /&gt;
Создание сцены происходит аналогично созданию экрана. Кликнем мышкой на экран '''lesson_2_Main''' и нажмем её правую кнопку. В выпавшем меню выбираем &amp;quot;''Создать сцену в текущем элементе''&amp;quot; и в появившемся окошке вводим имя stg_main, соглашаясь с размерами сцены (в пикселях), предложенными по умолчанию.  Повторям эту операцию, нажимая последовательно на экраны '''lesson_2_Sky''' и '''lesson_2_Moon'''. В результате получится панель проекта, приведенная на картинке справа.&lt;br /&gt;
&lt;br /&gt;
Таким образом, проект этого урока будет состоять из трех экранов Main, Sky и Moon. Заметим, что над ними остался экран первого урока. Он нам не будет мешать. Постепенно в этом проекте добавятся экраны других уроков. Напомним, что при запуске вьювера мы указываем какой экран начать проигрывать. Если с этого экрана переходов на другие экраны нет, то вьювер не относящиеся к делу экраны не заметит.&lt;br /&gt;
&lt;br /&gt;
Чтобы завершить процесс подготовки сцен, поместим на каждую из них соответствующий фон.&lt;br /&gt;
Для этого открываем редактор ресурсов [[Файл:Resourse_editor.png]], в котором кликаем на папку lesson_2. Последние три картинки bg_1, bg_2, bg_3 по очереди  [[Введение в AppSalute Сreator|перетаскиваем]] на сцены в соответствующих экранах. Соответствие между фоном и экраном предлагается определить в качестве упражнения :).&lt;br /&gt;
&lt;br /&gt;
== Создание кнопок ==&lt;br /&gt;
&lt;br /&gt;
Создадим теперь [[Button|кнопку]]. Для этого сделаем активной сцену '''stg_main''' в экране lesson_2_Main.&lt;br /&gt;
Затем откроем редактор ресурсов и перетащим на сцену картинку '''arrow_rt_norm''' из папки lesson2. Эта картинка появится на сцене и в дереве проекта под картинкой фона bg_3.&lt;br /&gt;
При помощи мышки, разместим её на сцене в правом нижнем углу фона.&lt;br /&gt;
&lt;br /&gt;
Чтобы превратить картинку в кнопку, необходимо в её свойствах (Properties) поменять тип&lt;br /&gt;
с image на '''button'''. Для этого кликаем справа от поля '''тип''' и в появившейся выпадалке выбираем button. Стоит обратить внимание на разнообразие игровых объектов. Часть из них будет описана в этих уроках, описание остальных можно найти в [[Absolutist_Framework|документации]].&lt;br /&gt;
&lt;br /&gt;
Следуя правилам хорошего тона переименуем объект, заменив его имя arrow_rt_normal на '''next_scr''' (следующий экран). Для этого редактируем поле имя в панели свойств (нажав после окончания Enter) или дважды кликаем в панели проекта (Layout). &lt;br /&gt;
&lt;br /&gt;
Откроем в свойствах кнопки группу '''внешний вид'''. Первые два поля '''up''' и '''down''' соответствуют картинкам изображающим отжатую и нажатую кнопку. Поле up уже заполнено картинкой arrow_rt_normal, которую мы превращали в кнопку. Зададим картинку для кнопки в состоянии нажатия.&lt;br /&gt;
Для этого кликаем справа от поля '''down''', чтобы оно стало редактируемым.&lt;br /&gt;
Затем снова открываем редактор ресурсов и хватем картинку arrow_rt_down из папки lesson_2.&lt;br /&gt;
Однако тащим её не на область редактирования сцены, а непосредственно в поле '''down''' свойства группы &amp;quot;внешний вид&amp;quot; кнопки next_scr. После того как мышка отпущена, кликаем в произвольное место вне поля редактирования, заканчивая тем самым процесс:&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson_2_btn_dn.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Обратим внимание, что поле редактирования должно быть активно в момент перетаскивания в него картинки. Поэтому, если редактор ресурсов еще не запущен, его необходимо сначала запустить, разместить поверх стальных окон (Always on Top), а только затем кликать в значение поля down и тащить в него картинку.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание!''' Имена картинок графических ресурсов в полях свойств объектов не являются простыми текстовыми надписями. С ними связывается конкретный файл из редактора ресурсов. Поэтому пытаться редактировать их руками не стоит. Эти поля нужно заполнять при помощи мышки, так как это описано выше. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Чтобы кнопка выполнила полезную функцию, отредактируем у неё ещё одно поле &amp;quot;'''перейти на'''&amp;quot;.&lt;br /&gt;
При клике справа от него выпадет список из доступных в проекте экранов. Выберем экран lesson_2_Sky.&lt;br /&gt;
&lt;br /&gt;
Теперь можно протестировать, что у нас получилось.&lt;br /&gt;
Проверяем, что в дереве проекта активным является экран lesson_2_Main.&lt;br /&gt;
Сохраняем изменения в проекте [[Файл:00 8.png]] и запускаем вьювер [[Файл:00 9.png]].&lt;br /&gt;
Нажимая на кнопку, убеждаемся, что происходит заданный переход из одного экрана на другой.&lt;br /&gt;
Обращаем внимание, также на изменение вида кнопки в момент клика на неё мышки.&lt;br /&gt;
&lt;br /&gt;
Как видно из списка свойств, кроме картинок up и down у кнопки есть еще поля для картинок '''over''' и '''disable'''. Первое соответствует  внешнему виду в момент когда мышь находится над кнопкой (но не нажата). Если игра пректируется для мобильных устройств (телефоны, планшетники), то обычно это поле не используется. Внешний вид disable (недоступна) соответствует виду кнопки, когда в неё нельзя кликать.&lt;br /&gt;
&lt;br /&gt;
== Навигация по экранам ==&lt;br /&gt;
&lt;br /&gt;
Повторим проделанные выше действия с двумя оставшимися экранами (lesson_2_Sky, lesson_2_Moon) этого урока. Поместим на lesson_2_Sky кнопку, по памяти, не подглядывая в предыдущие инструкции. Пусть при клике на неё происходит переход на экран lesson_2_Moon.&lt;br /&gt;
&lt;br /&gt;
Третью кнопку на экране lesson_2_Moon мы создадим новым методом.&lt;br /&gt;
Для этого наступим в дереве на уже существующую кнопку и нажмем правую кнопку мыши.&lt;br /&gt;
В выпавшем меню выберем пункт &amp;quot;'''Copy'''&amp;quot;. Можно также не пользуясь меню, при активном объекте на клавиатуре нажать клавиши '''Control''' и не отпуская её '''C'''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson_2_copy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь кликнем на stg_main экрана lesson_2_Moon и нажав правую кнопку мыши выберем пункт меню &amp;quot;''Paste into current object''&amp;quot;. Кнопка появится на экране и в дереве проекта.&lt;br /&gt;
&lt;br /&gt;
При копировании объекты сохраняют свои свойства.&lt;br /&gt;
Поэтому в скопированной кнопке необходимо изменить поле &amp;quot;'''перейти на'''&amp;quot;.&lt;br /&gt;
Давайте зациклим навигацию, сделав переходы:&lt;br /&gt;
 Main -&amp;gt; Sky -&amp;gt; Moon -&amp;gt; Main -&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Протестируем получившийся результат (сохраняем проект и запускаем вьювер).&lt;br /&gt;
Если при нажатии на кнопки не происходит листание трёх экранов по кругу, &lt;br /&gt;
необходимо у каждой кнопки проверить свойство &amp;quot;'''перейти на'''&amp;quot;,&lt;br /&gt;
убедившись, что оно ведет на правильный экран.&lt;br /&gt;
&lt;br /&gt;
== Работа с текстом ==&lt;br /&gt;
&lt;br /&gt;
Объекты можно создавать на сцене не только при помощи таскания картинок из&lt;br /&gt;
редактора ресурсов, а и прямо в дереве проекта.&lt;br /&gt;
Сделаем активным экран lesson_2_Sky и кликнем в нём на последний в его ветке дерева&lt;br /&gt;
объект (кнопка next_scr). Нажмём правую кнопку мыши и выберем пункт меню &lt;br /&gt;
&amp;quot;''Создать объект после текущего элемента...''&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[Файл:lesson_2_create.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
После этого в дереве появится&lt;br /&gt;
объект с именем  '''new_object''' типа image.&lt;br /&gt;
Впрочем непосредственно на сцене мы ничего не увидим кроме зеленой точки. Чтобы текст можно было перемещать, ему нужно задать ненулевой размер. Сделать это можно, отредактировав его свойства '''w''' (ширина) и '''h'''(высота) в разделе свойств объекта '''&amp;quot;размер&amp;quot;'''.После этого он будет отображаться как пустая зеленая рамка.&lt;br /&gt;
Тем не, менее схватимся за неё и расположим прямоугольник примерно по середине фона.&lt;br /&gt;
Если при попытке перетащить рамку, Вы промахнулись, то вместо неё сдвинется фон. &lt;br /&gt;
В этом случае, поставьте его на место и постарайтесь лучше прицелиться при хватании за рамку. &lt;br /&gt;
&lt;br /&gt;
Начнем теперь менять свойства созданного объекта:&lt;br /&gt;
* Зададим ему тип '''[[Text|text]]''' (в списке типов его возможно придется поискать в самом низу). &lt;br /&gt;
* Поменяем имя, например, на '''txt_first'''.&lt;br /&gt;
* В поле '''текст''' введем: &amp;quot;''И сказал Бог: да будет свет. И стал свет.''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:Ok.png|right|32px]]&lt;br /&gt;
'''Совет''': для ускорения поиска нужного типа в списке типов можно нажать первую букву имени типа (t). Если пометка стала на нужное место, нажмите Enter.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраним проект и запустим вьювер. Получившийся результат выглядит не очень красиво.&lt;br /&gt;
Текст вписался в рамку созданного объекта и оказался сильно сжатым. &lt;br /&gt;
Чтобы придать ему более читаемый вид закроем вьювер и изменим у txt_first&lt;br /&gt;
в панели Properties ещё несколько свойств:&lt;br /&gt;
* размер '''w''' = 400  (это новая ширина области в которую вписывается текст);&lt;br /&gt;
* форматирование '''отступ''' = 10 (это расстояние в пикселях между строчками).&lt;br /&gt;
Можно поэкспериментировать с другими параметрами свойств, читая их краткое описание в хинте, появляющемся при наведении мышки на имя свойства. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
[[файл:wrong.png|right|32px]]&lt;br /&gt;
'''Внимание:''' Описанный выше способ задания текста нельзя применять в реальных проектах. Обычно игра является мультиязычной. Поэтому, все тексты создаются в редакторе текстовых ресурсов, где переводятся на несколько языков. Соответствующий текстовый идентификатор перетаскивается аналогично картинкам в поле текстID.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Более подробное описание редактора текстовых ресурсов и работу с объектом text&lt;br /&gt;
мы рассмотрим позже в соответствующем [[Редактор текстовых ресурсов|уроке]]. &lt;br /&gt;
А пока вернемся к нашим кнопкам.&lt;br /&gt;
&lt;br /&gt;
== Логика переходов ==&lt;br /&gt;
&lt;br /&gt;
Пока кнопки, осуществлявшие переходы на следующие экраны, вели себя достаточно однообразно.&lt;br /&gt;
Придадим нашему приложению небольшую непредсказуемость.&lt;br /&gt;
Для этого активизируем второй экран (lesson_2_Sky) и кликнем на его объект '''next_scr'''.&lt;br /&gt;
В панели свойств этой кнопки на свойстве &amp;quot;'''перейти на'''&amp;quot; нажмём правую кнопку мыши.&lt;br /&gt;
В появившемся меню выберем пункт &amp;quot;''если был экран''&amp;quot;.&lt;br /&gt;
В результате, ниже поля &amp;quot;перейти на&amp;quot; появится пара полей, объединенных свойством &amp;quot;если был экран&amp;quot;.&lt;br /&gt;
В первом поле группы &amp;quot;'''был экран'''&amp;quot; выберем экран lesson_2_Moon, а во втором поле &amp;quot;'''перейти на'''&amp;quot; - экран lesson_2_Main:&lt;br /&gt;
&lt;br /&gt;
[[файл:lesson2_cond.png]]&lt;br /&gt;
&lt;br /&gt;
Активизируем в дереве проектов первый экран этого урока (lesson_2_Main),&lt;br /&gt;
сохраним проект и запустим вьювер. Кликая на кнопки следующего экрана,&lt;br /&gt;
мы первый раз пролистаем их все. Повторим этот процесс ещё раз.&lt;br /&gt;
Когда мы окажемся второй раз на экране с небом (lesson_2_Sky), кнопка следующего экрана&lt;br /&gt;
перебросит нас не на третий экран (lesson_2_Moon), как раньше, а на первый (lesson_2_Main).&lt;br /&gt;
После этого все время будут происходить переходы только между первым и вторым экранами.&lt;br /&gt;
&lt;br /&gt;
Логика получившегося результата состоит в следующем.&lt;br /&gt;
Свойство '''перейти на''', находящееся в панели Properties по умолчанию,&lt;br /&gt;
является безусловным переходом. Если в этом поле задан конкретный экран, при клике на кнопку вьювер отправится именно туда. Однако, этот переход происходит только в тех случаях, если не заданы дополнительные условные переходы (или условие срабатывание не выполняется ни для одного из этих переходов). Иными словами, вьвер сначала попытается совершить условный переход, для которого выполнилось условие срабатывания. Если такого перехода не найдется, будет выполнен переход по умолчанию. Условные переходы мы добавляем динамически в свойства кнопки при помощи правой кнопки мыши.&lt;br /&gt;
В нашем случае, добавленные два поля звучат так:&lt;br /&gt;
 Если уже '''был экран''' lesson_2_Moon, то надо '''перейти на''' экран lesson_2_Main.&lt;br /&gt;
&lt;br /&gt;
Пусть проект был запущен с первого экрана lesson_2_Main. На нём мы кликнули на кнопку и оказались на следующем экране lesson_2_Sky. Кнопка этого экрана содержит условный переход. Однако, первый раз он не срабатывает, так как на экране lesson_2_Moon мы ещё не были (и соответствующее условия срабатывания не выполнено). В результате, при клике на кнопку выполняется переход по умолчанию '''перейти на''' lesson_2_Moon. Когда пролистав по кругу все экраны, мы снова оказываемся на lesson_2_Sky, условный переход уже срабатывает (мы были на экране lesson_2_Moon). Поэтому, мы отправляемся на первый экран lesson_2_Main.&lt;br /&gt;
&lt;br /&gt;
Как мы видим, кнопка может выполнять достаточно сложные логические функции.&lt;br /&gt;
У неё много динамически добавляемых полей. Они позволяют менять другие объекты, совершать некоторые служебные действия и т.д.&lt;br /&gt;
&lt;br /&gt;
== Добавление картинок в ресурсы == &lt;br /&gt;
&lt;br /&gt;
Данный проект содержит все необходимые графические ресурсы для выполнения уроков.&lt;br /&gt;
Однако, если Вы креативный человек (а другие эти уроки не читают), Вам, рано или поздно,&lt;br /&gt;
захочется добавить собственную картинку в игровой проект.&lt;br /&gt;
&lt;br /&gt;
Делается это очень просто. В редакторе ресурсов станьте мышкой на имя папки с текущем уроком (lesson_02)&lt;br /&gt;
и нажмите правую кнопку. В появившемся меню выберете пункт &amp;quot;''Add Images...''&amp;quot;.&lt;br /&gt;
Затем, найдите нужную картинку у себя на диске:&lt;br /&gt;
&lt;br /&gt;
[[файл:lesson_2_addImg.png]]&lt;br /&gt;
&lt;br /&gt;
Она добавится в графические ресурсы и появится в списке доступных картинок &lt;br /&gt;
в редакторе ресурсов. Теперь можно смело перетаскивать её на сцену.&lt;br /&gt;
&lt;br /&gt;
Аналогично можно добавить и другие ресурсы.&lt;br /&gt;
Например, для анимации нужно выбрать группу картинок. Анимация добавится с названием, идентичным названию папки, содержащей ресурсы.&lt;br /&gt;
&lt;br /&gt;
== Упражнения ==&lt;br /&gt;
&lt;br /&gt;
* Добавьте на все экраны кнопку в виде стрелочки влево (поместив её в левом нижнем углу). Активнее используйте копирование объектов.&lt;br /&gt;
* Задайте соответствующие переходы между экранами (листание в обратную сторону).&lt;br /&gt;
* Добавьте на последний экран любой на Ваш выбор текст; отформатируйте его.&lt;br /&gt;
* Сделайте логику перехода по экранам, при которой после первого экрана мы попадаем сразу на третий, если уже был второй.&lt;br /&gt;
* Загрузите в проект свою любимую картинку или фотографию и разместите её на любом из созданных в этом уроке экране. Если она окажется слишком большой, вспомните о модификаторах масштаба.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) после запуска видео через 10 секунд оно автоматически становилось на паузу;&lt;br /&gt;
&lt;br /&gt;
b) чтобы видео запускалось сразу после загрузки экрана.&lt;br /&gt;
&lt;br /&gt;
== Эффекты с Альфа каналом ==&lt;br /&gt;
 &lt;br /&gt;
В этом уроке рассмотрим эффект с альфаканалом на примере смены экранов.&lt;br /&gt;
&lt;br /&gt;
1. Откройте первый экран из урока 2.&lt;br /&gt;
&lt;br /&gt;
2. Выделите экран и посмотрите на его свойства. Вы увидите пункт '''анимация переходов'''.&lt;br /&gt;
&lt;br /&gt;
3. Выставьте тип перехода и время растворения как показано на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_16.jpg‎]]&lt;br /&gt;
&lt;br /&gt;
4. Сохраните проект и проверьте переход с этого экрана во viewer. Экран сменяется другим экраном путем плавного растворения по альфе.&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
В этом уроке мы поставили время растворения 2 секунды. Таким образом наша смена экранов выглядит как слайд-шоу. В большинстве случаев это большое время. Путем подбора времени растворения сделайте смену экранов наиболее привлекательной. Сделайте то же самое для двух остальных экранов.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Введение в AppSalute Сreator|Урок 1]] &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; [[Checkbox как машина состояний|Урок 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Anecheporenko</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8&amp;diff=9394</id>
		<title>Работа с эффектами</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8&amp;diff=9394"/>
		<updated>2018-02-02T15:02:12Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Настройка миниигр|Урок 8]] &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; [[Экспорт, импорт и релиз проекта|Урок 10]]&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;
* Создать экран, на котором можно освоить работу с патиклами (объект flyer) и масками ;&lt;br /&gt;
* Создать экран и настроить просмотр Видео&lt;br /&gt;
* Настроить появление сцены с проявлением по альфе, переходи на следующий экран с проявлением по альфе&lt;br /&gt;
* Настроить фоновую музыку.&lt;br /&gt;
&lt;br /&gt;
== Партиклы (Particles) ==&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.3, создать экран Lesson_09.&lt;br /&gt;
&lt;br /&gt;
4. В экране Lesson_09 создать новую сцены 09 , в которую (через Resources Editor) добавить графические ресурсы из папки Sources\Lesson_09 (см. подготовка к работе «Создание проекта»).&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_1.jpg|350px]]&lt;br /&gt;
&lt;br /&gt;
'''Настройка объектов, работа с маской'''&lt;br /&gt;
&lt;br /&gt;
В этом уроке поработаем над использованием объекта flyer (Particles). Параллельно с этим научимся пользоваться хитрым приемом &amp;quot;маска&amp;quot;. В редактор ресурсов вы подгрузили уже знакомую вам графику &amp;quot;лунного пейзажа&amp;quot; и две части слоненка. &lt;br /&gt;
&lt;br /&gt;
1. Разместим их на сцене как показано на рисунке.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_2.jpg|350px]]&lt;br /&gt;
&lt;br /&gt;
2. Сделаем из головы слоненка машину состояний. Голова должна вертеться из стороны в сторону с интервалом в 1 секунду. Запишем в состояниях машины следующие параметры.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_3.jpg|350px]]&lt;br /&gt;
&lt;br /&gt;
3. Посмотрите результат с помощью программы viewer. Слоненок будет мотать головой.&lt;br /&gt;
&lt;br /&gt;
4. Теперь мы хотим, чтобы клик на слоненка вызывал какое-то действие, например, чтобы шел снег. Можно сделать из туловища машину состояний, но туловище маленькое, а нам нужен именно весь слоненок. Для этого нам понадобится маска. Из редактора ресурсов перетащим на сцену графический ресурс mask и переместим ее на слоненка. Маска очень маленькая, чтобы закрывать всего слоненка, поэтому воспользуемся модификаторами. Увеличим маску и сделаем ей прозрачность (alpha) 0,01.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_4.jpg|350px]]&lt;br /&gt;
&lt;br /&gt;
На сцене вы можете увидеть вокруг слоненка рамку от маски. Саму маску не видно из-за прозрачности. Стоит обратить внимание на то, что прозрачность мы сделали 0,01. Если бы она была равна 0, то маска не воспринимала бы клик, а была бы полностью прозрачной.&lt;br /&gt;
&lt;br /&gt;
5. Как вы уже догадались, маска у нас будет машиной состояний, включающей другой объект. Этим другим объектом будет flyer. Флаеры (патиклы) используются для создания эффектов, когда один маленький объект размножается и совершает какие-либо действия, при этом все его частички ведут себя подобно.&lt;br /&gt;
&lt;br /&gt;
Перетащим из редактора ресурсов на сцену графический ресурс snow и разместим его на сцене посередине по оси x (x=0) и вверху, немного за сценой (y=-320). Сделайте объекту тип flyer.&lt;br /&gt;
&lt;br /&gt;
6. Параметры флаера настроим немного позже, а сейчас вернемся к нашей маске. Сделайте маске тип machine. И введите следующие параметры.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_5.jpg|350px]]&lt;br /&gt;
&lt;br /&gt;
В первом состоянии (начальном) машина передает объекту snow состояние end, а во втором - beg. У флаера есть два состояния end и beg, в которых он выключен и включен соответственно. Чтобы без нашего желания флаер не запускался, в свойствах snow в поле &amp;quot;состояние&amp;quot; запишем его начальное состояние end.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
Подробно о свойствах флаера можно почитать [[Flyer|тут]]. Для того чтобы из него получился снег запишите следующие свойства.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
7. Сохраните проект и проверьте его выполнение в программе viewer. При клике на слоненка начинает идти снег, а при повторном клике снег исчезает.&lt;br /&gt;
&lt;br /&gt;
8. Следующей нашей задачей будет создание разлетающегося кольца из звездочек вокруг желтой звезды на сцене, при клике на эту звезду. Представьте, что эта сцена у вас сейчас на экране мобильного телефона, а вам нужно дотронуться до звезды. Звезда очень маленькая, как следствие - по ней трудно попасть. Здесь нам на помощь опять явится маска. Снова перетащите ресурс mask на сцену из редактора ресурсов, переименуйте его в star_mask и поместите точно над звездой.&lt;br /&gt;
&lt;br /&gt;
9. Растягивать маску не нужно, она таких размеров, как нам нужно. В свойствах star_mask в модификаторах задайте alpha=0,01.&lt;br /&gt;
&lt;br /&gt;
10. Добавьте на сцену ресурс star из редактора ресурсов и поместите его точно на звезду.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_8.jpg]]&lt;br /&gt;
&lt;br /&gt;
11. Объекту star_mask нужно изменить тип на machine, а объекту star на flyer.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_9.jpg]]&lt;br /&gt;
&lt;br /&gt;
12. Задайте машине star_mask следующие состояния.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_10.jpg]]&lt;br /&gt;
&lt;br /&gt;
13. Флаеру star пропишите следующие свойства.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_11.jpg]]&lt;br /&gt;
&lt;br /&gt;
14. Сохраните проект и проверьте его выполнение в программе viewer. При клике на звезду флаер будет вести себя как взрыв сверхновой (или салют).&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
1. Щелкнув правой кнопкой мыши по экрану Lesson_09, создать новый экран Lesson_09.1&lt;br /&gt;
&lt;br /&gt;
2. Создать новую сцену с названием .&lt;br /&gt;
&lt;br /&gt;
3. Скопировать все объекты из сцены 09 (экрана Lesson_09).&lt;br /&gt;
&lt;br /&gt;
4. Вставить скопированые объекты в новую сцену (экрана Lesson_09.1).&lt;br /&gt;
&lt;br /&gt;
5. В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) снег шел при клике на любую область экрана;&lt;br /&gt;
b) изменить параметры флаера snow таким образом, чтобы он выглядел как дождь;&lt;br /&gt;
с) поиграйтесь с параметрами флаера, чтобы прочувствовать зависимость поведения флаера от его параметров.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Использование Видео ==&lt;br /&gt;
&lt;br /&gt;
'''Создание экрана и сцены в игровом проекте'''&lt;br /&gt;
&lt;br /&gt;
1. Создайте еще один экран Lesson_9.2 после экрана Lesson_9.1.&lt;br /&gt;
&lt;br /&gt;
2. Добавьте сцену 09.&lt;br /&gt;
&lt;br /&gt;
3. Загрузите на сцену ресурсы к этому уроку из редактора ресурсов (bg, play).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Настройка объектов, работа с видео'''&lt;br /&gt;
&lt;br /&gt;
1. Создайте на сцене новый объект и сделайте ему тип video. Переименуйте его в video.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_12.jpg|350px]]&lt;br /&gt;
&lt;br /&gt;
2. Из ресурса play сделайте машину состояний. Пропишите машине следующие состояния.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_13.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Объекту video выставляем следующие параметры. &lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_14.jpg]]&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что id видео перетаскивается мышкой из редактора ресурсов.&lt;br /&gt;
&lt;br /&gt;
4. Сохраните проект и посмотрите результат в программе viewer.&lt;br /&gt;
&lt;br /&gt;
== Звуки ==&lt;br /&gt;
 &lt;br /&gt;
Для того, чтобы игра была веселее и живее в редакторе предусмотрена возможность использовать звуки. В этом уроке мы научимся ставить фоновую музыку.&lt;br /&gt;
&lt;br /&gt;
1. Вернитесь к экрану Lesson_09.&lt;br /&gt;
&lt;br /&gt;
2. Создайте на сцене 09 новый объект и назовите его music.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_12.jpg]]&lt;br /&gt;
&lt;br /&gt;
3. Сделайте из объекта music машину состояний и пропишите следующие состояния.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Lesson9_15.jpg]]&lt;br /&gt;
&lt;br /&gt;
Согласно этих состояний, сразу после запуска экрана начинает играть музыка music_gaming_04. Через 60 секунд после начала машина идет в состояние stop, где дается команда mus_stop и проигрывание музыки останавливается. Музыку можно не останавливать, тогда она будет играть по кругу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Упражнения ===&lt;br /&gt;
&lt;br /&gt;
В новой сцене постарайтесь сами прописать состояния и команды в измененную задачу. Сделайте так, чтобы:&lt;br /&gt;
&lt;br /&gt;
a) после остановки проигрывания музыки можно кликом на слоненка снова ее запустить;&lt;br /&gt;
&lt;br /&gt;
b) чтобы музыка останавливалась кликом на слоненка.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;  &lt;br /&gt;
 | width=&amp;quot;40%&amp;quot;|[[Настройка миниигр|Урок 8]] &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; [[Экспорт, импорт и релиз проекта|Урок 10]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Learning]]&lt;/div&gt;</summary>
		<author><name>Anecheporenko</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=9392</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=9392"/>
		<updated>2018-02-02T14:52:22Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: /* Настройка объектов */&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;
[[Файл:lesson8_table_setup.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;
[[Файл:Lesson8.3.Fin.png]]&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>Anecheporenko</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Lesson8.3.Fin.png&amp;diff=9391</id>
		<title>Файл:Lesson8.3.Fin.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Lesson8.3.Fin.png&amp;diff=9391"/>
		<updated>2018-02-02T14:52:05Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Anecheporenko</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=9390</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=9390"/>
		<updated>2018-02-02T14:47:26Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: /* Настройка объектов */&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;
[[Файл:lesson8_table_setup.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;
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>Anecheporenko</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Lesson8_table_setup.png&amp;diff=9389</id>
		<title>Файл:Lesson8 table setup.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Lesson8_table_setup.png&amp;diff=9389"/>
		<updated>2018-02-02T14:46:57Z</updated>

		<summary type="html">&lt;p&gt;Anecheporenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Anecheporenko</name></author>
		
	</entry>
</feed>