<?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=Denisov</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=Denisov"/>
	<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/Denisov"/>
	<updated>2026-10-17T03:41:21Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Solitaire&amp;diff=8596</id>
		<title>Solitaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Solitaire&amp;diff=8596"/>
		<updated>2017-03-06T13:29:18Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Solitaire''' - [[Object|объект]] для реализации группы карточных игр типа &amp;quot;пасьянс&amp;quot; (одиночных карточных игр).&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''карты''' ''(cards)'' - ссылка на графический ресурс карт. Ресурс состоит из клипов анимации в 54 кадра. Первые 52 - стандартная колода от туза до короля поочередно мастей трефы, бубны, черви, пики. 53-я карта - универсальный джокер, 54-я - карта удаления.&lt;br /&gt;
*'''рубашка''' ''(back)'' - графический ресурс рубашки.&lt;br /&gt;
*'''место для карт''' ''(place)'' - графический ресурс места для карт.&lt;br /&gt;
*'''кнопка deal''' ''(deal)'' - графический ресурс кнопки deal.&lt;br /&gt;
*'''номер правил''' ''(gameRule)'' - номер правил пасьянсов. Определяет по каким правилам будет идти игра.&lt;br /&gt;
*'''надписи''' &lt;br /&gt;
**'''шрифт''' ''(fn)'' - номер шрифта&lt;br /&gt;
**'''размер''' ''(fs)'' - размер шрифта&lt;br /&gt;
**'''цвет1''' ''(fc1)'' - цвет надписей&lt;br /&gt;
***'''Red''' - красный&lt;br /&gt;
***'''Green''' - зеленый&lt;br /&gt;
***'''Blue''' - голубой&lt;br /&gt;
***'''Alpha''' - прозрачность&lt;br /&gt;
*'''настроечные файлы''' - файлы с настройками игры (расположением карт, правилами)&lt;br /&gt;
**'''основной конфиг''' ''(cfgmain)'' - ссылка на файл основного конфига&lt;br /&gt;
**'''считать зашифрованным''' ''(cfgmain_c)'' - считать ли основной конфиг зашифрованным&lt;br /&gt;
**'''каталог с настройками''' ''(pathtunes)'' - ссылка на каталог с дополнительными настройками&lt;br /&gt;
**'''считать зашифрованным''' ''(pathtunes_c)'' - считать ли файлы настроек зашифрованными&lt;br /&gt;
**'''каталог со скриптами''' ''(pathscripts)'' - ссылка на каталог с файлами скриптов&lt;br /&gt;
**'''считать зашифрованным''' ''(pathscripts_c)'' - считать ли файлы настроек зашифрованными&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Solitaire&amp;diff=8595</id>
		<title>Solitaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Solitaire&amp;diff=8595"/>
		<updated>2017-03-06T13:22:00Z</updated>

		<summary type="html">&lt;p&gt;Denisov: Новая страница: «'''Solitaire''' - объект для реализации группы карточных игр типа &amp;quot;пасьянс&amp;quot; (одиночных кар…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Solitaire''' - [[Object|объект]] для реализации группы карточных игр типа &amp;quot;пасьянс&amp;quot; (одиночных карточных игр).&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''карты''' ''(cards)'' - ссылка на графический ресурс карт. Ресурс состоит из клипов анимации в 54 кадра. Первые 52 - стандартная колода от туза до короля поочередно мастей трефы, бубны, черви, пики. 53-я карта - универсальный джокер, 54-я - карта удаления.&lt;br /&gt;
*'''рубашка''' ''(back)'' - графический ресурс рубашки.&lt;br /&gt;
*'''место для карт''' ''(place)'' - графический ресурс места для карт.&lt;br /&gt;
*'''кнопка deal''' ''(deal)'' - графический ресурс кнопки deal.&lt;br /&gt;
*'''номер правил''' ''(gameRule)'' - номер правил пасьянсов. Определяет по каким правилам будет идти игра.&lt;br /&gt;
*'''надписи''' &lt;br /&gt;
**'''шрифт''' ''(fn)'' - &lt;br /&gt;
**'''размер''' ''(fs)'' -&lt;br /&gt;
**'''цвет1''' ''(fc1)'' - &lt;br /&gt;
***'''Red''' - &lt;br /&gt;
***'''Green''' - &lt;br /&gt;
***'''Blue''' - &lt;br /&gt;
***'''Alpha''' - &lt;br /&gt;
*'''настроенные файлы''' - &lt;br /&gt;
**'''основной конфиг''' ''(cfgmain)'' - &lt;br /&gt;
**'''считать зашифрованным''' ''(cfgmain_c)'' - &lt;br /&gt;
**'''каталог с настройками''' ''(pathtunes)'' - &lt;br /&gt;
**'''считать зашифрованным''' ''(pathtunes_c)'' - &lt;br /&gt;
**'''каталог со скриптами''' ''(pathscripts)'' - &lt;br /&gt;
**'''считать зашифрованным''' ''(pathscripts_c)'' -&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8594</id>
		<title>Absolutist Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8594"/>
		<updated>2017-03-02T15:17:51Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Game mechanic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
'''[[:category:main|Категории]]'''&lt;br /&gt;
== Новости ==&lt;br /&gt;
Вышла новая игра HOG созданная с помощью AppSalute Game Сreator. Созданы новые уникальные эффекты и механики для обеспечения незабываемых впечатлений.&lt;br /&gt;
Описание и видео:&lt;br /&gt;
http://time-gap.com/&lt;br /&gt;
&lt;br /&gt;
== AppSalute Game Сreator ==&lt;br /&gt;
* [[Примеры приложений]]&lt;br /&gt;
* [[Введение в AppSalute Game Сreator]]&lt;br /&gt;
* [[Установка и настройка]]&lt;br /&gt;
* [[Интерфейс ScenceEditor ]]&lt;br /&gt;
* [[Интерфейс ResourceEditor ]]&lt;br /&gt;
* [[Интерфейс TextEditor ]]&lt;br /&gt;
*[[Интерфейс Viewer ]]&lt;br /&gt;
* [[Книга жалоб и пожеланий]]&lt;br /&gt;
* [[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
== Обучение ==&lt;br /&gt;
&lt;br /&gt;
* [[Learning|Уроки по освоению фреймворка]]&lt;br /&gt;
* [[Примеры реализации в играх]]&lt;br /&gt;
* [[Основные понятия объектов физического мира]]&lt;br /&gt;
* [[Использование AppSalute Debugger при отладке]]&lt;br /&gt;
* [[Отладка на флеше]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Подготовка проекта ==&lt;br /&gt;
* [[Проектирование экранов игры]]&lt;br /&gt;
* [[Подготовка и форматы графики]]&lt;br /&gt;
* [[Подготовка и форматы шрифтов]]&lt;br /&gt;
* [[Подготовка и форматы звуков]]&lt;br /&gt;
* [[Подготовка и форматы видео]]&lt;br /&gt;
* [[Создание проекта]]&lt;br /&gt;
* [[Загрузка проекта по частям]]&lt;br /&gt;
* [[Конфигурация проекта для сборки]]&lt;br /&gt;
* [[Подготовка для загрузки на маркеты]]&lt;br /&gt;
* [[Сборка проекта]]&lt;br /&gt;
* [[Частые ошибки]]&lt;br /&gt;
* [[Отличия подготовки проекта для разных платформ]]&lt;br /&gt;
* [[Lua|Использование lua-скриптов]]&lt;br /&gt;
* [[Подготовка версии для Viber]]&lt;br /&gt;
* [[Проверка подгрузки текстур]]&lt;br /&gt;
* [[Экспорт проекта]]&lt;br /&gt;
&lt;br /&gt;
== Встроенные объекты редактора==&lt;br /&gt;
&lt;br /&gt;
=== Common objects  ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Screen.png]] - [[Screen]]'' - экран&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Scene.png]] - [[Scene]]'' - сцена&lt;br /&gt;
&lt;br /&gt;
=== Main objects ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Objects.png]] - [[Object]]'' - общие параметры для всех игровых объектов&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Azmanager]] - менеджер активных зон&lt;br /&gt;
* [[Файл:Kub.png]] - [[Active zone]] - активная зона&lt;br /&gt;
* [[Файл:Picture.png]] - [[Image]] - картинка&lt;br /&gt;
* [[Файл:Kub.png]] - [[Statistic]] - объект для отправки событий статистики.&lt;br /&gt;
* [[Файл:Button.png]] - [[Button]] - кнопка&lt;br /&gt;
* [[Файл:Text.png]] - [[Text]] - текст&lt;br /&gt;
* [[Файл:Machine.png]] - [[Machine]] - машина состояний&lt;br /&gt;
** [[Файл:Mwindow.png]] - [[Mwindow]] - машина состояний - окно&lt;br /&gt;
* [[Файл:Tableicon.png]] - [[Table]] - таблица&lt;br /&gt;
* [[Файл:Checkbox.png]] - [[Checkbox]] - чекбокс (кнопка в 2-х состояниях)&lt;br /&gt;
* [[Файл:Checkgroup.png]] - [[Groupbox]] - группа, содержащая несколько чекбоксов&lt;br /&gt;
* [[Файл:Timer.png]] - [[Timer]] - цифровой таймер&lt;br /&gt;
** [[Файл:Kub.png]] - [[Globaltimer]] - таймер &amp;quot;реального времени&amp;quot;&lt;br /&gt;
* [[Файл:Counter2.png]] - [[Counter]] - счетчик сделанных кликов в игре и т.п.&lt;br /&gt;
* [[Файл:Progressbar.png]] - [[Progress]] - прогресс прохождения игры (эчивмент)&lt;br /&gt;
* [[Файл:Particle.png]] - [[Flyer]] - флаер (патиклы)&lt;br /&gt;
* [[Файл:Rectangle.png]] - [[Rectangle]] - прямоугольник&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomover]] - объект движения в изометрической карте&lt;br /&gt;
* [[Файл:Group.png]] - [[Group]] - группа&lt;br /&gt;
* [[Файл:Groupset.png‎]] - [[Groupset]] - группа&lt;br /&gt;
* [[Файл:Effect.jpg|20px]] - [[Effect]] - Создание различных эффектов&lt;br /&gt;
* [[Файл:Graphprogress.png]] - [[Graphprogress]] - создание мини-карты для отображения прогресса прохождения игры.&lt;br /&gt;
* [[Файл:Statesmanager_ico.png]] - [[Statesmanager]] - очередь работы с объектами&lt;br /&gt;
* [[Файл:Slider icons.png]] - [[Slider]] - объект реализующий листание списка.&lt;br /&gt;
* [[Файл:Ribbon.png]] - [[Ribbon]] - объект отображения графики по сплайну&lt;br /&gt;
* [[Файл:Kub.png]] - [[Animation]] - объект различных анимаций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Magicparticles]] - объект файлов Magic Particles&lt;br /&gt;
* [[Файл:Kub.png]] - [[puzzle3D]] - 3D паззл&lt;br /&gt;
&lt;br /&gt;
=== Game mechanic ===&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Avoider]] - эвойдер&lt;br /&gt;
* [[Файл:Puzzle.png]] - [[Puzzle]] - игра пазл&lt;br /&gt;
* [[Файл:Memory.png]] - [[Memory]] - класс игр с memory-механикой&lt;br /&gt;
* [[Файл:Patchwork.png]] - [[Patchwork]] - класс игр с Patchwork-механикой&lt;br /&gt;
* [[Файл:Match3.png]] - [[Match]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Collaps.png]] - [[Collapse]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Bejewelled.png]] - [[Bejewelled]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:BubbleShooter.png]] - [[Bubble Shooter]] - класс Bubble игр включая механику Снукер&lt;br /&gt;
* [[Файл:Tapthebubble.png]] - [[TapTheBubble]] - механика игры Tap The Bubble&lt;br /&gt;
* [[Файл:GemSlider.jpg]] - [[Gem Slider]] - механика игры Gem Slider&lt;br /&gt;
* [[Файл:W-57.png]] - [[Words]] - механика игры Words&lt;br /&gt;
* [[Файл:Kub.png]] - [[2048]] - механика игры 2048&lt;br /&gt;
* [[Файл:Kub.png]] - [[Planet]] - игра &amp;quot;Планетки&amp;quot;&lt;br /&gt;
* [[Файл:Kub.png]] - [[Unblock]] - механика игры unblock&lt;br /&gt;
* [[Файл:Matchbattle.png]] - [[Match Battle]] - настройка глобальных параметров для мини-игр&lt;br /&gt;
* [[Файл:Move box.png]] - [[DragBox]] - класс игр с dragbox-механикой&lt;br /&gt;
* [[Файл:Labyrinth.png]] - [[Labyrinth]] - класс игр лабиринт&lt;br /&gt;
* [[Файл:Pipes.png]] - [[Pipes]] - класс игр трубы&lt;br /&gt;
* [[Файл:Search object.png]] - [[HiddenObject]] - поисковый объект в хидден играх&lt;br /&gt;
* [[Файл:Object list.png]] - [[HiddenList]] - список поисковых объектов в хидден играх&lt;br /&gt;
* [[Файл:Hint.png]] - [[HiddenHint]] - подсказка (указатель на спрятанный объект)&lt;br /&gt;
* [[Файл:Kub.png]] - [[HiddenHighLighter]] - позволяет показать не найденные объекты в хиддене.&lt;br /&gt;
* [[Файл:Collection.png]] - [[Collection]] - &amp;quot;коллекция&amp;quot; поисковых объектов для хидден игр&lt;br /&gt;
* [[Файл:Inventory.png]] - [[Inventory]] - &amp;quot;инвентарь&amp;quot; список применяемых объектов для игр&lt;br /&gt;
* [[Файл:Tool.png]] - [[Tool]] - &amp;quot;применение&amp;quot; - объект, который можно применить для игр&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomap]] - изометрическая карта&lt;br /&gt;
* [[Файл:Slotmachine.png]] - [[Slotmachine]] - объект типа &amp;quot;slot&amp;quot;&lt;br /&gt;
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер&lt;br /&gt;
** [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря/магазина и экономики &lt;br /&gt;
** [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина &lt;br /&gt;
** [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря &lt;br /&gt;
** [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета.&lt;br /&gt;
** [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий &lt;br /&gt;
*** [[Файл:Kub.png]] - [[Etasktemplate]] - шаблон задачи для таблицы темплейтов.&lt;br /&gt;
** [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания&lt;br /&gt;
** [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции&lt;br /&gt;
* [[Файл:Paint.png‎]] - [[Paint]] - объект для рисования &lt;br /&gt;
* [[Файл:Physicsworld.png]] - [[Physicsworld]] - физический мир Box2D&lt;br /&gt;
** [[Файл:Physicsobject.png]] - [[Physicsobject]] - физические объекты&lt;br /&gt;
** [[Файл:Physics links.png]] - [[Physicsjoint]] - физические соединения&lt;br /&gt;
*  [[Файл:Eraser.png]] - [[Eraser]] - стирачка&lt;br /&gt;
* [[Файл:Kub.png]] - [[trivia]] - игровая механика - миллионер (trivia)&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dailybonus]] - объект для управления механизмом ежедневного бонуса за вход в игру.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pet]] - объект питомца.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetCollectionTemplate]] - объект шаблона ячейки с коллекцией.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetTemplate]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[CakeTower]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pentamino]] - механика игры в [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8%D0%BD%D0%BE пентамино]&lt;br /&gt;
* [[Файл:Kub.png]] - [[TapTheNew]]&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressing]] - гардероб.&lt;br /&gt;
** [[Файл:Kub.png]] - [[Dressingtemplate]] - объект шаблона гардероба.&lt;br /&gt;
* [[Файл:Kub.png]] - [[solitaire]] - солитер&lt;br /&gt;
&lt;br /&gt;
* [[Файл:digitz.png]] - [[Digitz]] - механика игры Digitz.&lt;br /&gt;
&lt;br /&gt;
=== Global score ===&lt;br /&gt;
* [[Файл:Gamecenter.png]] - [[Gamecenter]] - объект для отправки данных на GameCenter iTunse&lt;br /&gt;
**[[Файл:Kub.png]] - [[Achievementitem]] -  шаблон локального достижения (оффлайн ачивка)&lt;br /&gt;
* [[Файл:Gamecircle.jpg]] - [[Amazon GameCircle]] - объект для отправки данных Amazon GameCircle&lt;br /&gt;
* [[Файл:Google-play-games-android.jpg‎]] - [[Google Play services]] - объект для отправки данных на Google Play services&lt;br /&gt;
* [[Файл:Localtoplist.png]] - [[Localtoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltoplist.png]] - [[Globaltoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltopsender.png]] - [[Globaltopsender]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
* [[Файл:Options.png]] - [[Options]] - общие настройки игры&lt;br /&gt;
* [[Файл:Gamedata.png]] - [[Gamedata]] -&lt;br /&gt;
* [[Файл:Controls.png]] - [[Controls]] - обьект для работы с клавишами клавиатуры или девайса &lt;br /&gt;
* [[Файл:Editicon.png]] - [[Edit]] - ввод текста&lt;br /&gt;
* [[Файл:Store.png]] - [[Store]] - настройки InApp покупок в игре&lt;br /&gt;
** [[Файл:Kub.png]] - [[Wallet]] - объект для начисления игровой валюты при InApp покупках через объект economics&lt;br /&gt;
* [[Файл:Notification.png]] - [[Notification]] - push-уведомления&lt;br /&gt;
* [[Файл:Imagepicker.png]] - [[Imagepiker]] - объект для загрузки фото из галереи&lt;br /&gt;
* [[Файл:Video.png]] - [[Video]] - объект для просмотра видео&lt;br /&gt;
* [[Файл:Webview.png]] - [[Webview]] - объект для просмотра интернет страниц в приложении&lt;br /&gt;
* [[Файл:Flurryobject.png]] - [[Flurry]] - настройки системы статистики для приложений https://dev.flurry.com&lt;br /&gt;
* [[Файл:Moregames.png]] - [[MoreGamesList]] - запрос банеров рекламируемых игр&lt;br /&gt;
* [[Файл:Advertisement.png]] - [[Advertisement]] - банерная система flurry, amazon&lt;br /&gt;
* [[Файл:Splitmanager.png]] - [[Splitmanager or A\B Testing]] - менеджер сплитов&lt;br /&gt;
* [[Файл:Tapjoy.png]] - [[Tapjoy]] - система рекламы игр&lt;br /&gt;
* [[Файл:Playhaven.png|24px]] - [[Playhaven]] - система рекламы игр с внутренними up-sale&lt;br /&gt;
* [[Файл:Mobileapptracker.png|24px]] - [[Mobileapptracking]] -&lt;br /&gt;
* [[Файл:Chartboost-logo-new.jpeg]] - [[Chartboost]] -  Chartboost-logo-new.jpeg&lt;br /&gt;
* [[Файл:Kub.png]] - [[SuperSonic]] -  провайдер рекламы SuperSonic&lt;br /&gt;
* [[Файл:Kub.png]] - [[System]] - объект для доступа к системным настройкам&lt;br /&gt;
* [[Файл:Kub.png]] - [[Salesmanager]] - менеджер акций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Cloud]] - объект для синхронизации в облаке&lt;br /&gt;
* [[Файл:Kub.png]] - [[Game]] - объект для отправки событий&lt;br /&gt;
&lt;br /&gt;
=== Social ===&lt;br /&gt;
* [[Файл:Facebook.png]] - [[Facebook]] - настройки расшаривания Facebook&lt;br /&gt;
** [[Файл:Esocialfrienditem.png]] - [[Esocialitem]] - Шаблон для ячейки списка друзей&lt;br /&gt;
** [[Файл:Kub.png]] - [[Esocialgiftitem]] - Шаблон для ячейки с предметом, который можно подарить другу&lt;br /&gt;
** [[Файл:Esocial.png]] - [[Esocial]] - объект для взаимодействия с Facebook'ом&lt;br /&gt;
* [[Файл:Twitter.png]] - [[Twitter]] - настройки расшаривания Twitter&lt;br /&gt;
* [[Файл:Odnoklassniki.png]] - [[Odnoklassniki]] - настройки для социальной сети Одноклассники&lt;br /&gt;
* [[Файл:Googleplus.png]] - [[GooglePlus]] - настройки для социальной сети GooglePlus&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* [[Файл:Forward.png]] - [[SendMail]] - отправка письма через почтовый клиент&lt;br /&gt;
* [[Файл:footer-icon-rate.png]] - [[Rate]] - вызов окна оценки приложения&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;50px&amp;quot; heights=&amp;quot;50px&amp;quot; &amp;gt;&lt;br /&gt;
Изображение:Who.png&lt;br /&gt;
Изображение:AnimalHideSeek.png&lt;br /&gt;
Изображение:travel.png&lt;br /&gt;
Изображение:Game_Adventure_Train.png&lt;br /&gt;
Изображение:Gmae_Match_MoveTheDolly.png&lt;br /&gt;
Изображение:Game_Patchwork_BigEyes.png&lt;br /&gt;
Изображение:Game_Patchwork_Chameleon.png&lt;br /&gt;
Изображение:Game_Patchwork_Logicly.png‎&lt;br /&gt;
Изображение:Game_Patchwork_Stickers.png‎&lt;br /&gt;
Изображение:Elephant.png&lt;br /&gt;
Изображение:Elephant2.png&lt;br /&gt;
Изображение:Cinderella.png&lt;br /&gt;
Изображение:Pigs.png&lt;br /&gt;
Изображение:Bremenskye.png&lt;br /&gt;
Изображение:Book_SnowWhite.png&lt;br /&gt;
Изображение:Book_PussInBoots.png&lt;br /&gt;
Изображение:Call.png&lt;br /&gt;
Изображение:GreatestArtists.png&lt;br /&gt;
Изображение:Game_Puzzle_Kids.png&lt;br /&gt;
Изображение:Game_Puzzle_Architect.png‎&lt;br /&gt;
Изображение:Game_Puzzle_Science.png&lt;br /&gt;
Изображение:Ico_1_114_Full.png&lt;br /&gt;
Изображение:Game_Adventure_Dreams.png&lt;br /&gt;
Изображение:Abc.png&lt;br /&gt;
Изображение:Ico_114_Full.png&lt;br /&gt;
Изображение:Ico_114_Paints.png&lt;br /&gt;
Изображение:Ico_114_Puzzle.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:main]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8593</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8593"/>
		<updated>2017-03-02T10:27:12Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика, позволяет проверять достаточно ли ресурсов для покупки предмета&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[Dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
'''связанный объект''' '''''(cobj)'''''&lt;br /&gt;
*'''тип''' - тип связанных объектов, уникальный числовой идентификатор, различный для различных связанных объектов&lt;br /&gt;
*'''объект''' - связанный точечный (безразмерный) объект, который будет хранить графический ресурс надетого предмета или одежды&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' - текстовый id, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' - категория предмета, например 1-одежда, 2-аксессуары, 3-VIP&lt;br /&gt;
*'''res''' - полноразмерная графика предмета&lt;br /&gt;
*'''цена покупки res1''' - цена покупки res1&lt;br /&gt;
*'''цена покупки res2''' - цена покупки res2&lt;br /&gt;
*'''цена продажи res1''' - цена продажи res1&lt;br /&gt;
*'''цена продажи res2''' - цена продажи res2&lt;br /&gt;
*'''цена ремонта res1''' - цена ремонта res1&lt;br /&gt;
*'''цена ремонта res2''' - цена ремонта res2&lt;br /&gt;
*'''уровень xp''' - уровень XP, начиная с которого можно использовать предмет&lt;br /&gt;
*'''время ремонта''' - время ремонта в секундах&lt;br /&gt;
*'''цена ускорения ремонта res2''' - цена ускорения ремонта res2, 0 - нельзя&lt;br /&gt;
*'''связанный объект''' - связанный объект, в него запишем res при надевании предмета&lt;br /&gt;
*'''тип связанных объектов'''* - тип связанных объектов&lt;br /&gt;
*'''прочность''' - прочность предмета, 1 - не изнашивается&lt;br /&gt;
*'''критическая прочность''' - критический уровень износа&lt;br /&gt;
*'''тип предмета''' - тип предмета&lt;br /&gt;
*'''нельзя с типами''' - типы, с которыми нельзя надевать данный предмет, последовательность чисел через запятую&lt;br /&gt;
*'''надет по умолчанию''' - надет по умолчанию&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - нехватка денег''' '''''(nst_nomoney)''''' - вызывается, если для покупки вещи не хватает денег&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - конфликт предметов''' '''''(nst_nomoney)''''' - сюда можно поместить ссылку на окно с сообщением, что предметы не совместимы&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
[[File:dressingtemplate_scr2.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[File:dressingtemplate_scr3.png|left]]&lt;br /&gt;
&lt;br /&gt;
На экране находится персонаж, которому меняем одежду и аксессуары. Внутри него находится несколько связанных объектов. Связанный объект определенного типа получает в качестве графического ресурса надеваемую вещь. В примере было использовано 4 связанных объекта для: одежды, кабуры, очков и головных уборов. Каждый из них имеет уникальный тип, обозначенный числом. Если персонаж должен в этой же одежде появиться и на других экранах, то Dressing выносится на расшаренную сцену и в каждом экране ссылается на соответствующие связанные объекты. Т.е. у нас может быть один Dressing (Гардероб), но несколько дублирующих объектов персонажа.&lt;br /&gt;
&lt;br /&gt;
Настраивая предметы, важно указать тип предмета и типы, с которыми носить эту вещь нельзя. Например, логичным кажется, что странно будет иметь возможность надеть кабуру и вечернее платье и т.п. Если же на персонаже уже надет предмет с точно таким типом, то он будет заменен на надеваемый, поскольку связанному объекту присвоится новый ресурс.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dressingtemplate_scr3.png&amp;diff=8592</id>
		<title>Файл:Dressingtemplate scr3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dressingtemplate_scr3.png&amp;diff=8592"/>
		<updated>2017-03-02T10:25:35Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dressingtemplate_scr2.png&amp;diff=8591</id>
		<title>Файл:Dressingtemplate scr2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dressingtemplate_scr2.png&amp;diff=8591"/>
		<updated>2017-03-02T10:21:35Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8590</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8590"/>
		<updated>2017-03-02T08:19:07Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Основные параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика, позволяет проверять достаточно ли ресурсов для покупки предмета&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[Dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
'''связанный объект''' '''''(cobj)'''''&lt;br /&gt;
*'''тип''' - тип связанных объектов, уникальный числовой идентификатор, различный для различных связанных объектов&lt;br /&gt;
*'''объект''' - связанный точечный (безразмерный) объект, который будет хранить графический ресурс надетого предмета или одежды&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' - категория предмета&lt;br /&gt;
*'''res''' - полноразмерная графика предмета&lt;br /&gt;
*'''цена покупки res1''' - цена покупки res1&lt;br /&gt;
*'''цена покупки res2''' - цена покупки res2&lt;br /&gt;
*'''цена продажи res1''' - цена продажи res1&lt;br /&gt;
*'''цена продажи res2''' - цена продажи res2&lt;br /&gt;
*'''цена ремонта res1''' - цена ремонта res1&lt;br /&gt;
*'''цена ремонта res2''' - цена ремонта res2&lt;br /&gt;
*'''уровень xp''' - уровень XP, начиная с которого можно использовать предмет&lt;br /&gt;
*'''время ремонта''' - время ремонта в секундах&lt;br /&gt;
*'''цена ускорения ремонта res2''' - цена ускорения ремонта res2, 0 - нельзя&lt;br /&gt;
*'''связанный объект''' - связанный объект, в него запишем res при надевании предмета&lt;br /&gt;
*'''тип связанных объектов'''* - тип связанных объектов&lt;br /&gt;
*'''прочность''' - прочность предмета, 1 - не изнашивается&lt;br /&gt;
*'''критическая прочность''' - критический уровень износа&lt;br /&gt;
*'''тип предмета''' - тип предмета&lt;br /&gt;
*'''нельзя с типами''' - типы, с которыми нельзя надевать данный предмет, последовательность чисел через запятую&lt;br /&gt;
*'''надет по умолчанию''' - надет по умолчанию&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - нехватка денег''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - конфликт предметов''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8589</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8589"/>
		<updated>2017-03-02T08:11:09Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Особенности */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtemplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - иконка предмета (графический объект)&lt;br /&gt;
*'''название''' ''(name)'' - название предмета (текстовый объект)&lt;br /&gt;
*'''описание''' ''(dsc)'' - описание предмета (текстовый объект)&lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - кнопка купить&lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - кнопка надеть&lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - кнопка продать&lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - кнопка ремонт&lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - кнопка ускорить&lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - цена покупки res1 (каунтер)&lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - цена покупки res2 (каунтер)&lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - цена продажи res1 (каунтер)&lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - цена продажи res2 (каунтер)&lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - цена ремонта res1 (каунтер)&lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - цена ремонта res2 (каунтер)&lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - картинка-галка для отображения на надетых предметах&lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - картинка-замок для залоченного по XP&lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - счетчик уровня ХР с которого предмет доступен (каунтер)&lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - время ремонта (таймер)&lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - прогресс износа&lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - счетчик износа (каунтер)&lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - анимация покупки&lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' - анимация ремонта&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate представляет собой шаблон того, как будут выглядеть ячейки таблицы [[Dressing]] (фон, кнопки, счетчики).&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate не обязательно вкладывать внутрь [[Dressing]]. Однако сам Dressingtemplate должен быть контейнером для иконки, кнопок, счётчиков и прогресса, указанных в его полях. Дополнительно, также, можно вложить фоновую картинку. Все эти подобъекты будут раскопированы при заполнении ячеек таблицы по образцу (шаблону), которым и станет Dressingtemplate. Поэтому важна как очередность подобъектов, так и их координаты, с учетом размеров ячейки таблицы.&lt;br /&gt;
&lt;br /&gt;
Внизу указан скрин примера использования шаблона. Обратите внимание, что все объекты вложены в один объект, который, в свою очередь, вложен внутрь Dressingtemplate. Это сделано для удобства управления положением дочерних объектов и является необязательным.&lt;br /&gt;
[[File:dressingtemplate_scr1.png|right]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8588</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8588"/>
		<updated>2017-03-02T08:10:26Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Особенности */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtemplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - иконка предмета (графический объект)&lt;br /&gt;
*'''название''' ''(name)'' - название предмета (текстовый объект)&lt;br /&gt;
*'''описание''' ''(dsc)'' - описание предмета (текстовый объект)&lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - кнопка купить&lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - кнопка надеть&lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - кнопка продать&lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - кнопка ремонт&lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - кнопка ускорить&lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - цена покупки res1 (каунтер)&lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - цена покупки res2 (каунтер)&lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - цена продажи res1 (каунтер)&lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - цена продажи res2 (каунтер)&lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - цена ремонта res1 (каунтер)&lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - цена ремонта res2 (каунтер)&lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - картинка-галка для отображения на надетых предметах&lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - картинка-замок для залоченного по XP&lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - счетчик уровня ХР с которого предмет доступен (каунтер)&lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - время ремонта (таймер)&lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - прогресс износа&lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - счетчик износа (каунтер)&lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - анимация покупки&lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' - анимация ремонта&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate представляет собой шаблон того, как будут выглядеть ячейки таблицы [[Dressing]] (фон, кнопки, счетчики).&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate не обязательно вкладывать внутрь [[Dressing]]. Однако сам Dressingtemplate должен быть контейнером для иконки, кнопок, счётчиков и прогресса, указанных в его полях. Дополнительно, также, можно вложить фоновую картинку. Все эти подобъекты будут раскопированы при заполнении ячеек таблицы по образцу (шаблону), которым и станет Dressingtemplate. Поэтому важна как очередность подобъектов, так и их координаты, с учетом размеров ячейки таблицы.&lt;br /&gt;
&lt;br /&gt;
Внизу указан скрин примера использования шаблона. Обратите внимание, что все объекты вложены в один объект, который, в свою очередь, вложен внутрь Dressingtemplate. Это сделано для удобства управления положением дочерних объектов и является необязательным.&lt;br /&gt;
[[File:dressingtemplate_scr1.png]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8587</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8587"/>
		<updated>2017-03-02T08:01:51Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Особенности */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtemplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - иконка предмета (графический объект)&lt;br /&gt;
*'''название''' ''(name)'' - название предмета (текстовый объект)&lt;br /&gt;
*'''описание''' ''(dsc)'' - описание предмета (текстовый объект)&lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - кнопка купить&lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - кнопка надеть&lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - кнопка продать&lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - кнопка ремонт&lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - кнопка ускорить&lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - цена покупки res1 (каунтер)&lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - цена покупки res2 (каунтер)&lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - цена продажи res1 (каунтер)&lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - цена продажи res2 (каунтер)&lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - цена ремонта res1 (каунтер)&lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - цена ремонта res2 (каунтер)&lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - картинка-галка для отображения на надетых предметах&lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - картинка-замок для залоченного по XP&lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - счетчик уровня ХР с которого предмет доступен (каунтер)&lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - время ремонта (таймер)&lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - прогресс износа&lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - счетчик износа (каунтер)&lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - анимация покупки&lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' - анимация ремонта&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate представляет собой шаблон того, как будут выглядеть ячейки таблицы [[Dressing]] (фон, кнопки, счетчики).&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate не обязательно вкладывать внутрь [[Dressing]]. Однако сам Dressingtemplate должен быть контейнером для иконки, кнопок, счётчиков и прогресса, указанных в его полях. Дополнительно, также, можно вложить фоновую картинку. Все эти подобъекты будут раскопированы при заполнении ячеек таблицы по образцу (шаблону), которым и станет Dressingtemplate. Поэтому важна как очередность подобъектов, так и их координаты, с учетом размеров ячейки таблицы.&lt;br /&gt;
&lt;br /&gt;
[[File:dressingtemplate_scr1.png]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dressingtemplate_scr1.png&amp;diff=8586</id>
		<title>Файл:Dressingtemplate scr1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Dressingtemplate_scr1.png&amp;diff=8586"/>
		<updated>2017-03-02T08:00:32Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8585</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8585"/>
		<updated>2017-03-02T07:56:37Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Особенности */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtemplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - иконка предмета (графический объект)&lt;br /&gt;
*'''название''' ''(name)'' - название предмета (текстовый объект)&lt;br /&gt;
*'''описание''' ''(dsc)'' - описание предмета (текстовый объект)&lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - кнопка купить&lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - кнопка надеть&lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - кнопка продать&lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - кнопка ремонт&lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - кнопка ускорить&lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - цена покупки res1 (каунтер)&lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - цена покупки res2 (каунтер)&lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - цена продажи res1 (каунтер)&lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - цена продажи res2 (каунтер)&lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - цена ремонта res1 (каунтер)&lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - цена ремонта res2 (каунтер)&lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - картинка-галка для отображения на надетых предметах&lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - картинка-замок для залоченного по XP&lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - счетчик уровня ХР с которого предмет доступен (каунтер)&lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - время ремонта (таймер)&lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - прогресс износа&lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - счетчик износа (каунтер)&lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - анимация покупки&lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' - анимация ремонта&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate представляет собой шаблон того, как будут выглядеть ячейки таблицы [[Dressing]] (фон, кнопки, счетчики).&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate не обязательно вкладывать внутрь [[Dressing]]. Однако сам Dressingtemplate должен быть контейнером для иконки, кнопок, счётчиков и прогресса, указанных в его полях. Дополнительно, также, можно вложить фоновую картинку. Все эти подобъекты будут раскопированы при заполнении ячеек таблицы по образцу (шаблону), которым и станет Dressingtemplate. Поэтому важна как очередность подобъектов, так и их координаты, с учетом размеров ячейки таблицы.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8575</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8575"/>
		<updated>2017-02-09T07:28:50Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано [[#Создание эффекта перспективы|ниже]].&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние ''“end”''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать [[Physicsobject|физические объекты]] или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|500px|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана - медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8574</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8574"/>
		<updated>2017-02-09T07:28:32Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано [[#Создание эффекта перспективы|ниже]].&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние ''“end”''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать [[Physicsobject|физические объекты]] или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|500px|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана - медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8573</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8573"/>
		<updated>2017-02-09T07:28:05Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано [[#Создание эффекта перспективы|ниже]].&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние ''“end”''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать [[Physicsobject|физические объекты]] или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|500px|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана - медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8538</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8538"/>
		<updated>2016-12-13T12:44:09Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtemplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - иконка предмета (графический объект)&lt;br /&gt;
*'''название''' ''(name)'' - название предмета (текстовый объект)&lt;br /&gt;
*'''описание''' ''(dsc)'' - описание предмета (текстовый объект)&lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - кнопка купить&lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - кнопка надеть&lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - кнопка продать&lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - кнопка ремонт&lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - кнопка ускорить&lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - цена покупки res1 (каунтер)&lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - цена покупки res2 (каунтер)&lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - цена продажи res1 (каунтер)&lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - цена продажи res2 (каунтер)&lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - цена ремонта res1 (каунтер)&lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - цена ремонта res2 (каунтер)&lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - картинка-галка для отображения на надетых предметах&lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - картинка-замок для залоченного по XP&lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - счетчик уровня ХР с которого предмет доступен (каунтер)&lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - время ремонта (таймер)&lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - прогресс износа&lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - счетчик износа (каунтер)&lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - анимация покупки&lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' - анимация ремонта&lt;br /&gt;
&lt;br /&gt;
==Особенности==&lt;br /&gt;
&lt;br /&gt;
Dressingtemplate не обязательно вкладывать внутрь [[Dressing]]. Однако сам Dressingtemplate должен быть контейнером для иконки, кнопок, счётчиков и прогресса, указанных в его полях. Дополнительно, также, можно вложить фоновую картинку. Все эти подобъекты будут раскопированы при заполнении ячеек таблицы по образцу (шаблону), которым и станет Dressingtemplate. Поэтому важна как очередность подобъектов, так и их координаты, с учетом размеров ячейки таблицы.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8537</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8537"/>
		<updated>2016-12-13T09:47:35Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Основные параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtemplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - иконка предмета (графический объект)&lt;br /&gt;
*'''название''' ''(name)'' - название предмета (текстовый объект)&lt;br /&gt;
*'''описание''' ''(dsc)'' - описание предмета (текстовый объект)&lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - кнопка купить&lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - кнопка надеть&lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - кнопка продать&lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - кнопка ремонт&lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - кнопка ускорить&lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - цена покупки res1 (каунтер)&lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - цена покупки res2 (каунтер)&lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - цена продажи res1 (каунтер)&lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - цена продажи res2 (каунтер)&lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - цена ремонта res1 (каунтер)&lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - цена ремонта res2 (каунтер)&lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - картинка-галка для отображения на надетых предметах&lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - картинка-замок для залоченного по XP&lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - счетчик уровня ХР с которого предмет доступен (каунтер)&lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - время ремонта (таймер)&lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - прогресс износа&lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - счетчик износа (каунтер)&lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - анимация покупки&lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' - анимация ремонта&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8536</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8536"/>
		<updated>2016-12-13T09:15:20Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Создание эффекта перспективы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано [[#Создание эффекта перспективы|ниже]].&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние ''“end”''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать [[Physicsobject|физические объекты]] или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|500px|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана - медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8494</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8494"/>
		<updated>2016-11-14T10:15:55Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[Dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
'''связанный объект''' '''''(cobj)'''''&lt;br /&gt;
*'''тип''' - тип связанных объектов, уникальный числовой идентификатор, различный для различных связанных объектов&lt;br /&gt;
*'''объект''' - связанный точечный (безразмерный) объект, который будет хранить графический ресурс надетого предмета или одежды&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' - категория предмета&lt;br /&gt;
*'''res''' - полноразмерная графика предмета&lt;br /&gt;
*'''цена покупки res1''' - цена покупки res1&lt;br /&gt;
*'''цена покупки res2''' - цена покупки res2&lt;br /&gt;
*'''цена продажи res1''' - цена продажи res1&lt;br /&gt;
*'''цена продажи res2''' - цена продажи res2&lt;br /&gt;
*'''цена ремонта res1''' - цена ремонта res1&lt;br /&gt;
*'''цена ремонта res2''' - цена ремонта res2&lt;br /&gt;
*'''уровень xp''' - уровень XP, начиная с которого можно использовать предмет&lt;br /&gt;
*'''время ремонта''' - время ремонта в секундах&lt;br /&gt;
*'''цена ускорения ремонта res2''' - цена ускорения ремонта res2, 0 - нельзя&lt;br /&gt;
*'''связанный объект''' - связанный объект, в него запишем res при надевании предмета&lt;br /&gt;
*'''тип связанных объектов'''* - тип связанных объектов&lt;br /&gt;
*'''прочность''' - прочность предмета, 1 - не изнашивается&lt;br /&gt;
*'''критическая прочность''' - критический уровень износа&lt;br /&gt;
*'''тип предмета''' - тип предмета&lt;br /&gt;
*'''нельзя с типами''' - типы, с которыми нельзя надевать данный предмет, последовательность чисел через запятую&lt;br /&gt;
*'''надет по умолчанию''' - надет по умолчанию&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - нехватка денег''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - конфликт предметов''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8492</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8492"/>
		<updated>2016-11-07T15:59:17Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Добавляемые параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[Dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
'''связанный объект''' '''''(cobj)'''''&lt;br /&gt;
*'''тип'''&lt;br /&gt;
*'''объект'''&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' - категория предмета&lt;br /&gt;
*'''res''' - полноразмерная графика предмета&lt;br /&gt;
*'''цена покупки res1''' - цена покупки res1&lt;br /&gt;
*'''цена покупки res2''' - цена покупки res2&lt;br /&gt;
*'''цена продажи res1''' - цена продажи res1&lt;br /&gt;
*'''цена продажи res2''' - цена продажи res2&lt;br /&gt;
*'''цена ремонта res1''' - цена ремонта res1&lt;br /&gt;
*'''цена ремонта res2''' - цена ремонта res2&lt;br /&gt;
*'''уровень xp''' - уровень XP, начиная с которого можно использовать предмет&lt;br /&gt;
*'''время ремонта''' - время ремонта в секундах&lt;br /&gt;
*'''цена ускорения ремонта res2''' - цена ускорения ремонта res2, 0 - нельзя&lt;br /&gt;
*'''связанный объект''' - связанный объект, в него запишем res при надевании предмета&lt;br /&gt;
*'''тип связанных объектов'''* - тип связанных объектов&lt;br /&gt;
*'''прочность''' - прочность предмета, 1 - не изнашивается&lt;br /&gt;
*'''критическая прочность''' - критический уровень износа&lt;br /&gt;
*'''тип предмета''' - тип предмета&lt;br /&gt;
*'''нельзя с типами''' - типы, с которыми нельзя надевать данный предмет, последовательность чисел через запятую&lt;br /&gt;
*'''надет по умолчанию''' - надет по умолчанию&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - нехватка денег''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - конфликт предметов''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8491</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8491"/>
		<updated>2016-11-07T15:57:31Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Добавляемые параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[Dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' - категория предмета&lt;br /&gt;
*'''res''' - полноразмерная графика предмета&lt;br /&gt;
*'''цена покупки res1''' - цена покупки res1&lt;br /&gt;
*'''цена покупки res2''' - цена покупки res2&lt;br /&gt;
*'''цена продажи res1''' - цена продажи res1&lt;br /&gt;
*'''цена продажи res2''' - цена продажи res2&lt;br /&gt;
*'''цена ремонта res1''' - цена ремонта res1&lt;br /&gt;
*'''цена ремонта res2''' - цена ремонта res2&lt;br /&gt;
*'''уровень xp''' - уровень XP, начиная с которого можно использовать предмет&lt;br /&gt;
*'''время ремонта''' - время ремонта в секундах&lt;br /&gt;
*'''цена ускорения ремонта res2''' - цена ускорения ремонта res2, 0 - нельзя&lt;br /&gt;
*'''связанный объект''' - связанный объект, в него запишем res при надевании предмета&lt;br /&gt;
*'''тип связанных объектов'''* - тип связанных объектов&lt;br /&gt;
*'''прочность''' - прочность предмета, 1 - не изнашивается&lt;br /&gt;
*'''критическая прочность''' - критический уровень износа&lt;br /&gt;
*'''тип предмета''' - тип предмета&lt;br /&gt;
*'''нельзя с типами''' - типы, с которыми нельзя надевать данный предмет, последовательность чисел через запятую&lt;br /&gt;
*'''надет по умолчанию''' - надет по умолчанию&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - нехватка денег''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - конфликт предметов''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8490</id>
		<title>Absolutist Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8490"/>
		<updated>2016-11-07T15:48:22Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Game mechanic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
'''[[:category:main|Категории]]'''&lt;br /&gt;
== Новости ==&lt;br /&gt;
Вышла новая игра HOG созданная с помощью AppSalute Game Сreator. Созданы новые уникальные эффекты и механики для обеспечения незабываемых впечатлений.&lt;br /&gt;
Описание и видео:&lt;br /&gt;
http://time-gap.com/&lt;br /&gt;
&lt;br /&gt;
== AppSalute Game Сreator ==&lt;br /&gt;
* [[Примеры приложений]]&lt;br /&gt;
* [[Введение в AppSalute Game Сreator]]&lt;br /&gt;
* [[Установка и настройка]]&lt;br /&gt;
* [[Интерфейс ScenceEditor ]]&lt;br /&gt;
* [[Интерфейс ResourceEditor ]]&lt;br /&gt;
* [[Интерфейс TextEditor ]]&lt;br /&gt;
*[[Интерфейс Viewer ]]&lt;br /&gt;
* [[Книга жалоб и пожеланий]]&lt;br /&gt;
* [[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
== Обучение ==&lt;br /&gt;
&lt;br /&gt;
* [[Learning|Уроки по освоению фреймворка]]&lt;br /&gt;
* [[Примеры реализации в играх]]&lt;br /&gt;
* [[Основные понятия объектов физического мира]]&lt;br /&gt;
* [[Использование AppSalute Debugger при отладке]]&lt;br /&gt;
* [[Отладка на флеше]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Подготовка проекта ==&lt;br /&gt;
* [[Проектирование экранов игры]]&lt;br /&gt;
* [[Подготовка и форматы графики]]&lt;br /&gt;
* [[Подготовка и форматы шрифтов]]&lt;br /&gt;
* [[Подготовка и форматы звуков]]&lt;br /&gt;
* [[Подготовка и форматы видео]]&lt;br /&gt;
* [[Создание проекта]]&lt;br /&gt;
* [[Загрузка проекта по частям]]&lt;br /&gt;
* [[Конфигурация проекта для сборки]]&lt;br /&gt;
* [[Подготовка для загрузки на маркеты]]&lt;br /&gt;
* [[Сборка проекта]]&lt;br /&gt;
* [[Частые ошибки]]&lt;br /&gt;
* [[Отличия подготовки проекта для разных платформ]]&lt;br /&gt;
* [[Lua|Использование lua-скриптов]]&lt;br /&gt;
* [[Подготовка версии для Viber]]&lt;br /&gt;
&lt;br /&gt;
== Встроенные объекты редактора==&lt;br /&gt;
&lt;br /&gt;
=== Common objects  ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Screen.png]] - [[Screen]]'' - экран&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Scene.png]] - [[Scene]]'' - сцена&lt;br /&gt;
&lt;br /&gt;
=== Main objects ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Objects.png]] - [[Object]]'' - общие параметры для всех игровых объектов&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Azmanager]] - менеджер активных зон&lt;br /&gt;
* [[Файл:Kub.png]] - [[Active zone]] - активная зона&lt;br /&gt;
* [[Файл:Picture.png]] - [[Image]] - картинка&lt;br /&gt;
* [[Файл:Kub.png]] - [[Statistic]] - объект для отправки событий статистики.&lt;br /&gt;
* [[Файл:Button.png]] - [[Button]] - кнопка&lt;br /&gt;
* [[Файл:Text.png]] - [[Text]] - текст&lt;br /&gt;
* [[Файл:Machine.png]] - [[Machine]] - машина состояний&lt;br /&gt;
** [[Файл:Mwindow.png]] - [[Mwindow]] - машина состояний - окно&lt;br /&gt;
* [[Файл:Tableicon.png]] - [[Table]] - таблица&lt;br /&gt;
* [[Файл:Checkbox.png]] - [[Checkbox]] - чекбокс (кнопка в 2-х состояниях)&lt;br /&gt;
* [[Файл:Checkgroup.png]] - [[Groupbox]] - группа, содержащая несколько чекбоксов&lt;br /&gt;
* [[Файл:Timer.png]] - [[Timer]] - цифровой таймер&lt;br /&gt;
** [[Файл:Kub.png]] - [[Globaltimer]] - таймер &amp;quot;реального времени&amp;quot;&lt;br /&gt;
* [[Файл:Counter2.png]] - [[Counter]] - счетчик сделанных кликов в игре и т.п.&lt;br /&gt;
* [[Файл:Progressbar.png]] - [[Progress]] - прогресс прохождения игры (эчивмент)&lt;br /&gt;
* [[Файл:Particle.png]] - [[Flyer]] - флаер (патиклы)&lt;br /&gt;
* [[Файл:Rectangle.png]] - [[Rectangle]] - прямоугольник&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomover]] - объект движения в изометрической карте&lt;br /&gt;
* [[Файл:Group.png]] - [[Group]] - группа&lt;br /&gt;
* [[Файл:Groupset.png‎]] - [[Groupset]] - группа&lt;br /&gt;
* [[Файл:Effect.jpg|20px]] - [[Effect]] - Создание различных эффектов&lt;br /&gt;
* [[Файл:Graphprogress.png]] - [[Graphprogress]] - создание мини-карты для отображения прогресса прохождения игры.&lt;br /&gt;
* [[Файл:Statesmanager_ico.png]] - [[Statesmanager]] - очередь работы с объектами&lt;br /&gt;
* [[Файл:Slider icons.png]] - [[Slider]] - объект реализующий листание списка.&lt;br /&gt;
* [[Файл:Ribbon.png]] - [[Ribbon]] - объект отображения графики по сплайну&lt;br /&gt;
* [[Файл:Kub.png]] - [[Animation]] - объект различных анимаций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Magicparticles]] - объект файлов Magic Particles&lt;br /&gt;
&lt;br /&gt;
=== Game mechanic ===&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Avoider]] - эвойдер&lt;br /&gt;
* [[Файл:Puzzle.png]] - [[Puzzle]] - игра пазл&lt;br /&gt;
* [[Файл:Memory.png]] - [[Memory]] - класс игр с memory-механикой&lt;br /&gt;
* [[Файл:Patchwork.png]] - [[Patchwork]] - класс игр с Patchwork-механикой&lt;br /&gt;
* [[Файл:Match3.png]] - [[Match]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Collaps.png]] - [[Collapse]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Bejewelled.png]] - [[Bejewelled]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:BubbleShooter.png]] - [[Bubble Shooter]] - класс Bubble игр включая механику Снукер&lt;br /&gt;
* [[Файл:Tapthebubble.png]] - [[TapTheBubble]] - механика игры Tap The Bubble&lt;br /&gt;
* [[Файл:GemSlider.jpg]] - [[Gem Slider]] - механика игры Gem Slider&lt;br /&gt;
* [[Файл:W-57.png]] - [[Words]] - механика игры Words&lt;br /&gt;
* [[Файл:Kub.png]] - [[2048]] - механика игры 2048&lt;br /&gt;
* [[Файл:Kub.png]] - [[Planet]] - игра &amp;quot;Планетки&amp;quot;&lt;br /&gt;
* [[Файл:Kub.png]] - [[Unblock]] - механика игры unblock&lt;br /&gt;
* [[Файл:Matchbattle.png]] - [[Match Battle]] - настройка глобальных параметров для мини-игр&lt;br /&gt;
* [[Файл:Move box.png]] - [[DragBox]] - класс игр с dragbox-механикой&lt;br /&gt;
* [[Файл:Labyrinth.png]] - [[Labyrinth]] - класс игр лабиринт&lt;br /&gt;
* [[Файл:Pipes.png]] - [[Pipes]] - класс игр трубы&lt;br /&gt;
* [[Файл:Search object.png]] - [[HiddenObject]] - поисковый объект в хидден играх&lt;br /&gt;
* [[Файл:Object list.png]] - [[HiddenList]] - список поисковых объектов в хидден играх&lt;br /&gt;
* [[Файл:Hint.png]] - [[HiddenHint]] - подсказка (указатель на спрятанный объект)&lt;br /&gt;
* [[Файл:Kub.png]] - [[HiddenHighLighter]] - позволяет показать не найденные объекты в хиддене.&lt;br /&gt;
* [[Файл:Collection.png]] - [[Collection]] - &amp;quot;коллекция&amp;quot; поисковых объектов для хидден игр&lt;br /&gt;
* [[Файл:Inventory.png]] - [[Inventory]] - &amp;quot;инвентарь&amp;quot; список применяемых объектов для игр&lt;br /&gt;
* [[Файл:Tool.png]] - [[Tool]] - &amp;quot;применение&amp;quot; - объект, который можно применить для игр&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomap]] - изометрическая карта&lt;br /&gt;
* [[Файл:Slotmachine.png]] - [[Slotmachine]] - объект типа &amp;quot;slot&amp;quot;&lt;br /&gt;
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер&lt;br /&gt;
** [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря/магазина и экономики &lt;br /&gt;
** [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина &lt;br /&gt;
** [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря &lt;br /&gt;
** [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета.&lt;br /&gt;
** [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий &lt;br /&gt;
*** [[Файл:Kub.png]] - [[Etasktemplate]] - шаблон задачи для таблицы темплейтов.&lt;br /&gt;
** [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания&lt;br /&gt;
** [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции&lt;br /&gt;
* [[Файл:Paint.png‎]] - [[Paint]] - объект для рисования &lt;br /&gt;
* [[Файл:Physicsworld.png]] - [[Physicsworld]] - физический мир Box2D&lt;br /&gt;
** [[Файл:Physicsobject.png]] - [[Physicsobject]] - физические объекты&lt;br /&gt;
** [[Файл:Physics links.png]] - [[Physicsjoint]] - физические соединения&lt;br /&gt;
*  [[Файл:Eraser.png]] - [[Eraser]] - стирачка&lt;br /&gt;
* [[Файл:Kub.png]] - [[trivia]] - игровая механика - миллионер (trivia)&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dailybonus]] - объект для управления механизмом ежедневного бонуса за вход в игру.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pet]] - объект питомца.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetCollectionTemplate]] - объект шаблона ячейки с коллекцией.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetTemplate]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[CakeTower]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pentamino]] - механика игры в [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8%D0%BD%D0%BE пентамино]&lt;br /&gt;
* [[Файл:Kub.png]] - [[TapTheNew]]&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressing]] - гардероб.&lt;br /&gt;
** [[Файл:Kub.png]] - [[Dressingtemplate]] - объект шаблона гардероба.&lt;br /&gt;
&lt;br /&gt;
* [[Файл:digitz.png]] - [[Digitz]] - механика игры Digitz.&lt;br /&gt;
&lt;br /&gt;
=== Global score ===&lt;br /&gt;
* [[Файл:Gamecenter.png]] - [[Gamecenter]] - объект для отправки данных на GameCenter iTunse&lt;br /&gt;
**[[Файл:Kub.png]] - [[Achievementitem]] -  шаблон локального достижения (оффлайн ачивка)&lt;br /&gt;
* [[Файл:Gamecircle.jpg]] - [[Amazon GameCircle]] - объект для отправки данных Amazon GameCircle&lt;br /&gt;
* [[Файл:Google-play-games-android.jpg‎]] - [[Google Play services]] - объект для отправки данных на Google Play services&lt;br /&gt;
* [[Файл:Localtoplist.png]] - [[Localtoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltoplist.png]] - [[Globaltoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltopsender.png]] - [[Globaltopsender]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
* [[Файл:Options.png]] - [[Options]] - общие настройки игры&lt;br /&gt;
* [[Файл:Gamedata.png]] - [[Gamedata]] -&lt;br /&gt;
* [[Файл:Controls.png]] - [[Controls]] - обьект для работы с клавишами клавиатуры или девайса &lt;br /&gt;
* [[Файл:Editicon.png]] - [[Edit]] - ввод текста&lt;br /&gt;
* [[Файл:Store.png]] - [[Store]] - настройки InApp покупок в игре&lt;br /&gt;
** [[Файл:Kub.png]] - [[Wallet]] - объект для начисления игровой валюты при InApp покупках через объект economics&lt;br /&gt;
* [[Файл:Notification.png]] - [[Notification]] - push-уведомления&lt;br /&gt;
* [[Файл:Imagepicker.png]] - [[Imagepiker]] - объект для загрузки фото из галереи&lt;br /&gt;
* [[Файл:Video.png]] - [[Video]] - объект для просмотра видео&lt;br /&gt;
* [[Файл:Webview.png]] - [[Webview]] - объект для просмотра интернет страниц в приложении&lt;br /&gt;
* [[Файл:Flurryobject.png]] - [[Flurry]] - настройки системы статистики для приложений https://dev.flurry.com&lt;br /&gt;
* [[Файл:Moregames.png]] - [[MoreGamesList]] - запрос банеров рекламируемых игр&lt;br /&gt;
* [[Файл:Advertisement.png]] - [[Advertisement]] - банерная система flurry, amazon&lt;br /&gt;
* [[Файл:Splitmanager.png]] - [[Splitmanager or A\B Testing]] - менеджер сплитов&lt;br /&gt;
* [[Файл:Tapjoy.png]] - [[Tapjoy]] - система рекламы игр&lt;br /&gt;
* [[Файл:Playhaven.png|24px]] - [[Playhaven]] - система рекламы игр с внутренними up-sale&lt;br /&gt;
* [[Файл:Mobileapptracker.png|24px]] - [[Mobileapptracking]] -&lt;br /&gt;
* [[Файл:Chartboost-logo-new.jpeg]] - [[Chartboost]] -  Chartboost-logo-new.jpeg&lt;br /&gt;
* [[Файл:Kub.png]] - [[SuperSonic]] -  провайдер рекламы SuperSonic&lt;br /&gt;
* [[Файл:Kub.png]] - [[System]] - объект для доступа к системным настройкам&lt;br /&gt;
* [[Файл:Kub.png]] - [[Salesmanager]] - менеджер акций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Cloud]] - объект для синхронизации в облаке&lt;br /&gt;
* [[Файл:Kub.png]] - [[Game]] - объект для отправки событий&lt;br /&gt;
&lt;br /&gt;
=== Social ===&lt;br /&gt;
* [[Файл:Facebook.png]] - [[Facebook]] - настройки расшаривания Facebook&lt;br /&gt;
** [[Файл:Esocialfrienditem.png]] - [[Esocialitem]] - Шаблон для ячейки списка друзей&lt;br /&gt;
** [[Файл:Kub.png]] - [[Esocialgiftitem]] - Шаблон для ячейки с предметом, который можно подарить другу&lt;br /&gt;
** [[Файл:Esocial.png]] - [[Esocial]] - объект для взаимодействия с Facebook'ом&lt;br /&gt;
* [[Файл:Twitter.png]] - [[Twitter]] - настройки расшаривания Twitter&lt;br /&gt;
* [[Файл:Odnoklassniki.png]] - [[Odnoklassniki]] - настройки для социальной сети Одноклассники&lt;br /&gt;
* [[Файл:Googleplus.png]] - [[GooglePlus]] - настройки для социальной сети GooglePlus&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* [[Файл:Forward.png]] - [[SendMail]] - отправка письма через почтовый клиент&lt;br /&gt;
* [[Файл:footer-icon-rate.png]] - [[Rate]] - вызов окна оценки приложения&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;50px&amp;quot; heights=&amp;quot;50px&amp;quot; &amp;gt;&lt;br /&gt;
Изображение:Who.png&lt;br /&gt;
Изображение:AnimalHideSeek.png&lt;br /&gt;
Изображение:travel.png&lt;br /&gt;
Изображение:Game_Adventure_Train.png&lt;br /&gt;
Изображение:Gmae_Match_MoveTheDolly.png&lt;br /&gt;
Изображение:Game_Patchwork_BigEyes.png&lt;br /&gt;
Изображение:Game_Patchwork_Chameleon.png&lt;br /&gt;
Изображение:Game_Patchwork_Logicly.png‎&lt;br /&gt;
Изображение:Game_Patchwork_Stickers.png‎&lt;br /&gt;
Изображение:Elephant.png&lt;br /&gt;
Изображение:Elephant2.png&lt;br /&gt;
Изображение:Cinderella.png&lt;br /&gt;
Изображение:Pigs.png&lt;br /&gt;
Изображение:Bremenskye.png&lt;br /&gt;
Изображение:Book_SnowWhite.png&lt;br /&gt;
Изображение:Book_PussInBoots.png&lt;br /&gt;
Изображение:Call.png&lt;br /&gt;
Изображение:GreatestArtists.png&lt;br /&gt;
Изображение:Game_Puzzle_Kids.png&lt;br /&gt;
Изображение:Game_Puzzle_Architect.png‎&lt;br /&gt;
Изображение:Game_Puzzle_Science.png&lt;br /&gt;
Изображение:Ico_1_114_Full.png&lt;br /&gt;
Изображение:Game_Adventure_Dreams.png&lt;br /&gt;
Изображение:Abc.png&lt;br /&gt;
Изображение:Ico_114_Full.png&lt;br /&gt;
Изображение:Ico_114_Paints.png&lt;br /&gt;
Изображение:Ico_114_Puzzle.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:main]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8470</id>
		<title>Absolutist Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8470"/>
		<updated>2016-10-12T11:41:43Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Game mechanic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
'''[[:category:main|Категории]]'''&lt;br /&gt;
== Новости ==&lt;br /&gt;
Вышла новая игра HOG созданная с помощью AppSalute Game Сreator. Созданы новые уникальные эффекты и механики для обеспечения незабываемых впечатлений.&lt;br /&gt;
Описание и видео:&lt;br /&gt;
http://time-gap.com/&lt;br /&gt;
&lt;br /&gt;
== AppSalute Game Сreator ==&lt;br /&gt;
* [[Примеры приложений]]&lt;br /&gt;
* [[Введение в AppSalute Game Сreator]]&lt;br /&gt;
* [[Установка и настройка]]&lt;br /&gt;
* [[Интерфейс ScenceEditor ]]&lt;br /&gt;
* [[Интерфейс ResourceEditor ]]&lt;br /&gt;
* [[Интерфейс TextEditor ]]&lt;br /&gt;
*[[Интерфейс Viewer ]]&lt;br /&gt;
* [[Книга жалоб и пожеланий]]&lt;br /&gt;
* [[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
== Обучение ==&lt;br /&gt;
&lt;br /&gt;
* [[Learning|Уроки по освоению фреймворка]]&lt;br /&gt;
* [[Примеры реализации в играх]]&lt;br /&gt;
* [[Основные понятия объектов физического мира]]&lt;br /&gt;
* [[Использование AppSalute Debugger при отладке]]&lt;br /&gt;
* [[Отладка на флеше]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Подготовка проекта ==&lt;br /&gt;
* [[Проектирование экранов игры]]&lt;br /&gt;
* [[Подготовка и форматы графики]]&lt;br /&gt;
* [[Подготовка и форматы шрифтов]]&lt;br /&gt;
* [[Подготовка и форматы звуков]]&lt;br /&gt;
* [[Подготовка и форматы видео]]&lt;br /&gt;
* [[Создание проекта]]&lt;br /&gt;
* [[Загрузка проекта по частям]]&lt;br /&gt;
* [[Конфигурация проекта для сборки]]&lt;br /&gt;
* [[Подготовка для загрузки на маркеты]]&lt;br /&gt;
* [[Сборка проекта]]&lt;br /&gt;
* [[Частые ошибки]]&lt;br /&gt;
* [[Отличия подготовки проекта для разных платформ]]&lt;br /&gt;
* [[Lua|Использование lua-скриптов]]&lt;br /&gt;
* [[Подготовка версии для Viber]]&lt;br /&gt;
&lt;br /&gt;
== Встроенные объекты редактора==&lt;br /&gt;
&lt;br /&gt;
=== Common objects  ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Screen.png]] - [[Screen]]'' - экран&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Scene.png]] - [[Scene]]'' - сцена&lt;br /&gt;
&lt;br /&gt;
=== Main objects ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Objects.png]] - [[Object]]'' - общие параметры для всех игровых объектов&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Azmanager]] - менеджер активных зон&lt;br /&gt;
* [[Файл:Kub.png]] - [[Active zone]] - активная зона&lt;br /&gt;
* [[Файл:Picture.png]] - [[Image]] - картинка&lt;br /&gt;
* [[Файл:Kub.png]] - [[Statistic]] - объект для отправки событий статистики.&lt;br /&gt;
* [[Файл:Button.png]] - [[Button]] - кнопка&lt;br /&gt;
* [[Файл:Text.png]] - [[Text]] - текст&lt;br /&gt;
* [[Файл:Machine.png]] - [[Machine]] - машина состояний&lt;br /&gt;
** [[Файл:Mwindow.png]] - [[Mwindow]] - машина состояний - окно&lt;br /&gt;
* [[Файл:Tableicon.png]] - [[Table]] - таблица&lt;br /&gt;
* [[Файл:Checkbox.png]] - [[Checkbox]] - чекбокс (кнопка в 2-х состояниях)&lt;br /&gt;
* [[Файл:Checkgroup.png]] - [[Groupbox]] - группа, содержащая несколько чекбоксов&lt;br /&gt;
* [[Файл:Timer.png]] - [[Timer]] - цифровой таймер&lt;br /&gt;
** [[Файл:Kub.png]] - [[Globaltimer]] - таймер &amp;quot;реального времени&amp;quot;&lt;br /&gt;
* [[Файл:Counter2.png]] - [[Counter]] - счетчик сделанных кликов в игре и т.п.&lt;br /&gt;
* [[Файл:Progressbar.png]] - [[Progress]] - прогресс прохождения игры (эчивмент)&lt;br /&gt;
* [[Файл:Particle.png]] - [[Flyer]] - флаер (патиклы)&lt;br /&gt;
* [[Файл:Rectangle.png]] - [[Rectangle]] - прямоугольник&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomover]] - объект движения в изометрической карте&lt;br /&gt;
* [[Файл:Group.png]] - [[Group]] - группа&lt;br /&gt;
* [[Файл:Groupset.png‎]] - [[Groupset]] - группа&lt;br /&gt;
* [[Файл:Effect.jpg|20px]] - [[Effect]] - Создание различных эффектов&lt;br /&gt;
* [[Файл:Graphprogress.png]] - [[Graphprogress]] - создание мини-карты для отображения прогресса прохождения игры.&lt;br /&gt;
* [[Файл:Statesmanager_ico.png]] - [[Statesmanager]] - очередь работы с объектами&lt;br /&gt;
* [[Файл:Slider icons.png]] - [[Slider]] - объект реализующий листание списка.&lt;br /&gt;
* [[Файл:Ribbon.png]] - [[Ribbon]] - объект отображения графики по сплайну&lt;br /&gt;
* [[Файл:Kub.png]] - [[Animation]] - объект различных анимаций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Magicparticles]] - объект файлов Magic Particles&lt;br /&gt;
&lt;br /&gt;
=== Game mechanic ===&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Avoider]] - эвойдер&lt;br /&gt;
* [[Файл:Puzzle.png]] - [[Puzzle]] - игра пазл&lt;br /&gt;
* [[Файл:Memory.png]] - [[Memory]] - класс игр с memory-механикой&lt;br /&gt;
* [[Файл:Patchwork.png]] - [[Patchwork]] - класс игр с Patchwork-механикой&lt;br /&gt;
* [[Файл:Match3.png]] - [[Match]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Collaps.png]] - [[Collapse]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Bejewelled.png]] - [[Bejewelled]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:BubbleShooter.png]] - [[Bubble Shooter]] - класс Bubble игр включая механику Снукер&lt;br /&gt;
* [[Файл:Tapthebubble.png]] - [[TapTheBubble]] - механика игры Tap The Bubble&lt;br /&gt;
* [[Файл:GemSlider.jpg]] - [[Gem Slider]] - механика игры Gem Slider&lt;br /&gt;
* [[Файл:W-57.png]] - [[Words]] - механика игры Words&lt;br /&gt;
* [[Файл:Kub.png]] - [[2048]] - механика игры 2048&lt;br /&gt;
* [[Файл:Kub.png]] - [[Planet]] - игра &amp;quot;Планетки&amp;quot;&lt;br /&gt;
* [[Файл:Kub.png]] - [[Unblock]] - механика игры unblock&lt;br /&gt;
* [[Файл:Matchbattle.png]] - [[Match Battle]] - настройка глобальных параметров для мини-игр&lt;br /&gt;
* [[Файл:Move box.png]] - [[DragBox]] - класс игр с dragbox-механикой&lt;br /&gt;
* [[Файл:Labyrinth.png]] - [[Labyrinth]] - класс игр лабиринт&lt;br /&gt;
* [[Файл:Pipes.png]] - [[Pipes]] - класс игр трубы&lt;br /&gt;
* [[Файл:Search object.png]] - [[HiddenObject]] - поисковый объект в хидден играх&lt;br /&gt;
* [[Файл:Object list.png]] - [[HiddenList]] - список поисковых объектов в хидден играх&lt;br /&gt;
* [[Файл:Hint.png]] - [[HiddenHint]] - подсказка (указатель на спрятанный объект)&lt;br /&gt;
* [[Файл:Kub.png]] - [[HiddenHighLighter]] - позволяет показать не найденные объекты в хиддене.&lt;br /&gt;
* [[Файл:Collection.png]] - [[Collection]] - &amp;quot;коллекция&amp;quot; поисковых объектов для хидден игр&lt;br /&gt;
* [[Файл:Inventory.png]] - [[Inventory]] - &amp;quot;инвентарь&amp;quot; список применяемых объектов для игр&lt;br /&gt;
* [[Файл:Tool.png]] - [[Tool]] - &amp;quot;применение&amp;quot; - объект, который можно применить для игр&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomap]] - изометрическая карта&lt;br /&gt;
* [[Файл:Slotmachine.png]] - [[Slotmachine]] - объект типа &amp;quot;slot&amp;quot;&lt;br /&gt;
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер&lt;br /&gt;
** [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря/магазина и экономики &lt;br /&gt;
** [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина &lt;br /&gt;
** [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря &lt;br /&gt;
** [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета.&lt;br /&gt;
** [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий &lt;br /&gt;
*** [[Файл:Kub.png]] - [[Etasktemplate]] - шаблон задачи для таблицы темплейтов.&lt;br /&gt;
** [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания&lt;br /&gt;
** [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции&lt;br /&gt;
* [[Файл:Paint.png‎]] - [[Paint]] - объект для рисования &lt;br /&gt;
* [[Файл:Physicsworld.png]] - [[Physicsworld]] - физический мир Box2D&lt;br /&gt;
** [[Файл:Physicsobject.png]] - [[Physicsobject]] - физические объекты&lt;br /&gt;
** [[Файл:Physics links.png]] - [[Physicsjoint]] - физические соединения&lt;br /&gt;
*  [[Файл:Eraser.png]] - [[Eraser]] - стирачка&lt;br /&gt;
* [[Файл:Kub.png]] - [[trivia]] - игровая механика - миллионер (trivia)&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dailybonus]] - объект для управления механизмом ежедневного бонуса за вход в игру.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pet]] - объект питомца.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetCollectionTemplate]] - объект шаблона ячейки с коллекцией.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetTemplate]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[CakeTower]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pentamino]] - механика игры в [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8%D0%BD%D0%BE пентамино]&lt;br /&gt;
* [[Файл:Kub.png]] - [[TapTheNew]]&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressing]] - гардероб.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressingtemplate]] - объект шаблона гардероба.&lt;br /&gt;
&lt;br /&gt;
=== Global score ===&lt;br /&gt;
* [[Файл:Gamecenter.png]] - [[Gamecenter]] - объект для отправки данных на GameCenter iTunse&lt;br /&gt;
**[[Файл:Kub.png]] - [[Achievementitem]] -  шаблон локального достижения (оффлайн ачивка)&lt;br /&gt;
* [[Файл:Gamecircle.jpg]] - [[Amazon GameCircle]] - объект для отправки данных Amazon GameCircle&lt;br /&gt;
* [[Файл:Google-play-games-android.jpg‎]] - [[Google Play services]] - объект для отправки данных на Google Play services&lt;br /&gt;
* [[Файл:Localtoplist.png]] - [[Localtoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltoplist.png]] - [[Globaltoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltopsender.png]] - [[Globaltopsender]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
* [[Файл:Options.png]] - [[Options]] - общие настройки игры&lt;br /&gt;
* [[Файл:Gamedata.png]] - [[Gamedata]] -&lt;br /&gt;
* [[Файл:Controls.png]] - [[Controls]] - обьект для работы с клавишами клавиатуры или девайса &lt;br /&gt;
* [[Файл:Editicon.png]] - [[Edit]] - ввод текста&lt;br /&gt;
* [[Файл:Store.png]] - [[Store]] - настройки InApp покупок в игре&lt;br /&gt;
** [[Файл:Kub.png]] - [[Wallet]] - объект для начисления игровой валюты при InApp покупках через объект economics&lt;br /&gt;
* [[Файл:Notification.png]] - [[Notification]] - push-уведомления&lt;br /&gt;
* [[Файл:Imagepicker.png]] - [[Imagepiker]] - объект для загрузки фото из галереи&lt;br /&gt;
* [[Файл:Video.png]] - [[Video]] - объект для просмотра видео&lt;br /&gt;
* [[Файл:Webview.png]] - [[Webview]] - объект для просмотра интернет страниц в приложении&lt;br /&gt;
* [[Файл:Flurryobject.png]] - [[Flurry]] - настройки системы статистики для приложений https://dev.flurry.com&lt;br /&gt;
* [[Файл:Moregames.png]] - [[MoreGamesList]] - запрос банеров рекламируемых игр&lt;br /&gt;
* [[Файл:Advertisement.png]] - [[Advertisement]] - банерная система flurry, amazon&lt;br /&gt;
* [[Файл:Splitmanager.png]] - [[Splitmanager or A\B Testing]] - менеджер сплитов&lt;br /&gt;
* [[Файл:Tapjoy.png]] - [[Tapjoy]] - система рекламы игр&lt;br /&gt;
* [[Файл:Playhaven.png|24px]] - [[Playhaven]] - система рекламы игр с внутренними up-sale&lt;br /&gt;
* [[Файл:Mobileapptracker.png|24px]] - [[Mobileapptracking]] -&lt;br /&gt;
* [[Файл:Chartboost-logo-new.jpeg]] - [[Chartboost]] -  Chartboost-logo-new.jpeg&lt;br /&gt;
* [[Файл:Kub.png]] - [[SuperSonic]] -  провайдер рекламы SuperSonic&lt;br /&gt;
* [[Файл:Kub.png]] - [[System]] - объект для доступа к системным настройкам&lt;br /&gt;
* [[Файл:Kub.png]] - [[Salesmanager]] - менеджер акций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Cloud]] - объект для синхронизации в облаке&lt;br /&gt;
* [[Файл:Kub.png]] - [[Game]] - объект для отправки событий&lt;br /&gt;
&lt;br /&gt;
=== Social ===&lt;br /&gt;
* [[Файл:Facebook.png]] - [[Facebook]] - настройки расшаривания Facebook&lt;br /&gt;
** [[Файл:Esocialfrienditem.png]] - [[Esocialitem]] - Шаблон для ячейки списка друзей&lt;br /&gt;
** [[Файл:Kub.png]] - [[Esocialgiftitem]] - Шаблон для ячейки с предметом, который можно подарить другу&lt;br /&gt;
** [[Файл:Esocial.png]] - [[Esocial]] - объект для взаимодействия с Facebook'ом&lt;br /&gt;
* [[Файл:Twitter.png]] - [[Twitter]] - настройки расшаривания Twitter&lt;br /&gt;
* [[Файл:Odnoklassniki.png]] - [[Odnoklassniki]] - настройки для социальной сети Одноклассники&lt;br /&gt;
* [[Файл:Googleplus.png]] - [[GooglePlus]] - настройки для социальной сети GooglePlus&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* [[Файл:Forward.png]] - [[SendMail]] - отправка письма через почтовый клиент&lt;br /&gt;
* [[Файл:footer-icon-rate.png]] - [[Rate]] - вызов окна оценки приложения&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;50px&amp;quot; heights=&amp;quot;50px&amp;quot; &amp;gt;&lt;br /&gt;
Изображение:Who.png&lt;br /&gt;
Изображение:AnimalHideSeek.png&lt;br /&gt;
Изображение:travel.png&lt;br /&gt;
Изображение:Game_Adventure_Train.png&lt;br /&gt;
Изображение:Gmae_Match_MoveTheDolly.png&lt;br /&gt;
Изображение:Game_Patchwork_BigEyes.png&lt;br /&gt;
Изображение:Game_Patchwork_Chameleon.png&lt;br /&gt;
Изображение:Game_Patchwork_Logicly.png‎&lt;br /&gt;
Изображение:Game_Patchwork_Stickers.png‎&lt;br /&gt;
Изображение:Elephant.png&lt;br /&gt;
Изображение:Elephant2.png&lt;br /&gt;
Изображение:Cinderella.png&lt;br /&gt;
Изображение:Pigs.png&lt;br /&gt;
Изображение:Bremenskye.png&lt;br /&gt;
Изображение:Book_SnowWhite.png&lt;br /&gt;
Изображение:Book_PussInBoots.png&lt;br /&gt;
Изображение:Call.png&lt;br /&gt;
Изображение:GreatestArtists.png&lt;br /&gt;
Изображение:Game_Puzzle_Kids.png&lt;br /&gt;
Изображение:Game_Puzzle_Architect.png‎&lt;br /&gt;
Изображение:Game_Puzzle_Science.png&lt;br /&gt;
Изображение:Ico_1_114_Full.png&lt;br /&gt;
Изображение:Game_Adventure_Dreams.png&lt;br /&gt;
Изображение:Abc.png&lt;br /&gt;
Изображение:Ico_114_Full.png&lt;br /&gt;
Изображение:Ico_114_Paints.png&lt;br /&gt;
Изображение:Ico_114_Puzzle.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:main]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8468</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8468"/>
		<updated>2016-10-12T11:41:15Z</updated>

		<summary type="html">&lt;p&gt;Denisov: Denisov переименовал страницу Dressingtamplate в Dressingtemplate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtemplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - &lt;br /&gt;
*'''название''' ''(name)'' - &lt;br /&gt;
*'''описание''' ''(dsc)'' - &lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - &lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - &lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - &lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - &lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - &lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - &lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - &lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - &lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - &lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - &lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - &lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - &lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - &lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - &lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - &lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - &lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - &lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - &lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' -&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtamplate&amp;diff=8469</id>
		<title>Dressingtamplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtamplate&amp;diff=8469"/>
		<updated>2016-10-12T11:41:15Z</updated>

		<summary type="html">&lt;p&gt;Denisov: Denisov переименовал страницу Dressingtamplate в Dressingtemplate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Dressingtemplate]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8467</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8467"/>
		<updated>2016-10-12T11:40:53Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtemplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - &lt;br /&gt;
*'''название''' ''(name)'' - &lt;br /&gt;
*'''описание''' ''(dsc)'' - &lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - &lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - &lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - &lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - &lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - &lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - &lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - &lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - &lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - &lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - &lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - &lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - &lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - &lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - &lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - &lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - &lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - &lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - &lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' -&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8466</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8466"/>
		<updated>2016-10-12T11:39:45Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Основные параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[Dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' - категория предмета&lt;br /&gt;
*'''res''' - полноразмерная графика предмета&lt;br /&gt;
*'''цена покупки res1''' - цена покупки res1&lt;br /&gt;
*'''цена покупки res2''' - цена покупки res2&lt;br /&gt;
*'''цена продажи res1''' - цена продажи res1&lt;br /&gt;
*'''цена продажи res2''' - цена продажи res2&lt;br /&gt;
*'''цена ремонта res1''' - цена ремонта res1&lt;br /&gt;
*'''цена ремонта res2''' - цена ремонта res2&lt;br /&gt;
*'''уровень xp''' - уровень XP, начиная с которого можно использовать предмет&lt;br /&gt;
*'''время ремонта''' - время ремонта в секундах&lt;br /&gt;
*'''цена ускорения ремонта res2''' - цена ускорения ремонта res2, 0 - нельзя&lt;br /&gt;
*'''связанный объект''' - связанный объект, в него запишем res при надевании предмета&lt;br /&gt;
*'''прочность''' - прочность предмета, 1 - не изнашивается&lt;br /&gt;
*'''критическая прочность''' - критический уровень износа&lt;br /&gt;
*'''тип предмета''' - тип предмета&lt;br /&gt;
*'''нельзя с типами''' - типы, с которыми нельзя надевать данный предмет, последовательность чисел через запятую&lt;br /&gt;
*'''надет по умолчанию''' - надет по умолчанию&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - нехватка денег''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - конфликт предметов''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8465</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8465"/>
		<updated>2016-10-12T11:39:20Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Основные параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtwmplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - прозрачность&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - объект-владелец, объект типа [[Dressing]]&lt;br /&gt;
*'''иконка''' ''(icon)'' - &lt;br /&gt;
*'''название''' ''(name)'' - &lt;br /&gt;
*'''описание''' ''(dsc)'' - &lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - &lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - &lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - &lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - &lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - &lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - &lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - &lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - &lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - &lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - &lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - &lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - &lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - &lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - &lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - &lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - &lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - &lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - &lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' -&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8464</id>
		<title>Dressingtemplate</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressingtemplate&amp;diff=8464"/>
		<updated>2016-10-12T11:29:35Z</updated>

		<summary type="html">&lt;p&gt;Denisov: Новая страница: «'''Dressingtwmplate''' - объект для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей пер…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressingtwmplate''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
Является шаблоном для ячеек таблицы, содержащей надеваемые предметы.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''alpha''' ''(al)'' - начальное состояние&lt;br /&gt;
*'''состояние''' ''(state)'' - состояние&lt;br /&gt;
*'''dressing''' ''(dressing)'' - &lt;br /&gt;
*'''иконка''' ''(icon)'' - &lt;br /&gt;
*'''название''' ''(name)'' - &lt;br /&gt;
*'''описание''' ''(dsc)'' - &lt;br /&gt;
*'''кнопка купить''' ''(btnBuy)'' - &lt;br /&gt;
*'''кнопка надеть''' ''(btnWear)'' - &lt;br /&gt;
*'''кнопка продать''' ''(btnSell)'' - &lt;br /&gt;
*'''кнопка ремонт''' ''(btnFix)'' - &lt;br /&gt;
*'''кнопка ускорить''' ''(btnRush)'' - &lt;br /&gt;
*'''цена покупки res1''' ''(cntBuyRes1)'' - &lt;br /&gt;
*'''цена покупки res2''' ''(cntBuyRes1)'' - &lt;br /&gt;
*'''цена продажи res1''' ''(cntSellRes2)'' - &lt;br /&gt;
*'''цена продажи res2''' ''(cntSellRes1)'' - &lt;br /&gt;
*'''цена ремонта res1''' ''(cntFixRes2)'' - &lt;br /&gt;
*'''цена ремонта res2''' ''(cntFixRes1)'' - &lt;br /&gt;
*'''надетый предмет''' ''(inUse)'' - &lt;br /&gt;
*'''замок по XP''' ''(lockXP)'' - &lt;br /&gt;
*'''счетчик для XP''' ''(cntXP)'' - &lt;br /&gt;
*'''время ремонта''' ''(timeFix)'' - &lt;br /&gt;
*'''прогресс износа''' ''(progWear)'' - &lt;br /&gt;
*'''каунтер износа''' ''(cntWear)'' - &lt;br /&gt;
*'''анимация покупки''' ''(animBuy)'' - &lt;br /&gt;
*'''анимация ремонта''' ''(animFix)'' -&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8463</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8463"/>
		<updated>2016-10-12T11:07:36Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Добавляемые параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' - категория предмета&lt;br /&gt;
*'''res''' - полноразмерная графика предмета&lt;br /&gt;
*'''цена покупки res1''' - цена покупки res1&lt;br /&gt;
*'''цена покупки res2''' - цена покупки res2&lt;br /&gt;
*'''цена продажи res1''' - цена продажи res1&lt;br /&gt;
*'''цена продажи res2''' - цена продажи res2&lt;br /&gt;
*'''цена ремонта res1''' - цена ремонта res1&lt;br /&gt;
*'''цена ремонта res2''' - цена ремонта res2&lt;br /&gt;
*'''уровень xp''' - уровень XP, начиная с которого можно использовать предмет&lt;br /&gt;
*'''время ремонта''' - время ремонта в секундах&lt;br /&gt;
*'''цена ускорения ремонта res2''' - цена ускорения ремонта res2, 0 - нельзя&lt;br /&gt;
*'''связанный объект''' - связанный объект, в него запишем res при надевании предмета&lt;br /&gt;
*'''прочность''' - прочность предмета, 1 - не изнашивается&lt;br /&gt;
*'''критическая прочность''' - критический уровень износа&lt;br /&gt;
*'''тип предмета''' - тип предмета&lt;br /&gt;
*'''нельзя с типами''' - типы, с которыми нельзя надевать данный предмет, последовательность чисел через запятую&lt;br /&gt;
*'''надет по умолчанию''' - надет по умолчанию&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - нехватка денег''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;br /&gt;
&lt;br /&gt;
'''изменить состояние объекта - конфликт предметов''' '''''(nst_nomoney)'''''&lt;br /&gt;
&lt;br /&gt;
*'''объект''' ''(obj)'' - перевести объект в состояние из следующего поля&lt;br /&gt;
*'''состояние''' ''(state)'' - новое состояние для объекта из предыдущего поля&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8462</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8462"/>
		<updated>2016-10-12T11:01:47Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' ''()'' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' ''()'' - категория предмета&lt;br /&gt;
*'''res''' ''()'' - полноразмерная графика предмета&lt;br /&gt;
*'''цена покупки res1''' ''()'' - цена покупки res1&lt;br /&gt;
*'''цена покупки res2''' ''()'' - цена покупки res2&lt;br /&gt;
*'''цена продажи res1''' ''()'' - цена продажи res1&lt;br /&gt;
*'''цена продажи res2''' ''()'' - цена продажи res2&lt;br /&gt;
*'''цена ремонта res1''' ''()'' - цена ремонта res1&lt;br /&gt;
*'''цена ремонта res2''' ''()'' - цена ремонта res2&lt;br /&gt;
*'''уровень xp''' ''()'' - уровень XP, начиная с которого можно использовать предмет&lt;br /&gt;
*'''время ремонта''' ''()'' - время ремонта в секундах&lt;br /&gt;
*'''цена ускорения ремонта res2''' ''()'' - цена ускорения ремонта res2, 0 - нельзя&lt;br /&gt;
*'''связанный объект''' ''()'' - связанный объект, в него запишем res при надевании предмета&lt;br /&gt;
*'''прочность''' ''()'' - прочность предмета, 1 - не изнашивается&lt;br /&gt;
*'''критическая прочность''' ''()'' - критический уровень износа&lt;br /&gt;
*'''тип предмета''' ''()'' - тип предмета&lt;br /&gt;
*'''нельзя с типами''' ''()'' - типы, с которыми нельзя надевать данный предмет, последовательность чисел через запятую&lt;br /&gt;
*'''надет по умолчанию''' ''()'' - надет по умолчанию&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8461</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8461"/>
		<updated>2016-10-11T15:32:53Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' ''()'' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' ''()'' - категория предмета&lt;br /&gt;
*'''res''' ''()'' - &lt;br /&gt;
*'''цена покупки res1''' ''()'' - &lt;br /&gt;
*'''цена покупки res2''' ''()'' - &lt;br /&gt;
*'''цена продажи res1''' ''()'' - &lt;br /&gt;
*'''цена продажи res2''' ''()'' - &lt;br /&gt;
*'''цена ремонта res1''' ''()'' - &lt;br /&gt;
*'''цена ремонта res2''' ''()'' - &lt;br /&gt;
*'''уровень xp''' ''()'' - &lt;br /&gt;
*'''время ремонта''' ''()'' - &lt;br /&gt;
*'''цена ускорения ремонта res2''' ''()'' - &lt;br /&gt;
*'''связанный объект''' ''()'' - &lt;br /&gt;
*'''прочность''' ''()'' - &lt;br /&gt;
*'''критическая прочность''' ''()'' - &lt;br /&gt;
*'''тип предмета''' ''()'' - &lt;br /&gt;
*'''нельзя с типами''' ''()'' - &lt;br /&gt;
*'''надет по умолчанию''' ''()'' -&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8460</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8460"/>
		<updated>2016-10-11T15:24:44Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Добавляемые параметры==&lt;br /&gt;
&lt;br /&gt;
'''предмет''' '''''(item)'''''&lt;br /&gt;
*'''id''' ''()'' - текстовый айди, уникальный ключ предмета&lt;br /&gt;
*'''фильтр''' ''()'' - &lt;br /&gt;
*'''res''' ''()'' - &lt;br /&gt;
*'''цена покупки res1''' ''()'' - &lt;br /&gt;
*'''цена покупки res2''' ''()'' - &lt;br /&gt;
*'''цена продажи res1''' ''()'' - &lt;br /&gt;
*'''цена продажи res2''' ''()'' - &lt;br /&gt;
*'''цена ремонта res1''' ''()'' - &lt;br /&gt;
*'''цена ремонта res2''' ''()'' - &lt;br /&gt;
*'''уровень xp''' ''()'' - &lt;br /&gt;
*'''время ремонта''' ''()'' - &lt;br /&gt;
*'''цена ускорения ремонта res2''' ''()'' - &lt;br /&gt;
*'''связанный объект''' ''()'' - &lt;br /&gt;
*'''прочность''' ''()'' - &lt;br /&gt;
*'''критическая прочность''' ''()'' - &lt;br /&gt;
*'''тип предмета''' ''()'' - &lt;br /&gt;
*'''нельзя с типами''' ''()'' - &lt;br /&gt;
*'''надет по умолчанию''' ''()'' -&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8459</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8459"/>
		<updated>2016-10-11T15:17:10Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''(cellsNum)'' - начальное число ячеек в инвентаре&lt;br /&gt;
*'''цена расширения''' ''(incPrice)'' - цена расширения на одну ячейку, последовательность чисел через запятую&lt;br /&gt;
&lt;br /&gt;
==Дополнительные параметры==&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8458</id>
		<title>Dressing</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Dressing&amp;diff=8458"/>
		<updated>2016-10-11T15:14:03Z</updated>

		<summary type="html">&lt;p&gt;Denisov: Новая страница: «'''Dressing''' - объект для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переоде…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Dressing''' - [[Object|объект]] для реализации механики мини-игры &amp;quot;Гардероб&amp;quot;, позволяющей переодеть персонажа.&lt;br /&gt;
&lt;br /&gt;
==Основные параметры==&lt;br /&gt;
*'''состояние''' ''(state)'' - начальное состояние&lt;br /&gt;
*'''экономика''' ''(economics)'' - объект-экономика&lt;br /&gt;
*'''таблица''' ''(table)'' - таблица, в которую будем складывать шаблоны&lt;br /&gt;
*'''шаблон''' ''(template)'' - шаблон предмета в ячейке. Объект типа [[dressingtemplate]].&lt;br /&gt;
*'''число ячеек''' ''()''&lt;br /&gt;
*'''цена расширения''' ''()''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Дополнительные параметры==&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8457</id>
		<title>Absolutist Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8457"/>
		<updated>2016-10-11T15:05:29Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
'''[[:category:main|Категории]]'''&lt;br /&gt;
== Новости ==&lt;br /&gt;
Вышла новая игра HOG созданная с помощью AppSalute Game Сreator. Созданы новые уникальные эффекты и механики для обеспечения незабываемых впечатлений.&lt;br /&gt;
Описание и видео:&lt;br /&gt;
http://time-gap.com/&lt;br /&gt;
&lt;br /&gt;
== AppSalute Game Сreator ==&lt;br /&gt;
* [[Примеры приложений]]&lt;br /&gt;
* [[Введение в AppSalute Game Сreator]]&lt;br /&gt;
* [[Установка и настройка]]&lt;br /&gt;
* [[Интерфейс ScenceEditor ]]&lt;br /&gt;
* [[Интерфейс ResourceEditor ]]&lt;br /&gt;
* [[Интерфейс TextEditor ]]&lt;br /&gt;
*[[Интерфейс Viewer ]]&lt;br /&gt;
* [[Книга жалоб и пожеланий]]&lt;br /&gt;
* [[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
== Обучение ==&lt;br /&gt;
&lt;br /&gt;
* [[Learning|Уроки по освоению фреймворка]]&lt;br /&gt;
* [[Примеры реализации в играх]]&lt;br /&gt;
* [[Основные понятия объектов физического мира]]&lt;br /&gt;
* [[Использование AppSalute Debugger при отладке]]&lt;br /&gt;
* [[Отладка на флеше]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Подготовка проекта ==&lt;br /&gt;
* [[Проектирование экранов игры]]&lt;br /&gt;
* [[Подготовка и форматы графики]]&lt;br /&gt;
* [[Подготовка и форматы шрифтов]]&lt;br /&gt;
* [[Подготовка и форматы звуков]]&lt;br /&gt;
* [[Подготовка и форматы видео]]&lt;br /&gt;
* [[Создание проекта]]&lt;br /&gt;
* [[Загрузка проекта по частям]]&lt;br /&gt;
* [[Конфигурация проекта для сборки]]&lt;br /&gt;
* [[Подготовка для загрузки на маркеты]]&lt;br /&gt;
* [[Сборка проекта]]&lt;br /&gt;
* [[Частые ошибки]]&lt;br /&gt;
* [[Отличия подготовки проекта для разных платформ]]&lt;br /&gt;
* [[Lua|Использование lua-скриптов]]&lt;br /&gt;
* [[Подготовка версии для Viber]]&lt;br /&gt;
&lt;br /&gt;
== Встроенные объекты редактора==&lt;br /&gt;
&lt;br /&gt;
=== Common objects  ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Screen.png]] - [[Screen]]'' - экран&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Scene.png]] - [[Scene]]'' - сцена&lt;br /&gt;
&lt;br /&gt;
=== Main objects ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Objects.png]] - [[Object]]'' - общие параметры для всех игровых объектов&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Azmanager]] - менеджер активных зон&lt;br /&gt;
* [[Файл:Kub.png]] - [[Active zone]] - активная зона&lt;br /&gt;
* [[Файл:Picture.png]] - [[Image]] - картинка&lt;br /&gt;
* [[Файл:Kub.png]] - [[Statistic]] - объект для отправки событий статистики.&lt;br /&gt;
* [[Файл:Button.png]] - [[Button]] - кнопка&lt;br /&gt;
* [[Файл:Text.png]] - [[Text]] - текст&lt;br /&gt;
* [[Файл:Machine.png]] - [[Machine]] - машина состояний&lt;br /&gt;
** [[Файл:Mwindow.png]] - [[Mwindow]] - машина состояний - окно&lt;br /&gt;
* [[Файл:Tableicon.png]] - [[Table]] - таблица&lt;br /&gt;
* [[Файл:Checkbox.png]] - [[Checkbox]] - чекбокс (кнопка в 2-х состояниях)&lt;br /&gt;
* [[Файл:Checkgroup.png]] - [[Groupbox]] - группа, содержащая несколько чекбоксов&lt;br /&gt;
* [[Файл:Timer.png]] - [[Timer]] - цифровой таймер&lt;br /&gt;
** [[Файл:Kub.png]] - [[Globaltimer]] - таймер &amp;quot;реального времени&amp;quot;&lt;br /&gt;
* [[Файл:Counter2.png]] - [[Counter]] - счетчик сделанных кликов в игре и т.п.&lt;br /&gt;
* [[Файл:Progressbar.png]] - [[Progress]] - прогресс прохождения игры (эчивмент)&lt;br /&gt;
* [[Файл:Particle.png]] - [[Flyer]] - флаер (патиклы)&lt;br /&gt;
* [[Файл:Rectangle.png]] - [[Rectangle]] - прямоугольник&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomover]] - объект движения в изометрической карте&lt;br /&gt;
* [[Файл:Group.png]] - [[Group]] - группа&lt;br /&gt;
* [[Файл:Groupset.png‎]] - [[Groupset]] - группа&lt;br /&gt;
* [[Файл:Effect.jpg|20px]] - [[Effect]] - Создание различных эффектов&lt;br /&gt;
* [[Файл:Graphprogress.png]] - [[Graphprogress]] - создание мини-карты для отображения прогресса прохождения игры.&lt;br /&gt;
* [[Файл:Statesmanager_ico.png]] - [[Statesmanager]] - очередь работы с объектами&lt;br /&gt;
* [[Файл:Slider icons.png]] - [[Slider]] - объект реализующий листание списка.&lt;br /&gt;
* [[Файл:Ribbon.png]] - [[Ribbon]] - объект отображения графики по сплайну&lt;br /&gt;
* [[Файл:Kub.png]] - [[Animation]] - объект различных анимаций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Magicparticles]] - объект файлов Magic Particles&lt;br /&gt;
&lt;br /&gt;
=== Game mechanic ===&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Avoider]] - эвойдер&lt;br /&gt;
* [[Файл:Puzzle.png]] - [[Puzzle]] - игра пазл&lt;br /&gt;
* [[Файл:Memory.png]] - [[Memory]] - класс игр с memory-механикой&lt;br /&gt;
* [[Файл:Patchwork.png]] - [[Patchwork]] - класс игр с Patchwork-механикой&lt;br /&gt;
* [[Файл:Match3.png]] - [[Match]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Collaps.png]] - [[Collapse]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Bejewelled.png]] - [[Bejewelled]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:BubbleShooter.png]] - [[Bubble Shooter]] - класс Bubble игр включая механику Снукер&lt;br /&gt;
* [[Файл:Tapthebubble.png]] - [[TapTheBubble]] - механика игры Tap The Bubble&lt;br /&gt;
* [[Файл:GemSlider.jpg]] - [[Gem Slider]] - механика игры Gem Slider&lt;br /&gt;
* [[Файл:W-57.png]] - [[Words]] - механика игры Words&lt;br /&gt;
* [[Файл:Kub.png]] - [[2048]] - механика игры 2048&lt;br /&gt;
* [[Файл:Kub.png]] - [[Planet]] - игра &amp;quot;Планетки&amp;quot;&lt;br /&gt;
* [[Файл:Kub.png]] - [[Unblock]] - механика игры unblock&lt;br /&gt;
* [[Файл:Matchbattle.png]] - [[Match Battle]] - настройка глобальных параметров для мини-игр&lt;br /&gt;
* [[Файл:Move box.png]] - [[DragBox]] - класс игр с dragbox-механикой&lt;br /&gt;
* [[Файл:Labyrinth.png]] - [[Labyrinth]] - класс игр лабиринт&lt;br /&gt;
* [[Файл:Pipes.png]] - [[Pipes]] - класс игр трубы&lt;br /&gt;
* [[Файл:Search object.png]] - [[HiddenObject]] - поисковый объект в хидден играх&lt;br /&gt;
* [[Файл:Object list.png]] - [[HiddenList]] - список поисковых объектов в хидден играх&lt;br /&gt;
* [[Файл:Hint.png]] - [[HiddenHint]] - подсказка (указатель на спрятанный объект)&lt;br /&gt;
* [[Файл:Kub.png]] - [[HiddenHighLighter]] - позволяет показать не найденные объекты в хиддене.&lt;br /&gt;
* [[Файл:Collection.png]] - [[Collection]] - &amp;quot;коллекция&amp;quot; поисковых объектов для хидден игр&lt;br /&gt;
* [[Файл:Inventory.png]] - [[Inventory]] - &amp;quot;инвентарь&amp;quot; список применяемых объектов для игр&lt;br /&gt;
* [[Файл:Tool.png]] - [[Tool]] - &amp;quot;применение&amp;quot; - объект, который можно применить для игр&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomap]] - изометрическая карта&lt;br /&gt;
* [[Файл:Slotmachine.png]] - [[Slotmachine]] - объект типа &amp;quot;slot&amp;quot;&lt;br /&gt;
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер&lt;br /&gt;
** [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря/магазина и экономики &lt;br /&gt;
** [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина &lt;br /&gt;
** [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря &lt;br /&gt;
** [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета.&lt;br /&gt;
** [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий &lt;br /&gt;
*** [[Файл:Kub.png]] - [[Etasktemplate]] - шаблон задачи для таблицы темплейтов.&lt;br /&gt;
** [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания&lt;br /&gt;
** [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции&lt;br /&gt;
* [[Файл:Paint.png‎]] - [[Paint]] - объект для рисования &lt;br /&gt;
* [[Файл:Physicsworld.png]] - [[Physicsworld]] - физический мир Box2D&lt;br /&gt;
** [[Файл:Physicsobject.png]] - [[Physicsobject]] - физические объекты&lt;br /&gt;
** [[Файл:Physics links.png]] - [[Physicsjoint]] - физические соединения&lt;br /&gt;
*  [[Файл:Eraser.png]] - [[Eraser]] - стирачка&lt;br /&gt;
* [[Файл:Kub.png]] - [[trivia]] - игровая механика - миллионер (trivia)&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dailybonus]] - объект для управления механизмом ежедневного бонуса за вход в игру.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pet]] - объект питомца.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetCollectionTemplate]] - объект шаблона ячейки с коллекцией.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetTemplate]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[CakeTower]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pentamino]] - механика игры в [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8%D0%BD%D0%BE пентамино]&lt;br /&gt;
* [[Файл:Kub.png]] - [[TapTheNew]]&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressing]] - гардероб.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressingtamplate]] - объект шаблона гардероба.&lt;br /&gt;
&lt;br /&gt;
=== Global score ===&lt;br /&gt;
* [[Файл:Gamecenter.png]] - [[Gamecenter]] - объект для отправки данных на GameCenter iTunse&lt;br /&gt;
**[[Файл:Kub.png]] - [[Achievementitem]] -  шаблон локального достижения (оффлайн ачивка)&lt;br /&gt;
* [[Файл:Gamecircle.jpg]] - [[Amazon GameCircle]] - объект для отправки данных Amazon GameCircle&lt;br /&gt;
* [[Файл:Google-play-games-android.jpg‎]] - [[Google Play services]] - объект для отправки данных на Google Play services&lt;br /&gt;
* [[Файл:Localtoplist.png]] - [[Localtoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltoplist.png]] - [[Globaltoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltopsender.png]] - [[Globaltopsender]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
* [[Файл:Options.png]] - [[Options]] - общие настройки игры&lt;br /&gt;
* [[Файл:Gamedata.png]] - [[Gamedata]] -&lt;br /&gt;
* [[Файл:Controls.png]] - [[Controls]] - обьект для работы с клавишами клавиатуры или девайса &lt;br /&gt;
* [[Файл:Editicon.png]] - [[Edit]] - ввод текста&lt;br /&gt;
* [[Файл:Store.png]] - [[Store]] - настройки InApp покупок в игре&lt;br /&gt;
** [[Файл:Kub.png]] - [[Wallet]] - объект для начисления игровой валюты при InApp покупках через объект economics&lt;br /&gt;
* [[Файл:Notification.png]] - [[Notification]] - push-уведомления&lt;br /&gt;
* [[Файл:Imagepicker.png]] - [[Imagepiker]] - объект для загрузки фото из галереи&lt;br /&gt;
* [[Файл:Video.png]] - [[Video]] - объект для просмотра видео&lt;br /&gt;
* [[Файл:Webview.png]] - [[Webview]] - объект для просмотра интернет страниц в приложении&lt;br /&gt;
* [[Файл:Flurryobject.png]] - [[Flurry]] - настройки системы статистики для приложений https://dev.flurry.com&lt;br /&gt;
* [[Файл:Moregames.png]] - [[MoreGamesList]] - запрос банеров рекламируемых игр&lt;br /&gt;
* [[Файл:Advertisement.png]] - [[Advertisement]] - банерная система flurry, amazon&lt;br /&gt;
* [[Файл:Splitmanager.png]] - [[Splitmanager or A\B Testing]] - менеджер сплитов&lt;br /&gt;
* [[Файл:Tapjoy.png]] - [[Tapjoy]] - система рекламы игр&lt;br /&gt;
* [[Файл:Playhaven.png|24px]] - [[Playhaven]] - система рекламы игр с внутренними up-sale&lt;br /&gt;
* [[Файл:Mobileapptracker.png|24px]] - [[Mobileapptracking]] -&lt;br /&gt;
* [[Файл:Chartboost-logo-new.jpeg]] - [[Chartboost]] -  Chartboost-logo-new.jpeg&lt;br /&gt;
* [[Файл:Kub.png]] - [[SuperSonic]] -  провайдер рекламы SuperSonic&lt;br /&gt;
* [[Файл:Kub.png]] - [[System]] - объект для доступа к системным настройкам&lt;br /&gt;
* [[Файл:Kub.png]] - [[Salesmanager]] - менеджер акций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Cloud]] - объект для синхронизации в облаке&lt;br /&gt;
* [[Файл:Kub.png]] - [[Game]] - объект для отправки событий&lt;br /&gt;
&lt;br /&gt;
=== Social ===&lt;br /&gt;
* [[Файл:Facebook.png]] - [[Facebook]] - настройки расшаривания Facebook&lt;br /&gt;
** [[Файл:Esocialfrienditem.png]] - [[Esocialitem]] - Шаблон для ячейки списка друзей&lt;br /&gt;
** [[Файл:Kub.png]] - [[Esocialgiftitem]] - Шаблон для ячейки с предметом, который можно подарить другу&lt;br /&gt;
** [[Файл:Esocial.png]] - [[Esocial]] - объект для взаимодействия с Facebook'ом&lt;br /&gt;
* [[Файл:Twitter.png]] - [[Twitter]] - настройки расшаривания Twitter&lt;br /&gt;
* [[Файл:Odnoklassniki.png]] - [[Odnoklassniki]] - настройки для социальной сети Одноклассники&lt;br /&gt;
* [[Файл:Googleplus.png]] - [[GooglePlus]] - настройки для социальной сети GooglePlus&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* [[Файл:Forward.png]] - [[SendMail]] - отправка письма через почтовый клиент&lt;br /&gt;
* [[Файл:footer-icon-rate.png]] - [[Rate]] - вызов окна оценки приложения&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;50px&amp;quot; heights=&amp;quot;50px&amp;quot; &amp;gt;&lt;br /&gt;
Изображение:Who.png&lt;br /&gt;
Изображение:AnimalHideSeek.png&lt;br /&gt;
Изображение:travel.png&lt;br /&gt;
Изображение:Game_Adventure_Train.png&lt;br /&gt;
Изображение:Gmae_Match_MoveTheDolly.png&lt;br /&gt;
Изображение:Game_Patchwork_BigEyes.png&lt;br /&gt;
Изображение:Game_Patchwork_Chameleon.png&lt;br /&gt;
Изображение:Game_Patchwork_Logicly.png‎&lt;br /&gt;
Изображение:Game_Patchwork_Stickers.png‎&lt;br /&gt;
Изображение:Elephant.png&lt;br /&gt;
Изображение:Elephant2.png&lt;br /&gt;
Изображение:Cinderella.png&lt;br /&gt;
Изображение:Pigs.png&lt;br /&gt;
Изображение:Bremenskye.png&lt;br /&gt;
Изображение:Book_SnowWhite.png&lt;br /&gt;
Изображение:Book_PussInBoots.png&lt;br /&gt;
Изображение:Call.png&lt;br /&gt;
Изображение:GreatestArtists.png&lt;br /&gt;
Изображение:Game_Puzzle_Kids.png&lt;br /&gt;
Изображение:Game_Puzzle_Architect.png‎&lt;br /&gt;
Изображение:Game_Puzzle_Science.png&lt;br /&gt;
Изображение:Ico_1_114_Full.png&lt;br /&gt;
Изображение:Game_Adventure_Dreams.png&lt;br /&gt;
Изображение:Abc.png&lt;br /&gt;
Изображение:Ico_114_Full.png&lt;br /&gt;
Изображение:Ico_114_Paints.png&lt;br /&gt;
Изображение:Ico_114_Puzzle.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:main]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8456</id>
		<title>Absolutist Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8456"/>
		<updated>2016-10-11T14:55:17Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
'''[[:category:main|Категории]]'''&lt;br /&gt;
== Новости ==&lt;br /&gt;
Вышла новая игра HOG созданная с помощью AppSalute Game Сreator. Созданы новые уникальные эффекты и механики для обеспечения незабываемых впечатлений.&lt;br /&gt;
Описание и видео:&lt;br /&gt;
http://time-gap.com/&lt;br /&gt;
&lt;br /&gt;
== AppSalute Game Сreator ==&lt;br /&gt;
* [[Примеры приложений]]&lt;br /&gt;
* [[Введение в AppSalute Game Сreator]]&lt;br /&gt;
* [[Установка и настройка]]&lt;br /&gt;
* [[Интерфейс ScenceEditor ]]&lt;br /&gt;
* [[Интерфейс ResourceEditor ]]&lt;br /&gt;
* [[Интерфейс TextEditor ]]&lt;br /&gt;
*[[Интерфейс Viewer ]]&lt;br /&gt;
* [[Книга жалоб и пожеланий]]&lt;br /&gt;
* [[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
== Обучение ==&lt;br /&gt;
&lt;br /&gt;
* [[Learning|Уроки по освоению фреймворка]]&lt;br /&gt;
* [[Примеры реализации в играх]]&lt;br /&gt;
* [[Основные понятия объектов физического мира]]&lt;br /&gt;
* [[Использование AppSalute Debugger при отладке]]&lt;br /&gt;
* [[Отладка на флеше]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Подготовка проекта ==&lt;br /&gt;
* [[Проектирование экранов игры]]&lt;br /&gt;
* [[Подготовка и форматы графики]]&lt;br /&gt;
* [[Подготовка и форматы шрифтов]]&lt;br /&gt;
* [[Подготовка и форматы звуков]]&lt;br /&gt;
* [[Подготовка и форматы видео]]&lt;br /&gt;
* [[Создание проекта]]&lt;br /&gt;
* [[Загрузка проекта по частям]]&lt;br /&gt;
* [[Конфигурация проекта для сборки]]&lt;br /&gt;
* [[Подготовка для загрузки на маркеты]]&lt;br /&gt;
* [[Сборка проекта]]&lt;br /&gt;
* [[Частые ошибки]]&lt;br /&gt;
* [[Отличия подготовки проекта для разных платформ]]&lt;br /&gt;
* [[Lua|Использование lua-скриптов]]&lt;br /&gt;
* [[Подготовка версии для Viber]]&lt;br /&gt;
&lt;br /&gt;
== Встроенные объекты редактора==&lt;br /&gt;
&lt;br /&gt;
=== Common objects  ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Screen.png]] - [[Screen]]'' - экран&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Scene.png]] - [[Scene]]'' - сцена&lt;br /&gt;
&lt;br /&gt;
=== Main objects ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Objects.png]] - [[Object]]'' - общие параметры для всех игровых объектов&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Azmanager]] - менеджер активных зон&lt;br /&gt;
* [[Файл:Kub.png]] - [[Active zone]] - активная зона&lt;br /&gt;
* [[Файл:Kub.png]] - [[Avoider]] - эвойдер&lt;br /&gt;
* [[Файл:Picture.png]] - [[Image]] - картинка&lt;br /&gt;
* [[Файл:Kub.png]] - [[Statistic]] - объект для отправки событий статистики.&lt;br /&gt;
* [[Файл:Button.png]] - [[Button]] - кнопка&lt;br /&gt;
* [[Файл:Text.png]] - [[Text]] - текст&lt;br /&gt;
* [[Файл:Machine.png]] - [[Machine]] - машина состояний&lt;br /&gt;
** [[Файл:Mwindow.png]] - [[Mwindow]] - машина состояний - окно&lt;br /&gt;
* [[Файл:Tableicon.png]] - [[Table]] - таблица&lt;br /&gt;
* [[Файл:Checkbox.png]] - [[Checkbox]] - чекбокс (кнопка в 2-х состояниях)&lt;br /&gt;
* [[Файл:Checkgroup.png]] - [[Groupbox]] - группа, содержащая несколько чекбоксов&lt;br /&gt;
* [[Файл:Timer.png]] - [[Timer]] - цифровой таймер&lt;br /&gt;
** [[Файл:Kub.png]] - [[Globaltimer]] - таймер &amp;quot;реального времени&amp;quot;&lt;br /&gt;
* [[Файл:Counter2.png]] - [[Counter]] - счетчик сделанных кликов в игре и т.п.&lt;br /&gt;
* [[Файл:Progressbar.png]] - [[Progress]] - прогресс прохождения игры (эчивмент)&lt;br /&gt;
* [[Файл:Particle.png]] - [[Flyer]] - флаер (патиклы)&lt;br /&gt;
* [[Файл:Rectangle.png]] - [[Rectangle]] - прямоугольник&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomover]] - объект движения в изометрической карте&lt;br /&gt;
* [[Файл:Group.png]] - [[Group]] - группа&lt;br /&gt;
* [[Файл:Groupset.png‎]] - [[Groupset]] - группа&lt;br /&gt;
* [[Файл:Effect.jpg|20px]] - [[Effect]] - Создание различных эффектов&lt;br /&gt;
* [[Файл:Graphprogress.png]] - [[Graphprogress]] - создание мини-карты для отображения прогресса прохождения игры.&lt;br /&gt;
* [[Файл:Statesmanager_ico.png]] - [[Statesmanager]] - очередь работы с объектами&lt;br /&gt;
* [[Файл:Slider icons.png]] - [[Slider]] - объект реализующий листание списка.&lt;br /&gt;
* [[Файл:Ribbon.png]] - [[Ribbon]] - объект отображения графики по сплайну&lt;br /&gt;
* [[Файл:Kub.png]] - [[Animation]] - объект различных анимаций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Magicparticles]] - объект файлов Magic Particles&lt;br /&gt;
&lt;br /&gt;
=== Game mechanic ===&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Puzzle.png]] - [[Puzzle]] - игра пазл&lt;br /&gt;
* [[Файл:Memory.png]] - [[Memory]] - класс игр с memory-механикой&lt;br /&gt;
* [[Файл:Patchwork.png]] - [[Patchwork]] - класс игр с Patchwork-механикой&lt;br /&gt;
* [[Файл:Match3.png]] - [[Match]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Collaps.png]] - [[Collapse]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Bejewelled.png]] - [[Bejewelled]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:BubbleShooter.png]] - [[Bubble Shooter]] - класс Bubble игр включая механику Снукер&lt;br /&gt;
* [[Файл:Tapthebubble.png]] - [[TapTheBubble]] - механика игры Tap The Bubble&lt;br /&gt;
* [[Файл:GemSlider.jpg]] - [[Gem Slider]] - механика игры Gem Slider&lt;br /&gt;
* [[Файл:W-57.png]] - [[Words]] - механика игры Words&lt;br /&gt;
* [[Файл:Kub.png]] - [[2048]] - механика игры 2048&lt;br /&gt;
* [[Файл:Kub.png]] - [[Planet]] - игра &amp;quot;Планетки&amp;quot;&lt;br /&gt;
* [[Файл:Kub.png]] - [[Unblock]] - механика игры unblock&lt;br /&gt;
* [[Файл:Matchbattle.png]] - [[Match Battle]] - настройка глобальных параметров для мини-игр&lt;br /&gt;
* [[Файл:Move box.png]] - [[DragBox]] - класс игр с dragbox-механикой&lt;br /&gt;
* [[Файл:Labyrinth.png]] - [[Labyrinth]] - класс игр лабиринт&lt;br /&gt;
* [[Файл:Pipes.png]] - [[Pipes]] - класс игр трубы&lt;br /&gt;
* [[Файл:Search object.png]] - [[HiddenObject]] - поисковый объект в хидден играх&lt;br /&gt;
* [[Файл:Object list.png]] - [[HiddenList]] - список поисковых объектов в хидден играх&lt;br /&gt;
* [[Файл:Hint.png]] - [[HiddenHint]] - подсказка (указатель на спрятанный объект)&lt;br /&gt;
* [[Файл:Kub.png]] - [[HiddenHighLighter]] - позволяет показать не найденные объекты в хиддене.&lt;br /&gt;
* [[Файл:Collection.png]] - [[Collection]] - &amp;quot;коллекция&amp;quot; поисковых объектов для хидден игр&lt;br /&gt;
* [[Файл:Inventory.png]] - [[Inventory]] - &amp;quot;инвентарь&amp;quot; список применяемых объектов для игр&lt;br /&gt;
* [[Файл:Tool.png]] - [[Tool]] - &amp;quot;применение&amp;quot; - объект, который можно применить для игр&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomap]] - изометрическая карта&lt;br /&gt;
* [[Файл:Slotmachine.png]] - [[Slotmachine]] - объект типа &amp;quot;slot&amp;quot;&lt;br /&gt;
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер&lt;br /&gt;
** [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря/магазина и экономики &lt;br /&gt;
** [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина &lt;br /&gt;
** [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря &lt;br /&gt;
** [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета.&lt;br /&gt;
** [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий &lt;br /&gt;
*** [[Файл:Kub.png]] - [[Etasktemplate]] - шаблон задачи для таблицы темплейтов.&lt;br /&gt;
** [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания&lt;br /&gt;
** [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции&lt;br /&gt;
* [[Файл:Paint.png‎]] - [[Paint]] - объект для рисования &lt;br /&gt;
* [[Файл:Physicsworld.png]] - [[Physicsworld]] - физический мир Box2D&lt;br /&gt;
** [[Файл:Physicsobject.png]] - [[Physicsobject]] - физические объекты&lt;br /&gt;
** [[Файл:Physics links.png]] - [[Physicsjoint]] - физические соединения&lt;br /&gt;
*  [[Файл:Eraser.png]] - [[Eraser]] - стирачка&lt;br /&gt;
* [[Файл:Kub.png]] - [[trivia]] - игровая механика - миллионер (trivia)&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dailybonus]] - объект для управления механизмом ежедневного бонуса за вход в игру.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pet]] - объект питомца.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetCollectionTemplate]] - объект шаблона ячейки с коллекцией.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetTemplate]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[CakeTower]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pentamino]] - механика игры в [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8%D0%BD%D0%BE пентамино]&lt;br /&gt;
* [[Файл:Kub.png]] - [[TapTheNew]]&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressing]] - гардероб.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressingtamplate]] - объект шаблона гардероба.&lt;br /&gt;
&lt;br /&gt;
=== Global score ===&lt;br /&gt;
* [[Файл:Gamecenter.png]] - [[Gamecenter]] - объект для отправки данных на GameCenter iTunse&lt;br /&gt;
**[[Файл:Kub.png]] - [[Achievementitem]] -  шаблон локального достижения (оффлайн ачивка)&lt;br /&gt;
* [[Файл:Gamecircle.jpg]] - [[Amazon GameCircle]] - объект для отправки данных Amazon GameCircle&lt;br /&gt;
* [[Файл:Google-play-games-android.jpg‎]] - [[Google Play services]] - объект для отправки данных на Google Play services&lt;br /&gt;
* [[Файл:Localtoplist.png]] - [[Localtoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltoplist.png]] - [[Globaltoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltopsender.png]] - [[Globaltopsender]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
* [[Файл:Options.png]] - [[Options]] - общие настройки игры&lt;br /&gt;
* [[Файл:Gamedata.png]] - [[Gamedata]] -&lt;br /&gt;
* [[Файл:Controls.png]] - [[Controls]] - обьект для работы с клавишами клавиатуры или девайса &lt;br /&gt;
* [[Файл:Editicon.png]] - [[Edit]] - ввод текста&lt;br /&gt;
* [[Файл:Store.png]] - [[Store]] - настройки InApp покупок в игре&lt;br /&gt;
** [[Файл:Kub.png]] - [[Wallet]] - объект для начисления игровой валюты при InApp покупках через объект economics&lt;br /&gt;
* [[Файл:Notification.png]] - [[Notification]] - push-уведомления&lt;br /&gt;
* [[Файл:Imagepicker.png]] - [[Imagepiker]] - объект для загрузки фото из галереи&lt;br /&gt;
* [[Файл:Video.png]] - [[Video]] - объект для просмотра видео&lt;br /&gt;
* [[Файл:Webview.png]] - [[Webview]] - объект для просмотра интернет страниц в приложении&lt;br /&gt;
* [[Файл:Flurryobject.png]] - [[Flurry]] - настройки системы статистики для приложений https://dev.flurry.com&lt;br /&gt;
* [[Файл:Moregames.png]] - [[MoreGamesList]] - запрос банеров рекламируемых игр&lt;br /&gt;
* [[Файл:Advertisement.png]] - [[Advertisement]] - банерная система flurry, amazon&lt;br /&gt;
* [[Файл:Splitmanager.png]] - [[Splitmanager or A\B Testing]] - менеджер сплитов&lt;br /&gt;
* [[Файл:Tapjoy.png]] - [[Tapjoy]] - система рекламы игр&lt;br /&gt;
* [[Файл:Playhaven.png|24px]] - [[Playhaven]] - система рекламы игр с внутренними up-sale&lt;br /&gt;
* [[Файл:Mobileapptracker.png|24px]] - [[Mobileapptracking]] -&lt;br /&gt;
* [[Файл:Chartboost-logo-new.jpeg]] - [[Chartboost]] -  Chartboost-logo-new.jpeg&lt;br /&gt;
* [[Файл:Kub.png]] - [[SuperSonic]] -  провайдер рекламы SuperSonic&lt;br /&gt;
* [[Файл:Kub.png]] - [[System]] - объект для доступа к системным настройкам&lt;br /&gt;
* [[Файл:Kub.png]] - [[Salesmanager]] - менеджер акций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Cloud]] - объект для синхронизации в облаке&lt;br /&gt;
* [[Файл:Kub.png]] - [[Game]] - объект для отправки событий&lt;br /&gt;
&lt;br /&gt;
=== Social ===&lt;br /&gt;
* [[Файл:Facebook.png]] - [[Facebook]] - настройки расшаривания Facebook&lt;br /&gt;
** [[Файл:Esocialfrienditem.png]] - [[Esocialitem]] - Шаблон для ячейки списка друзей&lt;br /&gt;
** [[Файл:Kub.png]] - [[Esocialgiftitem]] - Шаблон для ячейки с предметом, который можно подарить другу&lt;br /&gt;
** [[Файл:Esocial.png]] - [[Esocial]] - объект для взаимодействия с Facebook'ом&lt;br /&gt;
* [[Файл:Twitter.png]] - [[Twitter]] - настройки расшаривания Twitter&lt;br /&gt;
* [[Файл:Odnoklassniki.png]] - [[Odnoklassniki]] - настройки для социальной сети Одноклассники&lt;br /&gt;
* [[Файл:Googleplus.png]] - [[GooglePlus]] - настройки для социальной сети GooglePlus&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* [[Файл:Forward.png]] - [[SendMail]] - отправка письма через почтовый клиент&lt;br /&gt;
* [[Файл:footer-icon-rate.png]] - [[Rate]] - вызов окна оценки приложения&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;50px&amp;quot; heights=&amp;quot;50px&amp;quot; &amp;gt;&lt;br /&gt;
Изображение:Who.png&lt;br /&gt;
Изображение:AnimalHideSeek.png&lt;br /&gt;
Изображение:travel.png&lt;br /&gt;
Изображение:Game_Adventure_Train.png&lt;br /&gt;
Изображение:Gmae_Match_MoveTheDolly.png&lt;br /&gt;
Изображение:Game_Patchwork_BigEyes.png&lt;br /&gt;
Изображение:Game_Patchwork_Chameleon.png&lt;br /&gt;
Изображение:Game_Patchwork_Logicly.png‎&lt;br /&gt;
Изображение:Game_Patchwork_Stickers.png‎&lt;br /&gt;
Изображение:Elephant.png&lt;br /&gt;
Изображение:Elephant2.png&lt;br /&gt;
Изображение:Cinderella.png&lt;br /&gt;
Изображение:Pigs.png&lt;br /&gt;
Изображение:Bremenskye.png&lt;br /&gt;
Изображение:Book_SnowWhite.png&lt;br /&gt;
Изображение:Book_PussInBoots.png&lt;br /&gt;
Изображение:Call.png&lt;br /&gt;
Изображение:GreatestArtists.png&lt;br /&gt;
Изображение:Game_Puzzle_Kids.png&lt;br /&gt;
Изображение:Game_Puzzle_Architect.png‎&lt;br /&gt;
Изображение:Game_Puzzle_Science.png&lt;br /&gt;
Изображение:Ico_1_114_Full.png&lt;br /&gt;
Изображение:Game_Adventure_Dreams.png&lt;br /&gt;
Изображение:Abc.png&lt;br /&gt;
Изображение:Ico_114_Full.png&lt;br /&gt;
Изображение:Ico_114_Paints.png&lt;br /&gt;
Изображение:Ico_114_Puzzle.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:main]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8455</id>
		<title>Absolutist Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&amp;diff=8455"/>
		<updated>2016-10-11T14:53:01Z</updated>

		<summary type="html">&lt;p&gt;Denisov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
'''[[:category:main|Категории]]'''&lt;br /&gt;
== Новости ==&lt;br /&gt;
Вышла новая игра HOG созданная с помощью AppSalute Game Сreator. Созданы новые уникальные эффекты и механики для обеспечения незабываемых впечатлений.&lt;br /&gt;
Описание и видео:&lt;br /&gt;
http://time-gap.com/&lt;br /&gt;
&lt;br /&gt;
== AppSalute Game Сreator ==&lt;br /&gt;
* [[Примеры приложений]]&lt;br /&gt;
* [[Введение в AppSalute Game Сreator]]&lt;br /&gt;
* [[Установка и настройка]]&lt;br /&gt;
* [[Интерфейс ScenceEditor ]]&lt;br /&gt;
* [[Интерфейс ResourceEditor ]]&lt;br /&gt;
* [[Интерфейс TextEditor ]]&lt;br /&gt;
*[[Интерфейс Viewer ]]&lt;br /&gt;
* [[Книга жалоб и пожеланий]]&lt;br /&gt;
* [[Roadmap]]&lt;br /&gt;
&lt;br /&gt;
== Обучение ==&lt;br /&gt;
&lt;br /&gt;
* [[Learning|Уроки по освоению фреймворка]]&lt;br /&gt;
* [[Примеры реализации в играх]]&lt;br /&gt;
* [[Основные понятия объектов физического мира]]&lt;br /&gt;
* [[Использование AppSalute Debugger при отладке]]&lt;br /&gt;
* [[Отладка на флеше]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Подготовка проекта ==&lt;br /&gt;
* [[Проектирование экранов игры]]&lt;br /&gt;
* [[Подготовка и форматы графики]]&lt;br /&gt;
* [[Подготовка и форматы шрифтов]]&lt;br /&gt;
* [[Подготовка и форматы звуков]]&lt;br /&gt;
* [[Подготовка и форматы видео]]&lt;br /&gt;
* [[Создание проекта]]&lt;br /&gt;
* [[Загрузка проекта по частям]]&lt;br /&gt;
* [[Конфигурация проекта для сборки]]&lt;br /&gt;
* [[Подготовка для загрузки на маркеты]]&lt;br /&gt;
* [[Сборка проекта]]&lt;br /&gt;
* [[Частые ошибки]]&lt;br /&gt;
* [[Отличия подготовки проекта для разных платформ]]&lt;br /&gt;
* [[Lua|Использование lua-скриптов]]&lt;br /&gt;
* [[Подготовка версии для Viber]]&lt;br /&gt;
&lt;br /&gt;
== Встроенные объекты редактора==&lt;br /&gt;
&lt;br /&gt;
=== Common objects  ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Screen.png]] - [[Screen]]'' - экран&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Scene.png]] - [[Scene]]'' - сцена&lt;br /&gt;
&lt;br /&gt;
=== Main objects ===&lt;br /&gt;
&lt;br /&gt;
''[[Файл:Objects.png]] - [[Object]]'' - общие параметры для всех игровых объектов&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Kub.png]] - [[Azmanager]] - менеджер активных зон&lt;br /&gt;
* [[Файл:Kub.png]] - [[Active zone]] - активная зона&lt;br /&gt;
* [[Файл:Kub.png]] - [[Avoider]] - эвойдер&lt;br /&gt;
* [[Файл:Picture.png]] - [[Image]] - картинка&lt;br /&gt;
* [[Файл:Kub.png]] - [[Statistic]] - объект для отправки событий статистики.&lt;br /&gt;
* [[Файл:Button.png]] - [[Button]] - кнопка&lt;br /&gt;
* [[Файл:Text.png]] - [[Text]] - текст&lt;br /&gt;
* [[Файл:Machine.png]] - [[Machine]] - машина состояний&lt;br /&gt;
** [[Файл:Mwindow.png]] - [[Mwindow]] - машина состояний - окно&lt;br /&gt;
* [[Файл:Tableicon.png]] - [[Table]] - таблица&lt;br /&gt;
* [[Файл:Checkbox.png]] - [[Checkbox]] - чекбокс (кнопка в 2-х состояниях)&lt;br /&gt;
* [[Файл:Checkgroup.png]] - [[Groupbox]] - группа, содержащая несколько чекбоксов&lt;br /&gt;
* [[Файл:Timer.png]] - [[Timer]] - цифровой таймер&lt;br /&gt;
** [[Файл:Kub.png]] - [[Globaltimer]] - таймер &amp;quot;реального времени&amp;quot;&lt;br /&gt;
* [[Файл:Counter2.png]] - [[Counter]] - счетчик сделанных кликов в игре и т.п.&lt;br /&gt;
* [[Файл:Progressbar.png]] - [[Progress]] - прогресс прохождения игры (эчивмент)&lt;br /&gt;
* [[Файл:Particle.png]] - [[Flyer]] - флаер (патиклы)&lt;br /&gt;
* [[Файл:Rectangle.png]] - [[Rectangle]] - прямоугольник&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomover]] - объект движения в изометрической карте&lt;br /&gt;
* [[Файл:Group.png]] - [[Group]] - группа&lt;br /&gt;
* [[Файл:Groupset.png‎]] - [[Groupset]] - группа&lt;br /&gt;
* [[Файл:Effect.jpg|20px]] - [[Effect]] - Создание различных эффектов&lt;br /&gt;
* [[Файл:Graphprogress.png]] - [[Graphprogress]] - создание мини-карты для отображения прогресса прохождения игры.&lt;br /&gt;
* [[Файл:Statesmanager_ico.png]] - [[Statesmanager]] - очередь работы с объектами&lt;br /&gt;
* [[Файл:Slider icons.png]] - [[Slider]] - объект реализующий листание списка.&lt;br /&gt;
* [[Файл:Ribbon.png]] - [[Ribbon]] - объект отображения графики по сплайну&lt;br /&gt;
* [[Файл:Kub.png]] - [[Animation]] - объект различных анимаций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Magicparticles]] - объект файлов Magic Particles&lt;br /&gt;
&lt;br /&gt;
=== Game mechanic ===&lt;br /&gt;
&lt;br /&gt;
* [[Файл:Puzzle.png]] - [[Puzzle]] - игра пазл&lt;br /&gt;
* [[Файл:Memory.png]] - [[Memory]] - класс игр с memory-механикой&lt;br /&gt;
* [[Файл:Patchwork.png]] - [[Patchwork]] - класс игр с Patchwork-механикой&lt;br /&gt;
* [[Файл:Match3.png]] - [[Match]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Collaps.png]] - [[Collapse]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:Bejewelled.png]] - [[Bejewelled]] - класс match-подобных игр&lt;br /&gt;
* [[Файл:BubbleShooter.png]] - [[Bubble Shooter]] - класс Bubble игр включая механику Снукер&lt;br /&gt;
* [[Файл:Tapthebubble.png]] - [[TapTheBubble]] - механика игры Tap The Bubble&lt;br /&gt;
* [[Файл:GemSlider.jpg]] - [[Gem Slider]] - механика игры Gem Slider&lt;br /&gt;
* [[Файл:W-57.png]] - [[Words]] - механика игры Words&lt;br /&gt;
* [[Файл:Kub.png]] - [[2048]] - механика игры 2048&lt;br /&gt;
* [[Файл:Kub.png]] - [[Planet]] - игра &amp;quot;Планетки&amp;quot;&lt;br /&gt;
* [[Файл:Kub.png]] - [[Unblock]] - механика игры unblock&lt;br /&gt;
* [[Файл:Matchbattle.png]] - [[Match Battle]] - настройка глобальных параметров для мини-игр&lt;br /&gt;
* [[Файл:Move box.png]] - [[DragBox]] - класс игр с dragbox-механикой&lt;br /&gt;
* [[Файл:Labyrinth.png]] - [[Labyrinth]] - класс игр лабиринт&lt;br /&gt;
* [[Файл:Pipes.png]] - [[Pipes]] - класс игр трубы&lt;br /&gt;
* [[Файл:Search object.png]] - [[HiddenObject]] - поисковый объект в хидден играх&lt;br /&gt;
* [[Файл:Object list.png]] - [[HiddenList]] - список поисковых объектов в хидден играх&lt;br /&gt;
* [[Файл:Hint.png]] - [[HiddenHint]] - подсказка (указатель на спрятанный объект)&lt;br /&gt;
* [[Файл:Kub.png]] - [[HiddenHighLighter]] - позволяет показать не найденные объекты в хиддене.&lt;br /&gt;
* [[Файл:Collection.png]] - [[Collection]] - &amp;quot;коллекция&amp;quot; поисковых объектов для хидден игр&lt;br /&gt;
* [[Файл:Inventory.png]] - [[Inventory]] - &amp;quot;инвентарь&amp;quot; список применяемых объектов для игр&lt;br /&gt;
* [[Файл:Tool.png]] - [[Tool]] - &amp;quot;применение&amp;quot; - объект, который можно применить для игр&lt;br /&gt;
* [[Файл:Kub.png]] - [[Isomap]] - изометрическая карта&lt;br /&gt;
* [[Файл:Slotmachine.png]] - [[Slotmachine]] - объект типа &amp;quot;slot&amp;quot;&lt;br /&gt;
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер&lt;br /&gt;
** [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря/магазина и экономики &lt;br /&gt;
** [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина &lt;br /&gt;
** [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря &lt;br /&gt;
** [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета.&lt;br /&gt;
** [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий &lt;br /&gt;
*** [[Файл:Kub.png]] - [[Etasktemplate]] - шаблон задачи для таблицы темплейтов.&lt;br /&gt;
** [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания&lt;br /&gt;
** [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции&lt;br /&gt;
* [[Файл:Paint.png‎]] - [[Paint]] - объект для рисования &lt;br /&gt;
* [[Файл:Physicsworld.png]] - [[Physicsworld]] - физический мир Box2D&lt;br /&gt;
** [[Файл:Physicsobject.png]] - [[Physicsobject]] - физические объекты&lt;br /&gt;
** [[Файл:Physics links.png]] - [[Physicsjoint]] - физические соединения&lt;br /&gt;
*  [[Файл:Eraser.png]] - [[Eraser]] - стирачка&lt;br /&gt;
* [[Файл:Kub.png]] - [[trivia]] - игровая механика - миллионер (trivia)&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dailybonus]] - объект для управления механизмом ежедневного бонуса за вход в игру.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pet]] - объект питомца.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetCollectionTemplate]] - объект шаблона ячейки с коллекцией.&lt;br /&gt;
* [[Файл:Kub.png]] - [[PetTemplate]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[CakeTower]] - объект шаблона ячейки с животным.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Pentamino]] - механика игры в [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8%D0%BD%D0%BE пентамино]&lt;br /&gt;
* [[Файл:Kub.png]] - [[TapTheNew]]&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressing]] - гардероб.&lt;br /&gt;
* [[Файл:Kub.png]] - [[Dressintamplate]] - объект шаблона гардероба.&lt;br /&gt;
&lt;br /&gt;
=== Global score ===&lt;br /&gt;
* [[Файл:Gamecenter.png]] - [[Gamecenter]] - объект для отправки данных на GameCenter iTunse&lt;br /&gt;
**[[Файл:Kub.png]] - [[Achievementitem]] -  шаблон локального достижения (оффлайн ачивка)&lt;br /&gt;
* [[Файл:Gamecircle.jpg]] - [[Amazon GameCircle]] - объект для отправки данных Amazon GameCircle&lt;br /&gt;
* [[Файл:Google-play-games-android.jpg‎]] - [[Google Play services]] - объект для отправки данных на Google Play services&lt;br /&gt;
* [[Файл:Localtoplist.png]] - [[Localtoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltoplist.png]] - [[Globaltoplist]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
* [[Файл:Globaltopsender.png]] - [[Globaltopsender]] - настройки для отображения результатов прохождения игры&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
* [[Файл:Options.png]] - [[Options]] - общие настройки игры&lt;br /&gt;
* [[Файл:Gamedata.png]] - [[Gamedata]] -&lt;br /&gt;
* [[Файл:Controls.png]] - [[Controls]] - обьект для работы с клавишами клавиатуры или девайса &lt;br /&gt;
* [[Файл:Editicon.png]] - [[Edit]] - ввод текста&lt;br /&gt;
* [[Файл:Store.png]] - [[Store]] - настройки InApp покупок в игре&lt;br /&gt;
** [[Файл:Kub.png]] - [[Wallet]] - объект для начисления игровой валюты при InApp покупках через объект economics&lt;br /&gt;
* [[Файл:Notification.png]] - [[Notification]] - push-уведомления&lt;br /&gt;
* [[Файл:Imagepicker.png]] - [[Imagepiker]] - объект для загрузки фото из галереи&lt;br /&gt;
* [[Файл:Video.png]] - [[Video]] - объект для просмотра видео&lt;br /&gt;
* [[Файл:Webview.png]] - [[Webview]] - объект для просмотра интернет страниц в приложении&lt;br /&gt;
* [[Файл:Flurryobject.png]] - [[Flurry]] - настройки системы статистики для приложений https://dev.flurry.com&lt;br /&gt;
* [[Файл:Moregames.png]] - [[MoreGamesList]] - запрос банеров рекламируемых игр&lt;br /&gt;
* [[Файл:Advertisement.png]] - [[Advertisement]] - банерная система flurry, amazon&lt;br /&gt;
* [[Файл:Splitmanager.png]] - [[Splitmanager or A\B Testing]] - менеджер сплитов&lt;br /&gt;
* [[Файл:Tapjoy.png]] - [[Tapjoy]] - система рекламы игр&lt;br /&gt;
* [[Файл:Playhaven.png|24px]] - [[Playhaven]] - система рекламы игр с внутренними up-sale&lt;br /&gt;
* [[Файл:Mobileapptracker.png|24px]] - [[Mobileapptracking]] -&lt;br /&gt;
* [[Файл:Chartboost-logo-new.jpeg]] - [[Chartboost]] -  Chartboost-logo-new.jpeg&lt;br /&gt;
* [[Файл:Kub.png]] - [[SuperSonic]] -  провайдер рекламы SuperSonic&lt;br /&gt;
* [[Файл:Kub.png]] - [[System]] - объект для доступа к системным настройкам&lt;br /&gt;
* [[Файл:Kub.png]] - [[Salesmanager]] - менеджер акций&lt;br /&gt;
* [[Файл:Kub.png]] - [[Cloud]] - объект для синхронизации в облаке&lt;br /&gt;
* [[Файл:Kub.png]] - [[Game]] - объект для отправки событий&lt;br /&gt;
&lt;br /&gt;
=== Social ===&lt;br /&gt;
* [[Файл:Facebook.png]] - [[Facebook]] - настройки расшаривания Facebook&lt;br /&gt;
** [[Файл:Esocialfrienditem.png]] - [[Esocialitem]] - Шаблон для ячейки списка друзей&lt;br /&gt;
** [[Файл:Kub.png]] - [[Esocialgiftitem]] - Шаблон для ячейки с предметом, который можно подарить другу&lt;br /&gt;
** [[Файл:Esocial.png]] - [[Esocial]] - объект для взаимодействия с Facebook'ом&lt;br /&gt;
* [[Файл:Twitter.png]] - [[Twitter]] - настройки расшаривания Twitter&lt;br /&gt;
* [[Файл:Odnoklassniki.png]] - [[Odnoklassniki]] - настройки для социальной сети Одноклассники&lt;br /&gt;
* [[Файл:Googleplus.png]] - [[GooglePlus]] - настройки для социальной сети GooglePlus&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* [[Файл:Forward.png]] - [[SendMail]] - отправка письма через почтовый клиент&lt;br /&gt;
* [[Файл:footer-icon-rate.png]] - [[Rate]] - вызов окна оценки приложения&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;50px&amp;quot; heights=&amp;quot;50px&amp;quot; &amp;gt;&lt;br /&gt;
Изображение:Who.png&lt;br /&gt;
Изображение:AnimalHideSeek.png&lt;br /&gt;
Изображение:travel.png&lt;br /&gt;
Изображение:Game_Adventure_Train.png&lt;br /&gt;
Изображение:Gmae_Match_MoveTheDolly.png&lt;br /&gt;
Изображение:Game_Patchwork_BigEyes.png&lt;br /&gt;
Изображение:Game_Patchwork_Chameleon.png&lt;br /&gt;
Изображение:Game_Patchwork_Logicly.png‎&lt;br /&gt;
Изображение:Game_Patchwork_Stickers.png‎&lt;br /&gt;
Изображение:Elephant.png&lt;br /&gt;
Изображение:Elephant2.png&lt;br /&gt;
Изображение:Cinderella.png&lt;br /&gt;
Изображение:Pigs.png&lt;br /&gt;
Изображение:Bremenskye.png&lt;br /&gt;
Изображение:Book_SnowWhite.png&lt;br /&gt;
Изображение:Book_PussInBoots.png&lt;br /&gt;
Изображение:Call.png&lt;br /&gt;
Изображение:GreatestArtists.png&lt;br /&gt;
Изображение:Game_Puzzle_Kids.png&lt;br /&gt;
Изображение:Game_Puzzle_Architect.png‎&lt;br /&gt;
Изображение:Game_Puzzle_Science.png&lt;br /&gt;
Изображение:Ico_1_114_Full.png&lt;br /&gt;
Изображение:Game_Adventure_Dreams.png&lt;br /&gt;
Изображение:Abc.png&lt;br /&gt;
Изображение:Ico_114_Full.png&lt;br /&gt;
Изображение:Ico_114_Paints.png&lt;br /&gt;
Изображение:Ico_114_Puzzle.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:main]]&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8343</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8343"/>
		<updated>2016-09-01T11:56:51Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Описание создания бесконечных объектов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано [[#Создание эффекта перспективы|ниже]].&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние ''“end”''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать [[Physicsobject|физические объекты]] или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|500px|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8342</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8342"/>
		<updated>2016-09-01T11:55:29Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Описание создания бесконечных объектов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано [[#Создание эффекта перспективы|ниже]].&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние ''“end”''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать [[Physicsobject|физические объекты]] или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8341</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8341"/>
		<updated>2016-09-01T11:52:52Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Описание создания бесконечных объектов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано [[#Создание эффекта перспективы|ниже]].&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние ''“end”''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8340</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8340"/>
		<updated>2016-09-01T11:50:40Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Описание создания бесконечных объектов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано [[#Создание эффекта перспективы|ниже]].&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8339</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8339"/>
		<updated>2016-09-01T11:38:05Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен ''avoider'' с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8338</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8338"/>
		<updated>2016-09-01T11:37:33Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в ''levels.xml''. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен avoider с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8337</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8337"/>
		<updated>2016-09-01T11:37:08Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный ''id''.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут ''weight'' (вес). Треков внутри уровня может быть любое количество. Значение атрибута ''weight'' определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного ''weight''=2, а у остальных ''weight''=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в levels.xml. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен avoider с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8336</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8336"/>
		<updated>2016-09-01T11:35:12Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней ''levels.xml'', который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный id.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут weight (вес). Треков внутри уровня может быть любое количество. Значение атрибута weight определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного weight=2, а у остальных weight=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в levels.xml. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен avoider с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8335</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8335"/>
		<updated>2016-09-01T11:33:27Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание создания бесконечных объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней levels.xml, который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный id.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут weight (вес). Треков внутри уровня может быть любое количество. Значение атрибута weight определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного weight=2, а у остальных weight=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в levels.xml. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен avoider с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8334</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8334"/>
		<updated>2016-09-01T11:33:03Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Пример реализации: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде [[#Описание бесконечно движущихся объектов|бесконечно движущихся машин состояний]]. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней levels.xml, который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный id.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут weight (вес). Треков внутри уровня может быть любое количество. Значение атрибута weight определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного weight=2, а у остальных weight=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в levels.xml. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен avoider с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8333</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8333"/>
		<updated>2016-09-01T11:29:31Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Добавляемые параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается ''id'' звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде бесконечно движущихся машин состояний. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней levels.xml, который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный id.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут weight (вес). Треков внутри уровня может быть любое количество. Значение атрибута weight определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного weight=2, а у остальных weight=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в levels.xml. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен avoider с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8332</id>
		<title>Avoider</title>
		<link rel="alternate" type="text/html" href="https://wiki.appsalutecreator.com/index.php?title=Avoider&amp;diff=8332"/>
		<updated>2016-09-01T11:26:43Z</updated>

		<summary type="html">&lt;p&gt;Denisov: /* Добавляемые параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Avoider''' - встроенный объект редактора, который реализует механику бесконечного движения персонажа по нескольким полосам дороги, избегающего препятствий на своём пути.&lt;br /&gt;
&lt;br /&gt;
== Основные параметры ==&lt;br /&gt;
'''Размер''' - обязательный параметр высоты и ширины объекта&lt;br /&gt;
*'''w''' ''(w)'' - ширина в ''px''&lt;br /&gt;
*'''h''' ''(h)'' - высота в ''px''&lt;br /&gt;
'''Длина свайпа''' ''(swipe_length)'' - на сколько пикселов следует перетянуть указатель мыши (или палец на сенсорном экране), чтобы персонаж переместился на соседнюю полосу. Свайп срабатывает в любом месте экрана.&lt;br /&gt;
&lt;br /&gt;
'''Персонаж''' ''(personage)'' - машина состояний, представляющая персонаж. Выбирается из списка объектов.&lt;br /&gt;
&lt;br /&gt;
'''Расстояние между объектами на полосе''' ''(track_rows_distance)'' - расстояние в пикселах между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Базовая скорость''' ''(base_speed)'' - скорость в ''px/sec'' движения всех объектов относительно персонажа.&lt;br /&gt;
&lt;br /&gt;
'''Скорость перемещения между полосами''' ''(personage_speed)'' - скорость перемещения персонажа в ''px/sec'' между соседними полосами.&lt;br /&gt;
&lt;br /&gt;
'''Флаер столкновения с препятствием''' ''(explosion_object)'' - [[Flyer|флаер]], запускаемый при столкновении с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния запуска взрыва''' ''(explosion_start_state)'' - состояние, передаваемое флаеру при столкновении с препятствием, ''beg'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Имя состояния остановки взрыва''' ''(explosion_stop_state)'' - состояние, передаваемое флаеру для его остановки, ''end'' по умолчанию.&lt;br /&gt;
&lt;br /&gt;
'''Продолжительность взрыва''' ''(explosion_time)'' - продолжительность взрыва в ''ms''.&lt;br /&gt;
&lt;br /&gt;
'''Время пропадания объекта по альфе''' ''(fading_time)'' - время пропадания объекта с полосы по альфе от 1 до 0, в ''ms''.&lt;br /&gt;
&lt;br /&gt;
== Добавляемые параметры ==&lt;br /&gt;
'''Полоса''' ''(stripe)'' - полоса, на которой может располагаться персонаж. Вдоль полосы также движутся объекты на встречу персонажу. В ней необходимо указать координаты самой полосы и персонажа на ней, отсчет координат от левого верхнего угла, единицы измерения - проценты.&lt;br /&gt;
*'''координата Х начала полосы''' ''(start_x)'' - координата Х начала полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y начала полосы''' ''(start_y)'' - координата Y начала полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''координата Х конца полосы''' ''(end_x)'' - координата Х конца полосы (задается в % от левой границы эвойдера)&lt;br /&gt;
*'''координата Y конца полосы''' ''(end_y)'' - координата Y конца полосы (задается в % от верхней границы эвойдера)&lt;br /&gt;
*'''графика персонажа''' ''(personage_image)'' - графический ресурс персонажа, перетаскивается мышкой из базы ресурсов. Не требуется заполнять, если указан персонаж в основных параметрах. Графику персонажа для разных полос можно указывать разной.&lt;br /&gt;
*'''положение персонажа на полосе''' ''(personage_position)'' - задается в % длины полосы от верхней ее точки&lt;br /&gt;
&lt;br /&gt;
'''Объект:препятствие''' ''(track_object_obstacle)'' - препятствие, &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “*” или “obstacle_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: монета''' ''(track_object_coin)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “coin_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
&lt;br /&gt;
'''Объект: изменение скорости''' ''(track_object_change_speed)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “speed_up_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''На сколько процентов изменить скорость''' ''(factor)'' - задает, на сколько процентов изменяется скорость относительно начальной. В качестве начальной скорости используется базовая скорость текущего уровня, если задано абсолютное изменение скорости, либо текущая скорость, если задано относительно изменение скорости.&lt;br /&gt;
*'''Тип изменения''' ''(absolute)'' - задает, будет ли применено абсолютное или относительное изменение скорости.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, по истечении которого будет возвращена предыдущая скорость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Объект: неуязвимость''' ''(track_object_invulnerability)'' &lt;br /&gt;
*'''Идентификатор''' ''(obj_id)'' - уникальная строка, которой будет задаваться данный объект в файле уровней (например, “invulnerability_1”).&lt;br /&gt;
*'''Графика''' ''(image)'' - ссылка на изображение из ресурсов для данного объекта.&lt;br /&gt;
*'''Время, на которое применяется изменение''' ''(apply_time)'' - время в миллисекундах, на которое объект приобретает неуязвимость. Если выставлено значение “-1”, то изменение применяется навсегда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель расстояния''' ''(progress_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)''  - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(row_passed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж проходит очередную строку объектов.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель времени''' ''(time_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(seconds_elapsed_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда проходит каждая следующая секунда.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель препятствий''' ''(obstacle_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_obstacle_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель изменения скорости''' ''(change_speed_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(change_speed_state_name)'' -- имя состояния объекта слушателя, которое вызывается, когда любым способом изменяется скорость движения (то ли за счет перехода на следующий уровень, то ли за счет пойманного бонуса скорости).&lt;br /&gt;
*'''Параметр''' ''(new_speed_parameter_name)'' - имя параметра объекта слушателя, в который записывается новое значение скорости.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель монет''' ''(coin_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_coin_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж подбирает монету.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель неуязвимости''' ''(invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(met_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж ловит неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель потери неуязвимости''' ''(lost_invulnerability_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(lost_invulnerability_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
&lt;br /&gt;
'''Слушатель конца игры''' ''(game_over_listeners)''&lt;br /&gt;
*'''Объект слушателя''' ''(obj)'' - ссылка на объект слушателя.&lt;br /&gt;
*'''Состояние''' ''(game_over_state_name)'' - имя состояния объекта слушателя, которое вызывается, когда персонаж сталкивается с препятствием, и игра заканчивается.&lt;br /&gt;
&lt;br /&gt;
'''Звуки''' ''(sounds)'' - указывается id звукового файла в базе ресурсов&lt;br /&gt;
*'''Столкновение с препятствием''' ''(obstacle_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием.&lt;br /&gt;
*'''Смена полосы''' ''(change_stripe_sound)'' - звук, который проигрывается, когда персонаж переезжает с одной полосы на другую.&lt;br /&gt;
*'''Собирание монеты''' ''(coin_sound)'' - звук, который проигрывается, когда персонаж подбирает монету.&lt;br /&gt;
*'''Изменение скорости''' ''(change_speed_sound)'' - звук, который проигрывается, когда изменяется скорость.&lt;br /&gt;
*'''Неуязвимость''' ''(invulnerability_sound)'' - звук, который проигрывается, когда персонаж приобретает неуязвимость.&lt;br /&gt;
*'''Потеря неуязвимости''' ''(lost_invulnerability_sound)'' - звук, который проигрывается, когда персонаж теряет неуязвимость.&lt;br /&gt;
*'''Конец игры''' ''(gameover_sound)'' - звук, который проигрывается, когда персонаж сталкивается с препятствием, и игра прекращается.&lt;br /&gt;
*'''Изменение уровня''' ''(change_level_sound)'' - звук, который проигрывается, когда игра переходит на следующий уровень.&lt;br /&gt;
&lt;br /&gt;
==Пример реализации:==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic1.png|thumb|right|400px|Пример реализации эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Графика дороги и прилегающих к ней объектов задается отдельно в виде бесконечно движущихся машин состояний. Для простоты управления достаточно создать два объекта, каждый из которых заполнить фрагментами дорожного полотна, разделительными полосами, бордюрами, травой и деревьями. Два эти объекта поочередно будут сменять друг друга, создавая эффект непрерывного движения.&lt;br /&gt;
&lt;br /&gt;
Базовая скорость движения объектов эвойдера и объектов фона должна совпадать. Также стоит позаботится об изменении скорости объектов фона, когда персонаж наезжает на объект:ускорение и возврат ее в начальное значение.&lt;br /&gt;
&lt;br /&gt;
Расположение препятствий,монет, объектов для ускорения и неуязвимости задается в файле уровней levels.xml, который необходимо разместить в папке, где находится редактор.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic2.png|thumb|left|300|Файл уровней]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Avoider_article_pic3.png|thumb|right|300|Идентификаторы в настройках эвойдера]]&lt;br /&gt;
&lt;br /&gt;
Пример заполненного файла уровней изображен на скрине. Корневым тегом является &amp;lt;levels&amp;gt;&amp;lt;/levels&amp;gt; внутри которого может находится несколько пар тегов для каждого уровня &amp;lt;level&amp;gt;&amp;lt;/level&amp;gt;, имеющих уникальный id.&lt;br /&gt;
&lt;br /&gt;
Чтобы создать разнообразие появления объектов, они группируются внутри тегов &amp;lt;track&amp;gt;&amp;lt;/track&amp;gt;, у которого есть атрибут weight (вес). Треков внутри уровня может быть любое количество. Значение атрибута weight определяет вероятность появления определенного трека. То есть, если значения веса у всех треков одинаковы, то и вероятность равна, а если есть три трека, у одного weight=2, а у остальных weight=1, то вероятность появления треков 50%, 25% и 25% соответственно.&lt;br /&gt;
&lt;br /&gt;
Объекты эвойдера обладают полем “идентификатор”, где необходимо указать уникальный символ или слово. Далее именно этот идентификатор вносится в levels.xml. Вертикальные полосы на дороге отделяются просто запятыми, а горизонтальные - переносом строки. На рисунке изображен avoider с 3-мя полосами движения. Если какая-то часть полосы пустая, то в этом месте указывается “0” (ноль).&lt;br /&gt;
&lt;br /&gt;
== Описание создания бесконечных объектов ==&lt;br /&gt;
&lt;br /&gt;
В играх различного типа часто востребованы объекты, бесконечно появляющиеся на экране и совершающие движение за его пределы. Среди них:&lt;br /&gt;
*облака,&lt;br /&gt;
*птицы,&lt;br /&gt;
*автомобили, корабли, самолёты,&lt;br /&gt;
*бесконечные препятствия.&lt;br /&gt;
&lt;br /&gt;
Все объекты можно разделить на две группы: '''фоновые''' и '''интерактивные'''. С фоновыми взаимодействие не требуется, они лишь создают видимость, что изображение на экране не статично. Также их можно использовать для эффекта перспективы, о чем будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
Фоновые объекты обычно создают в виде анимации или видеороликов. Вариант позволяет ограничиться лишь одним объектом, однако отбирает довольно много памяти. Поэтому такой метод наименее эффективный. Тем более, он обладает минимальной гибкостью.&lt;br /&gt;
&lt;br /&gt;
Еще один способ - воспользоваться [[Flyer|флаером]] (патиклом). Этот способ имеет свои особенности. Допустим, что необходимо разместить пару облаков на сцене, часть которых там будет видно пользователю изначально, а часть появится позже. Очевидно, что облака не могут появляться не понятно от куда, они должны или там быть сразу или влетать из-за границы сцены.&lt;br /&gt;
&lt;br /&gt;
Флаер, создающий облака не сразу, должен находится за границей сцены. Но тогда он не сможет создать облака при входе в игру, он лишь сможет создать облака, которые через какое-то время окажутся в видимой части. Поэтому для первоначально видимых облаков нужен дополнительный флаер (или несколько). Для него потребуется дополнительная машинка, которая через время после запуска игры, когда облако покинет пределы сцены, один раз сместит флаер за сцену. Все новые облака будут создаваться за пределами сцены. Либо этому флаеру будет присвоено состояние “end”.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic1.png|thumb|right|300|Настройки флаера]]&lt;br /&gt;
&lt;br /&gt;
Для флаера потребуются особые настройки, один из примеров изображен на рисунке. Здесь показаны настройки генератора облаков, движущихся вправо, сам флаер находит слева за пределами видимого экрана:&lt;br /&gt;
*указана вертикальная область рождения. Облака генерируются на разной высоте.&lt;br /&gt;
*указан одинаковый угол “от” и “до”, его значение определяет направление движения облаков.&lt;br /&gt;
*общее количество и каскады в значении “-1” означают бесконечность циклов создания.&lt;br /&gt;
*интенсивность определяет разницу появления облаков по времени, исключает случай их одновременной генерации. Т.е. здесь новое облако появится только через 6 секунд после предыдущего. Важно, что самое первое облако появится через это же время после начала игры. Время жизни и скорость важна, так как определяют успеет ли облако покинуть видимый экран до того, как перестанет существовать&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Интерактивные объекты предполагают взаимодействие с ними. Поэтому для их создания, в зависимости от потребности, можно использовать физические объекты или [[Machine|машины состояний]]. Рассмотрим их создание на примере машинок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На скрине показана минимальная настройка бесконечного объекта, реализованного на машине состояний. И для фоновых и для интерактивных объектов эта схема общая&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity_article_pic2.png|thumb|left|300|Настройки машины состояний бесконечного объекта]]&lt;br /&gt;
&lt;br /&gt;
Состояние ''init'' устанавливается опционально. Оно требуется, если движение будет начато не сразу, там можно установить начальное положение объекта и другие его параметры. Если решено ''ini''t не использовать, то первым состоянием ставим ''move''.&lt;br /&gt;
&lt;br /&gt;
После перехода в ''move'' объект зацикливает свои состояния между ''move'' и ''init_1''. В команде ''move'' следует указывать значение скорости (''v''), а не времени (''t'') за которое объект должен переместиться. Это необходимо для равномерности движения. Поскольку положение в ''init'' и ''init_1'' обычно различается, то при установке параметра ''t'' в команде move объект будет за одинаковое время преодолевать различное расстояние, а значит и с разной скоростью.&lt;br /&gt;
&lt;br /&gt;
Также надо указать конечную координату ''tx'', а не просто смещение ''dx'' все для той же равномерности движения.&lt;br /&gt;
&lt;br /&gt;
Внутри ''move'' устанавливаем переход в ''init_1'' по достижению конечного положения ''tx''. В ''init_1'' объект инициализируется в точке за пределами видимого пользователю экрана. Где именно будет эта точка зависит от размера объекта и сцены. И сразу переходим в ''move'' для запуска движения.&lt;br /&gt;
&lt;br /&gt;
То есть общая схема действий такая:&lt;br /&gt;
*1) объект перемещается, покидая экран&lt;br /&gt;
*2) покинув пределы экрана, помещаем объект с другой его стороны&lt;br /&gt;
*3) возврат в пункт 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создав основу для бесконечного движения, можно добавить остальные команды и состояния. Например, у нас есть игровой объект, который пытается избегать препятствия на своем пути. Эти препятствия создаются, как бесконечные объекты. Столкновения отлавливаются командой ''apply'', которую можно поместить либо внутрь игрового объекта, либо внутрь бесконечных объектов. Тогда в каждом объекте необходимо будет создать состояние ''apply'', куда поместить необходимые команды.&lt;br /&gt;
&lt;br /&gt;
Почему же нельзя просто создать один объект и клонировать его и использовать схему бесконечных объектов, применяемую в большинстве игровых движков? На данный момент уничтожение клонов не предусмотрено, поэтому они накапливаются в памяти и через определенное время могут вызвать падение игры.&lt;br /&gt;
&lt;br /&gt;
== Создание эффекта перспективы ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Infinity article pic3.png|thumb|right|300|создание эффекта перспектывы]]&lt;br /&gt;
&lt;br /&gt;
Довольно простой эффект, основанный на том, что одни объекты фона движутся медленно, а объекты, которые накладываются сверху - быстрее.&lt;br /&gt;
&lt;br /&gt;
Например, на фоне расположено изображение города из зданий разной высоты, а мы совершаем движение слева-направо или наоборот. Тогда здания, которые находятся на переднем плане, стоит двигать быстро, а здания заднего плана медленней.&lt;br /&gt;
&lt;br /&gt;
Дополнительно усилить эффект перспективы можно за счет правильно подобранной графики: условно ближние объекты рисуются детально, а объекты заднего плана однотонными или с минимумом деталей. Пример изображен на рисунке, где есть тусклые кусты и пальмы, почти сливающиеся с фоном. Их скорость минимальна. Пальмы переднего плана более выражены, их скорость больше. При каждом прыжке персонажа пальмы переднего плана смещаются со скоростью 70px/sec, а на заднем плане - лишь 30px/sec.&lt;/div&gt;</summary>
		<author><name>Denisov</name></author>
		
	</entry>
</feed>