https://wiki.appsalutecreator.com/api.php?action=feedcontributions&user=Aslav&feedformat=atomwiki.appsalutecreator.com - Вклад участника [ru]2024-03-29T12:16:27ZВклад участникаMediaWiki 1.31.15https://wiki.appsalutecreator.com/index.php?title=3D-object&diff=89323D-object2017-07-07T14:19:14Z<p>Aslav: Category:Main objects</p>
<hr />
<div>{{TOC right}}<br />
<br />
'''3D-object''' - встроенный объект редактора, который позволяет использовать трёхмерную модель объекта.<br />
<br />
== Основные параметры ==<br />
*'''имя''' (nm) - Имя объекта в дереве проекта. Может быть произвольным<br />
*'''синхронизация''' (sync) - нет - нет синхронизации; да - есть синхронизация<br />
*'''сохранение параметров''' (sv) - нет=0,только объект=1,объект с подобъектами=2,только подобъекты=3<br />
'''положение''' - положение<br />
<br />
*'''x''' (x) - Горизонтальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены.<br />
*'''y''' (y) - Вертикальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены.<br />
<br />
'''размер''' - размер<br />
*'''w''' (w) - Ширина объекта в пикселях<br />
*'''h''' (h) - Высота объекта в пикселях<br />
=== модификаторы ===<br />
*'''alpha''' (al) - Прозрачность: от 0 (прозрачен) до 1 (не прозрачен)<br />
*'''blending''' (bl) - "Alpha смешивание" regexp="parent=0, blend=1, half=2, add=3, sub=4, none=5<br />
*'''angle x''' (angX) - Угол поворота в градусах оси x<br />
*'''angle y''' (angY) - Угол поворота в градусах оси y<br />
*'''angle z''' (angZ) - Угол поворота в градусах оси z<br />
*'''scale x''' (sx) - Масштаб по оси x (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.)<br />
*'''scale y''' (sy) - Масштаб по оси y (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.)<br />
*'''scale z''' (sz) - Масштаб по оси z (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.)<br />
----<br />
*'''z''' (z) - Параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим<br />
*'''память''' (memo) - Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана)<br />
*'''res''' (mdl) - Ресурс 3D модели для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования)<br />
*'''курсор''' (curs) - Графический ресурс курсора текущего и всех дочерних объектов<br />
*'''прокликиваемая''' (passClk) - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше<br />
*'''сетка''' (grid) - Если есть, то отображается сетка куба с началом коородинат в точке пивота, и используется для расчета нового значения пивота<br />
=== оси вращения ===<br />
*'''ось x''' (axX) - 0 - нет вращения вокруг оси; 1 - есть вращение<br />
*'''ось y''' (ayY) - 0 - нет вращения вокруг оси; 1 - есть вращение<br />
*'''ось z''' (azZ) - 0 - нет вращения вокруг оси; 1 - есть вращение<br />
<br />
'''позиционирование''' - позиционирование<br />
*'''горизонтальное''' (alHor) - 0 - нет выравнивания; 1 - прижать к левому краю; 2 - центр; 3 - к правому<br />
*'''вертикальное''' (alVer) - 0 - нет выравнивания; 1 - прижать к верхнему краю; 2 - центр; 3 - к нижнему<br />
<br />
'''группа''' (gr) - Группа, в которую входит текущий объект<br />
<br />
== Описание и особенности ==<br />
<br />
Оси объекта 3D-object расположены так: ось <span style="color:#AA0000">X</span> - слева на право; ось <span style="color:#00AA00">Y</span> - от экрана к Вам; ось <span style="color:#0000AA">Z</span> - сверху вниз.<br />
<br />
Текстура 3D модели должна быть вписана в куб размером 100х100х100 и '''доведена до степени 2!'''<br />
<br />
Чтобы 3D объект отображался во вьювере, после добавление 3D модели в базу ресурсов нужно нажать "update Fids for 3D Models".<br />
<br />
На данный момент 3D объекты можно использовать для объекта [[isomover]]<br />
<br />
[[Category:Main objects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Taskorganizer&diff=8931Taskorganizer2017-07-07T12:51:02Z<p>Aslav: /* Свойства */</p>
<hr />
<div>{{TOC right}}<br />
[[Object|Объект]] Taskorganizer - Менеджер задач и квестов<br />
<br />
=Свойства=<br />
[[Файл:Task.jpg|250px|thumb|right]]<br />
[[Файл:Task_1.jpg|250px|thumb|right]]<br />
=== Общие параметры ===<br />
*'''economics''' - Объект типа экономикс.<br />
*'''предметы''' - Объект типа eitems.<br />
*'''таблица''' - Таблица куда будут помещены иконки заданий. При тапе на таблицу объекту Taskorganizer вызывается состояние show. Иконки подтягиваются из текстовой базы (icon1).<br />
*'''добавлять иконки''' - 1 - добавлять в таблицу иконки, 0 - тексты из текстового id (поле word).<br />
*'''шаблон предмета''' - Объект типа etaskitem будет использоваться при показе превью задания.<br />
*'''фильтрация''' - Категория, которые должны будут отобразиться в таблице логов при вызове состояния logbook. Пустая строка - все.<br />
*'''таблица логов''' - Таблица куда будут помещены записи логбука.<br />
*'''новая запись''' - Объект, которому будет вызвано состояние show при добавлении новой записи в логбук.<br />
*'''новое задание''' - Графический ресурс, который будет отмечать новые задания. Смещение должно достигаться пивотом.<br />
*'''прочитанное задание''' - Графический ресурс, который будет отмечать прочитанные задания. Смещение должно достигаться пивотом (возможно указать анимацию, скорость смены кадров указываем в ресурсной базе).<br />
*'''выполненное задание''' - Графический ресурс, который будет отмечать выполненные задания. Смещение должно достигаться пивотом (возможно указать анимацию, скорость смены кадров указываем в ресурсной базе)<br />
*'''уведомление''' - Текстовый айди заголовка связанных с задачами уведомлений (Должно быть заполнено поле sense 4 - т.к. рандомно его будет постить).<br />
*'''вероятность уведомления''' - Подменная вероятность нахождения предмета нужного для задания по уведомлению с которого мы пришли. 0 - использовать значение по умолчанию.<br />
*'''выполнять непрочитанные''' - 1 - выполнять непрочитанные таски, 0 - нет.<br />
*'''хронологический порядок''' - 1 - записывать задачи в хронологическом порядке, 0 - нет.<br />
*'''картинки в логбук''' - Расположение картинки до или после текста.<br />
*'''сдвиг уровней''' - число на которое сдвинутся требования к уровню игрока в taskorganizer_setup для каждой задачи;<br />
*'''refresh при показе окна''' - 0 - нет, 1 - да. Ставим = 0 ( "нет" ), если хотим чтобы при тапе по таблице отложить сортировку и обновление статуса таска ( в определённый момент ( к примеру, когда открылось окно таска), передаём состояние '''refresh''' и таблица обновится).<br />
*'''использовать накопление ошибки''' - 0 - нет, 1 - да. Ставим = 1 ( "да" ), если хотим чтобы нахождение предметов в хиддене, по таску не превышало n-раз ( к примеру p= 0.5 (1/0.5=2 , т.е. предмет должны найти не более чем за две игры в хидн), если количество сыгранных игр >= максимальному по вероятности, то предмет попадает в таблицу ( мы его нашли)). Если стоит - 0 ( "нет" ), то вне зависимости от количества заходов, будет браться вероятность.<br />
*'''только одна подкрутка за раз''' - 0 - нет, 1 - да. Ставим = 1 ( "да" ), если хотим чтобы за один проход хиддена выполнялся один таск.<br />
*'''уменьшать предметы при сдаче коллекции''' - 0 - нет, 1 - да. Ставим = 1 ( "да" ), то при сдаче коллекции будет выполнен декремент количества предметов необходимых чтобы задание выполнилось ( параметр таски s0 в опциях).<br />
<br />
<br />
<pre><br />
Для огранизации логбука необходимо текст поместить в sentenсe 1. Картинка, что будет отображаться с этим текстом, должна быть icon 2. Также есть возможность использовать эту картинку в качестве фона. Тогда текст, который будет отображаться поверх этой картинки, нужно разместить в sentenсe 2.<br />
</pre><br />
<br />
=== Группа угадайка ===<br />
<br />
Угадайка - задание, в котором игроку предлагается вспомнить или угадать, кто из персонажей просил тот или иной коллекционный предмет. Владелец предмета указывается в настройке подзадачи.<br />
<br />
*'''показывать через''' - Через какое количество обычных задач показывать угадайку.<br />
*'''с уровня''' - Угадайка будет генерироваться только начиная с данного уровня.<br />
*'''машина''' - Объект, которому при активации будет вызвано состояние show. Она же после угадайки будет переведена в состояние win или fail.<br />
*'''иконка''' - Объект, в который сложим иконку предмета.<br />
*'''иконка для таблицы''' - Иконка соответствующая угадайке в таблице задач.<br />
*'''ресурс 1''' - Деньги даваемые за выполнение задания.<br />
*'''ресурс 2''' - Кристаллы даваемые за выполнение задания.<br />
*'''опыт''' - Опыт даваемый за выполнение задания.<br />
*'''награда ресурс 1''' - Счетчик, которому будет присвоено количество призового ресурса 1.<br />
*'''награда ресурс 2''' - Счетчик, которому будет присвоено количество призового ресурса 2.<br />
*'''награда опыт''' - Счетчик, которому будет присвоено количество призового опыта.<br />
=== Группа рулетка ===<br />
<br />
На самом деле название "рулетка" весьма условное. В этом разделе можно поместить любое периодически повторяющееся задание.<br />
<br />
*'''показывать через''' - Через какое количество обычных задач показывать рулетку.<br />
*'''с уровня''' - Рулетка будет генерироваться только начиная с данного уровня.<br />
*'''машина''' - Объект, которому при активации будет вызвано состояние show.<br />
*'''иконка для таблицы''' - Иконка соответствующая рулетке в таблице задач.<br />
=== Группа генерируемые ===<br />
<br />
В этой группе находятся периодически генерируемые задания на прохождение локаций.<br />
<br />
*'''активных задач''' - Эти задачи будут генерироваться, когда активных задач столько или меньше.<br />
*'''с уровня''' - Эти задачи будут генерироваться только начиная с данного уровня.<br />
*'''максимально''' - Будет сгенерированно случайное количество задач от 1 до n.<br />
*'''машина''' - Объект, которому при активации будет вызвано состояние show. Она же после угадайки будет переведена в состояние win или fail.<br />
*'''название''' - Текстовый объект, в который будет сложено название локации.<br />
*'''превью''' - Объект, в который сложим превью локации для генерируемой задачи.<br />
*'''иконка для таблицы''' - Иконка соответствующая генерируемому таску в таблице задач.<br />
*'''ресурс 1''' - Деньги даваемые за выполнение задания.<br />
*'''ресурс 2''' - Кристаллы даваемые за выполнение задания.<br />
*'''опыт''' - Опыт даваемый за выполнение задания.<br />
*'''награда ресурс 1''' - Счетчик, которому будет присвоено количество призового ресурса 1.<br />
*'''награда ресурс 2''' - Счетчик, которому будет присвоено количество призового ресурса 2.<br />
*'''награда опыт''' - Счетчик, которому будет присвоено количество призового опыта.<br />
<br />
<pre><br />
Если перед генерацией случайного таска на исследование локации указать параметру gen_loc значение от 0 до n, то ближайшая генерируемая задача будет для конкретной локации под указанным номером. После генерации параметр gen_loc становится -1.<br />
</pre><br />
<br />
<pre><br />
Если перед генерацией случайного таска от персонажа указать параметру gen_face значение от 0 до n, то ближайшая генерируемая задача будет от персонажа под указанным номером. После генерации параметр gen_face становится -1.<br />
Если указать gen_face="-2", то таскорганайзер попытается с генерировать задачу с персонажем так, чтобы номер локации совпадал с персонажем, при условии что номер локации будет меньше максимальному числу персонажей ( char_num).<br />
</pre><br />
<br />
=== Группа угадаечные задачи ===<br />
<br />
В этой группе указываем диапазоны для генерации тасков-викторин и способ генерации.<br />
<br />
*'''стандартная генерация''':<br />
::'''нет''' - особая генерация задач, при которой с начало генерируем задачи из _очереди 1_, потом задачи из _очереди 2_ ( Если в первой очереди мы не можем сгенерировать задачу, пытаемся сгенерировать из второй очереди). Если мы не сгенерировали задачу из обоих очередей, то мы обнуляем все таски из обоих очередей ( и сразу генерим из _очереди 1_ задачу);<br />
::'''да''' - стандартная генерация одной угадайки ( начинаем сверху вниз генерить;<br />
*'''очередь 1''' - Основная очередь, пытаемся из неё сгенерировать задачу, при получении Taskorganizer сост. _generate_guess_, если в предыдущем поле стоит '''нет'''. Каждая задача из этой очереди имеет условия для появления ( прохождение сюжетного таска к примеру);<br />
*'''очередь 2''' - Очередь затычка, задачи из этой очереди без условий. Предназначена когда в первой очереди нету доступных тасков для генерации;<br />
<br />
<pre><br />
У таскорганайзера есть поле disabled, если при каждом запуске приложения после конца туториала писать туда 1 - это приведет к удалению старого сейва и несозданию нового. Несколько килобайт выгоды в опциях + использовать только для туториального таскорганайзера, когда он отработает.<br />
</pre><br />
<br />
=Taskorganizer setup=<br />
[[Файл:Task_2.jpg|600px|thumb|right]]<br />
<br />
*'''id''' - Идентификатор задания. Используется в других заданиях. По общей концепции - строковый айди. Перетаскивается из текстовой базы.<br />
'''Для каждого задания(записи в logbook) должен быть свой уникальный id.'''<br />
*'''хинт''' - Список строк-подсказок для задачи. Перетаскиваются из текстовой базы. Таким образом, добавив несколько записей из базы, увидим выпадающий список.<br />
*'''название (объект)''' - Текстовый объект, в который мы сложим название задания. Описание подтягивается из текстовой базы из первого столбика (word) текстового id задания.<br />
*'''машина''' - Объект, которому при активации задания будет вызвано состояние show, а при повторном открытии задания show_old.<br />
*'''портрет''' - Объект, которому при активации задания будет устанорвлен графический ресурс рожи.<br />
*'''таблица''' - Таблица куда будут помещены темплейты предметов данного задания.<br />
*'''описание (объект)''' - Текстовый объект, в который мы сложим описание задания. Описание подтягивается из текстовой базы из второго столбика (sentence1) текстового id задания.<br />
*'''награда (ресурс 1)''' - Счетчик отображающий награду в ресурсе 1 за выполнение задания.<br />
*'''награда (ресурс 2)''' - Счетчик отображающий награду в ресурсе 2 за выполнение задания.<br />
*'''награда (опыт)''' - Счетчик отображающий награду в опыте за выполнение задания.<br />
*'''таблица хинта''' - Таблица, в которую будем складывать хинты.<br />
<br />
'''Необходимое для логбука'''<br />
<br />
*'''для журнала''' - 0 - задача предназначена для списка задач, 1 - задача предназначена для журнала.<br />
*'''категория''' - Категория к которой относится задача/запись. Пока используется только задачами для логбука.<br />
<br />
'''Критерии появления'''<br />
<br />
*'''уровень''' - Минимальный уровень, при котором может появиться задание.<br />
*'''аномалия''' - В какой-либо локации присутствует аномалия данного типа. -1 - не учитывать условие.<br />
*'''локация''' - Локация для которой будем проверять мастерство. -1 - не учитывать условие.<br />
*'''мастерство''' - Уровень мастерства, который должен быть достигнут в локиции. -1 - не учитывать условие.<br />
*'''завершены до''' - Задания, которые должны быть завершены до появления этого.<br />
*'''получены до''' - Задания, которые должны быть получены до появления этого.<br />
*'''не завершены до''' - Задания, которые должны быть НЕ завершены до появления этого.<br />
*'''объект до''' - Объект, который должен находиться в состоянии_до для появления задания.<br />
*'''состояние до''' - Состояние объекта_до, в котором вызывается генерация задания.<br />
*'''коллекционные''' - Коллекционные предметы, которые должны быть найдены для появления задания.<br />
*'''вероятность нужного''' - Когда мы будем проходить локации, в которых есть предметы необходимые для задания - мы будем подменять вероятность из локации вот этой вероятностью. 0 - использовать дефолтную.<br />
<br />
'''Критерии завершения'''<br />
<br />
*'''с аномалией''' - Задача выполняется при нахождение локации с аномалией данного типа. Не путать с аномалией необходимой для возникновения задания. -1 - не учитывать аномалию. <br />
*'''задачи''' - Задания, выполнение которых требуется для выполнения данной.<br />
*'''предметы''' - Задание завершается, когда получены следующие предметы (коллекционные и инвентарные единым списком).<br />
*'''объект''' - Объект, который должен находиться в определенном состоянии,для завершения задания.<br />
*'''состояние''' - Состояние объекта, в котором вызывается проверка задания.<br />
<br />
'''Награда'''<br />
<br />
*'''ресурс 1''' - Деньги даваемые за выполнение задания.<br />
*'''ресурс 2''' - Кристаллы даваемые за выполнение задания.<br />
*'''опыт''' - Опыт даваемый за выполнение задания.<br />
*'''перевести объект''' - При выполнении задания этот объект будет переведен в новое состояние.<br />
*'''в состояние''' - Состояние для объекта из предыдущего поля.<br />
<br />
==Изменить состояние объекта - новое задание==<br />
<br />
Позволяет изменять состояние объекту каждый раз при появлении нового задания, находится в taskorganizer setup.<br />
<br />
=Состояния=<br />
<br />
*'''show''' - При вызове этого состояния из таблицы с иконками заданий открывается соответствующая машина задания, прописанная в группе '''задание'''.<br />
*'''check''' - При вызове проверяется выполнение текущих заданий(заданий добавленных в таблицу). Для того чтобы таскорганайзер добавил таски в таблицу после загрузки приложения ему нужно передать refresh.<br />
*'''generate''' - При вызове подбирается подходящее задание в зависимости от прогресса игрока.<br />
*'''generate_plot''' - При вызове генерится задача с персонажем ( поле генерируемые с персонажами), если перед этим передать в поле gen_face номер персонажа, то сгенерируем с указанным персонажем, после параметр обнулится ( значение -1 ). Перед вызовом данного состояния, '''обязательнo''' в поле _param_ вбить "1".<br />
*'''log_check''' - При вызове состояния проверяется доступны ли новые записи в логбук.<br />
*'''log_show''' - Заполняет таблицу логбука записями с текущим фильтром.<br />
*'''refresh''' - Удаляет иконку выполненного задания из таблицы. Лучше всего вызывать после Check.<br />
*'''cancel''' - Удаляет задание без награды, которое указано как ID в параметре param таскорганайзера, т.е. объекту Taskorganizer в param указываем ID таска (например 1933 - берется из options.xml или текстовой базы), а потом вызываем состояние cancel.<br />
*'''add_hint''' - Добавляет в таблицу хинтов следующий текстовый ID из поля хинты текущего таска. Если все хинты показаны, то в опции записывается параметр haveHints=0.<br />
*'''task_prev''' - Используется, если открыта машина-шаблон текущего задания. В этом состоянии показывается предыдущее по списку таблицы задание.<br />
*'''task_next''' - Показывает следующее по списку таблицы задание.<br />
<pre><br />
Состояния task_prev и task_next работают циклически, после первой задачи показывают последнюю и наоборот.<br />
</pre><br />
*'''show_id''' - Показать окно задачи, взяв ее id из параметра.<br />
*'''show_last_plot''' - Открыть последнюю сгенерированную сюжетную задачу.<br />
*'''guess''' - Ответить на текущую угадайку, взяв ответ из параметра (param). Taskorganizer также хранит правильный ответ на текущую угадайку в параметре ''guess_answer'', его можно использовать, если нужно оставить игроку меньше вариантов для угадывания.<br />
*'''add_hint_last''' - Добавить подсказку последней добавленной задаче.<br />
*'''add_hint_top''' - Добавить подсказку верхней задаче в таблице.<br />
*'''guess_who_reward''' - начислить награду за последнюю угадайку.<br />
*'''roulette_complete''' -состояние, вызываемое при выполнении текущей задачи "рулетка".<br />
*'''cheat_complete''' - если его вызвать, то при следующем check выполнится задача, для которой последней показывали превью.<br />
*'''skip''' - При вызове этого состояния выполнится последний открытый таск. Цена скипа указывается внутри самого таска.<br />
*'''check_multiple''' - Проверить выполнение задач не выходя из проверки после первой найденной.<br />
*'''add_hint_hidden''' - Вызов подсказки для 1 (первой по списку в таскорганайзере) скрытой задачи.<br />
*'''add_hint_hidden_all''' - Вызов подсказки для всех активных скрытых задач (по списку в таскорганайзере).<br />
*'''calc_active_preset''' - Посчитать количество активных задач по конкретному "preset" (перед вызовом в поле "param" указать номер интересующей категории preset). После вызова, таскорганайзер заполнит параметр "preset_tasks".<br />
<br />
Состояния для работы с тасками-угадайками по типу викторины ( в taskorganizer_setup - тип = "угадайка"):<br />
*'''answer''' - ответить на открытую угадайку ( в поле '''param''' должно находиться число, номер нажатой кнопки от 0 до 3 ). Вешаем на кнопки варианты-ответа ( пишем param = 0 - 3 , после передаёт _answer_); <br />
*'''generate_guess''' - сгенерировать угадайку-викторину ( выберет доступные задачи из диапазона указанном в очередях ( 1 и 2) поле _угадаечные задачи_ taskorganizer). При открытии угадайки, в поле _cur_guess_answer_ объекта Taskorganizer записывается номер кнопки где лежит правильный ответ ( от 0 до 3 );<br />
<br />
ПРИМЕЧАНИЕ: при проверке задач для логбука для последней выполненной будет перезаписано поле filter автоматически.<br />
<br />
При кажом refresh таскорганайзер заполняет у себя поля:<br />
*'''tasks_in_table''' - задач в таблице<br />
*'''tasks_total''' - задач в таблице + скрытых задач<br />
<br />
=Запись в опции=<br />
<br />
В процессе работы таскорганайзер записывает параметры в опции. Для конкретной задачи этот параметр представляет следующую строку:<br />
<br />
"tasks(id таскорганайзера в проекте).t(id текстового объекта - идентификатора задания).s".<br />
<br />
Возможные значения:<br />
* '''0''' - таск не активен (не добавлен путем вызова generate таскорганайзеру);<br />
* '''1''' - таск сгенерирован ;<br />
* '''2''' - таск прочитан (вызвано состояние show);<br />
* '''3''' - таск выполнен;<br />
* '''4''' - отложенное состояние таска (условия появления выполнены, но время его появления еще не прийшло);<br />
* '''5''' - таск выполнен, но награда ещё не забиралась ( таск будет оставаться в таблице, если таски не выполняются автоматически);<br />
<br />
=Сопутствующие объекты=<br />
<br />
Объекты, которые используются вместе с объектом economics и имеют с ним непосредственную связь:<br />
<br />
* [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря(магазина) и экономики. <br />
* [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина. <br />
* [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря.<br />
* [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета. <br />
* [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий.<br />
* [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания.<br />
* [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции.<br />
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер<br />
<br />
<br />
=Вычитаемые параметры:=<br />
Каждая таскорганайзер пишет в пользователя следующие параметры:<br />
*'''public.TaskOrganizerCompletedTasks''' - количество выполненных одноразовых задач;<br />
*'''public.TaskOrganizerCompletedTasksAll''' - количество выполненных задач с учётом повторяемых;<br />
<br />
=Механизм многоуровневых достижений=<br />
С помощью таскорганайзера можно организовать систему многоуровневых достижений. Для этого используется [[Etasktemplate|темплейт задачи]]. Данные темплейты складываются в таблицу темплейтов таскорганайзера. При этом в самом таскорганайзере должна быть указанна таблица для иконок задач, хоть она и не используется (желательно вынести за границы экрана).<br />
<br />
Каждый уровень достижения представляет собой отдельный таск с подзадачей на опции. В поле опций этой подзадачи указываем параметр, который отображает прогресс по достижению. Чтобы создать несколько уровней достижения, нужно несколько задач одного типа (с возрастающими требованиями).<br />
<br />
Часть контента для достижения задается чрез текстовый объект - id таска. В текстовом объекте указываем название (word), описание невыполненной (sentence1) и выполненной (sentence2) ачивки. А также ресурс иконки ачивки (ico1), ресурс звезд для невыполненной (ico2) и выполененной (ico3) задачи.<br />
Награду за достижения ачивки указываем как награду за выполнение таска. Также с помощью обработчика завершения задачи можем запустить анимацию получения ачивки.<br />
<br />
Для заполнения таблицы темплейтов нужно вызвать состояние '''refresh_templates''', при вызове '''check''' задача, условия которой были выполнены изменит свое состояние, при этом будут переключены ресурсы звезд, описание ачивки и спрятана кнопка темплейта '''btn'''. <br />
<br />
Для контроля того, какая задача будет вызвана при вызове '''check''' можно использовать следующий способ. К задаче добавляем еще одну подзадачу на опции. Когда прогресс по первой подзадаче на опции будет >= требуемого значения для задачи будет отображаться кнопка темплейта '''btn'''. При нажатии на эту кнопку, которая должна вызывать '''take''' темплейту задачи, в него пишется параметр clicked_task_id, по этому параметру определяем у какой задачи нужно выполнить вторую подзадачу на опции и вызываем '''check''' таскорганайзеру.<br />
<br />
Пример<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample<br />
<br />
Complex_achievements.zip<br />
<br />
=Пример проекта=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\Taskorganizer<br />
<br />
=Равномерная экономика (Preset)=<br />
[[Файл:1499422858929.jpg|300px|thumb|right]]<br />
Работает, при включении в объекте Economic равномерной экономики (задание не нулевых значений).<br />
Настройка позволяет давать диапазонную награду конкретной группе задач("preset").<br />
Настройка награды для всех задач, у которых не указан параметр "preset" (т.е. =="-1"), осуществляется, группой параметров объекта Taskorganizer:<br />
<br />
<br />
<br />
<br />
<br />
<br />
Настройки конкретного preset вынесены в отдельную вкладку "Taskorganizer_setup":<br />
[[Файл:Photo hidden 365 Scene Editor build Wed Jul 5 151607 2017 -(single-user) DProjectsEDITOR Game Hidden 365Photo hidden 365Photo hidden 365.seproj.jpg|600px|right]]<br />
[[Category:Economics]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Image&diff=8930Image2017-07-07T12:40:27Z<p>Aslav: /* Параметры */</p>
<hr />
<div>{{TOC right}}<br />
<br />
'''Image''' - [[Object|объект]] применяется для отображения графических файлов на сцене.<br><br />
==Особенности объекта Image==<br />
[[Файл:Image_02.JPG|150px|right]]<br />
На первом рисунке приведен пример того, как выглядит объект Image без графического ресурса. На втором рисунке отображен объект Image с графическим ресурсом. <br />
*Объект Image может не иметь графический ресурс, который виден на сцене<br />
*Параметры объекта Image в процессе геймплэя могут меняться через объекты [[Machine]], [[Button]] ,[[Checkbox]] и т.п.<br />
*На положение графического ресурса объекта Image влияет точка пивота.<br />
*Графический ресурс объекта Image должен лежать в базе ресурсов проекта<br />
*Графический ресурс объекта Image может иметь бордеры (о бордерах смотри больше на [[Интерфейс ResourceEditor]])<br />
*Независимо от видимой формы графического ресурса на сцене форма объекта Image прямоугольная (мы видим прямоугольную рамочку)<br><br />
*При задании графического ресурса объекту Image необходимо разместить графический ресурс в соответствии с задумкой художников. Для этого необходимо воспользоваться функций "Расположить сцену в соответствии с изображением" Больше о данной функции смотри [[Функция Расположить сцену в соответствии с изображением]]<br />
[[Файл:Image_01.JPG|150px|right]]<br />
<br />
== Параметры ==<br />
*'''id-объекта'''(id) - уникальный номер объекта<br />
*'''тип''' (type) - Выбранный тип объекта определяет его функциональное назначение и его свойства<br />
*'''имя'''(name) - Имя графического объекта в дереве проекта. Может быть произвольным. По умолчанию соответствует имени файла из базы ресурсов.<br />
*'''синхронизация''' (sync)- Применяется для синхронизации между лейаутами, если указан параметр ''нет'' то объект будет активен только на текущем лейауте<br />
*'''память''' (memo) - Если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана).<br />
*'''res''' - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
*'''[[прокликиваемая]]''' (passClk) - Если 1, то картинка прозрачна для клика мышкой (пропускает объектам под ней). Если 2, то картинка сама обрабатывает клик, но и пропускает его дальше"<br />
*'''Сохранение параметров''' -Настройка этого параметра актуальна, если приложение в дальнейшем будет сворачиваться в системную панель («трей»). При выходе из трэя будут восстановлены ранее измененные/установленные (при переходе с одного экрана на другой)параметры объектов или подобъектов в зависимости от выбранного варианта для этого параметра. По умолчанию указан параметр "нет". Возможны следующие варианты: "нет", "только объект", "объект с подобъектами", "только подобъекты". <br>Следует помнить, что если выбирается для объекта некоторой сцены значения этого параметра отличное от "нет", то должно и предусматриваться соответствующее значение этого параметра и для этой сцены, и для экрана, содержащего эту сцену.<br />
=== Группа - положение ===<br />
*'''положение X'''(px) - Горизонтальная координата центра графического объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены. <br />
*'''положение Y''' (py)- Вертикальная координата центра графического объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены.<br />
<br />
=== Группа - размер ===<br />
[[Файл:object1.png|400px|right]] <br />
*'''размер -> W''' (w) - Ширина графического объекта в пикселях<br />
*'''размер -> H''' (h)- Высота графического объекта в пикселях<br />
=== Группа - vertex === <br />
[[Файл:Image_deform.png|400px|right]]<br />
*'''vertex -> включить vertex''' (useVertex) - Использовать задание точек положения изображения<br />
*'''vertex -> точки''' - Точки местонахождения изображение. Первая точка - верхняя левая точка. Следующие - против часовой стрелки от первой.<br />
*'''vertex -> настройки -> треугольники''' (triangles) - Количество треугольников, по которым растягивается изображение для искажения. Больше - лучше, но больше и нагрузка.<br />
*'''vertex -> настройки -> пузырь''' (bubbleDeform) - Коэффициент искажения вида Пузырь. Отрицательное значение - вогнутость внутрь.<br />
=== Группа - модификаторы ===<br />
*'''alpha''' (al) - Прозрачность: от 0 (прозрачен) до 1 (не прозрачен).<br />
*'''blending''' (bl) - Alpha смешивание (parent - наследует alpha от родителя, blend - смешивание, add - добавление, sub - вычитание, none - ничего не происходит. (Подробнее о Alpha смешивании - здесь)).<br />
*'''angle''' (ang) - Угол поворота в градусах (0 - не повёрнут). Отсчитывается от оси x вниз. Вверх - идут отрицательные углы.<br />
*'''scale x''' (sx) - Масштаб по оси '''x''' (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.).<br />
*'''scale y''' (sy)- Масштаб по оси '''y''' (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.).<br />
*'''Принудительный scale x''' - Строгий масштаб по оси '''х''', независимый от масштаба родителей (если указать 0, то будет использоваться обычный скейл с учетом родителей)<br />
*'''Принудительный scale y''' - Строгий масштаб по оси '''y'''.<br />
*'''тайлинг''' - если размер объекта отличается от размера графического ресурса, то с графическим ресурсом:<br />
#ничего не делать (нет)<br />
#замостить им область объекта (тайлинг)<br />
#растянуть по области объекта (растянуть)<br />
*'''z''' - Параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим.<br />
<br />
=== Группа - [[позиционирование]] ===<br />
*'''горизонтальное''' (alHor) - выравнивание по горизонтали (0 - нет выравнивания; 1 - прижать к левому краю; 2- центр; 3 - прижать к правому краю).<br />
*'''вертикальное''' (alVer)- выравнивание по вертикали (0 - нет выравнивания; 1 - прижать к верхнему краю; 2- центр; 3 - прижать к нижнему краю).<br />
<br />
Сам по себе объект Image статичен, то есть не может менять положение на сцене.<br />
<br />
== Точка пивота ==<br />
[[Файл:scena.png|400px|right]]<br />
<br />
'''Точка пивота''' - точка, вокруг которой может быть повернут графический ресурс объект Image. Может находится за пределами графического объекта. <br> <br />
Параметры точки пивота задаются в редакторе ресурсов и могут быть изменены в любое время.<br><br />
'''Замечание'''.Точка пивота сцены, как правило, расположена в центре сцены.<br><br />
<br />
[[Файл:pivot_point1.png|400px|left]]<br />
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br />
'''Пример изменения координат точки пивота'''<br> <br />
Пусть на сцене расположен объект Image c параметром angle=90.<br><br />
Рисунок слева иллюстрирует, что после задания параметра angle=90 точка пивота объекта не сместилась.<br><br />
Рисунок справа иллюстрирует, что при изменении точки пивота объекта (ее переместили вниз) в редакторе ресурсов и после задания параметра angle=90 в редакторе точка пивота остается на месте.<br />
<br />
[[Файл:pivot1.png|400px|left]][[Файл:pivot2.png|400px|center]]<br />
<br />
<br />
[[Category:Main objects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_AppSalute_%D0%A1reator&diff=8165Введение в AppSalute Сreator2016-05-30T10:06:09Z<p>Aslav: /* Свойства проекта */</p>
<hr />
<div>{| width="100%" <br />
| width="40%"|[[Learning|Оглавление]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Создание экранов, сцен. Работа с кнопками|Урок 2]]<br />
|}<br />
----<br />
{{TOC right}}<br />
----<br />
'''Цель:''' <br />
познакомиться со средой разработки игр AppSalute Сreator.<br />
<br />
'''Задачи:''' <br />
* проинсталлировать AppSalute Сreator;<br />
* открыть готовый проект в редакторе сцен;<br />
* освоить взаимодействие редактора сцен и редактора ресурсов;<br />
* изучить основные методы редактирования сцены.<br />
<br />
<br />
== Введение ==<br />
<br />
Для создания игр в AppSalute Сreator используются четыре взаимодействующих между собой приложения:<br />
* [[Файл:Ico_main.png|40px]] '''[[Интерфейс ScenceEditor|Scene Editor]]''' - редактор игровых сцен (экранов), в котором происходит настройка свойств объектов и игровой логики. Это основной инструмент при разработке игры.<br />
* [[Файл:Ico_base.png|40px]] '''[[Редактор ресурсов|Resources Editor]]''' - хранилище медиа-ресурсов (картинки, звуки, видео, анимация), использующихся в игре. Эти ресурсы при помощи мышки перетаскиваются на сцену в Scene Editor.<br />
* [[Файл:Ico_text.png|40px]] '''[[Интерфейс TextEditor|Text Editor]]''' - хранилище всех текстовых ресурсов (надписей) на различных языках. Аналогично графике и звукам при помощи мышки они перетаскиваются в соответствующие свойства объектов, находящихся в Scene Editor. См. также [[Редактор текстовых ресурсов|Урок 6]]<br />
* '''Viewer''' - проигрыватель созданной игры. Обычно запускается непосредственно из Scene Editor. Вы увидите, возможно поиграете, игу в том же виде как и на любом мобильном устройстве.<br />
<br />
[[Файл:Layout.png|right]]<br />
Игра состоит из набора '''экранов'''. На каждом экране может находиться одна или несколько '''сцен'''.<br />
Например, пусть на экране находится игровое поле и панель с интерфейсными кнопками. Эти две области можно оформить при помощи различных сцен. Первая сцена содержит игровые '''объекты''' редактора, например миниигры такие как puzzle и фоновую картинку. Вторая сцена содержит базовые элементы управления (кнопки, чекбоксы), универсальные машины состояний (программирующие логику) и т.д. <br />
<br />
Так как игра обычно запускается на различных устройствах (телефон, планшетник, десктоп), важным понятием является '''лейаут''' (layout). Условно - это различные мониторы, имеющие то или иное разрешение в пикселях и разное соотношение высоты и ширины. Игра может проектироваться только для одного лейаута, однако чаще поддерживается сразу несколько лейаутов: <br />
<br />
[[Файл:lesson_1_layouts.png|400px]]<br />
<br />
В качестве примера справа на рисунке представлена структура некоторого проекта в лейауте с размерами экрана устройства 960x640 пикселей. На этом лейауте находятся экраны, из которых только один экран(pack1) развернут. Внутри него <br />
находятся 2 сцены (stg_list1 и stg_main1). Одна сцена (stg_list1) раскрыта и содержит три игровых объекта. Последний из них (tbk_pack1) является сложным объектом, содержащем несколько других.<br />
Таким образом, игровой проект можно представить как '''дерево''', на различных ветках которого находятся игровые объекты.<br />
<br />
Для начала работы с редактором его необходимо [[Установка и настройка|установить]] редактор загрузив и запустив [[Downloads|инсталлятор]].<br />
По умолчанию все необходимые программы будут размещены '''C:\Program Files\AppSalute Creator''' и материалы для уроков находятся в папке '''Мои Документы\Absolutist\Projects\lessons'''. При желании её можно в дальнейшем перенести в любое удобное место.<br />
После инсталляции запускаем программу Scene Editor, найдя на рабочем столе или в списке приложений иконку:<br />
<br />
[[Файл:icon_se.png]].<br />
<br />
== Редактор сцен ==<br />
<br />
=== Открытие проекта ===<br />
<br />
Шаг первый. <br />
Вверху окна редактора расположено общее меню и кнопки быстрого запуска:<br />
<br />
[[Файл:001.JPG]]<br />
<br />
Если нажать пункт меню <tt>Project</tt> (Проект), то выпадет список команд, с помощью которых можно [[Подготовка к работе "Создание проекта"|создать новый]] или загрузить уже созданный проект, сохранить проект с указанием места сохранения и т.д.<br />
<br />
Откроем проект, на основании которого будут проходиться эти уроки. Для этого нажмём в меню пункты <tt>Project</tt> &rarr; <tt>Open</tt> или сразу кнопку быстрого доступа [[Файл:00 7.png]]. Заходим в папку '''Мои документы/Absolutist/Projects/Lessons'''.<br />
Внутри неё кликнем на файл '''lessons.seproj''' <br />
<br />
[[Файл:Seproj.JPG|150px|center]].<br />
<br />
В результате откроется проект, визуальная часть которого окажется в основной (центральной) части редактора. Чтобы увидеть что-то кроме белого экрана, необходимо на панели Layout, которая находится в правой верхней части экрана, кликнуть мышкой на строчку с надписью '''lesson_1''' (это первый игровой экран приложения). В результате мы должны увидеть:<br />
<br />
[[Файл:intro_se.png|600px]]<br />
<br />
=== Свойства проекта ===<br />
<br />
В правой части окна редактора расположены две панели '''Layout''' (лейаут) и '''Properties''' (свойства).<br />
На панели Layout показано иерархическое дерево проекта, который пока состоит из одного игрового экрана lesson_1. Если кликнуть на треугольничек (или плюсик, в зависимости от Вашей ОС) слева от надписи lesson_1, то экран раскроется и мы увидим [[Проектирование_экранов_игры#Принципы_формирования_сцен_и_их_наполнения|сцену]], которая находится на [[Проектирование_экранов_игры|экране]]. Она называется lessons_1. Продолжая кликать на треугольники, раскроем всю структуру этого проекта: <br />
<br />
[[Файл:intro_layout.png]]<br />
<br />
Наиболее простым объектом, находящимся в дереве проекта, является статическая картинка фона, которая называется '''bg'''. Если на неё кликнуть, то ниже в панели Properties можно увидеть параметры настройки этого объекта (его свойства):<br />
<br />
[[Файл:intro_properties.png]]<br />
<br />
Стоит "пораскрывать" ветки настроек объекта bg, нажимая на треугольники (или плюсики) слева от имен полей. Если навести мышкой на имя поля, то появится краткая подсказка, поясняющий смысл свойства.<br />
<br />
Панели Layout и Properties могут перетаскиваться мышкой в произвольное место редактора,<br />
располагаться одна под другой или объединяться в одну панель с двумя закладками внизу.<br />
Если панели находятся одна под другой, можно мышкой изменить их относительную высоту. Для этого мышь располагаем между ними, пока она не изменит своей формы со стрелочки на сплиттер (две горизонтальные полоски). Затем, нажав на мышь, таскаем вверх-вниз границу между панелями.<br />
<br />
=== Проигрывание проекта ===<br />
<br />
В процессе разработки игрового проекта, игру в любой момент можно запустить в отдельном окне вьювера ('''Viewer''') для проверки. Для этого в дереве проекта (панель Layout) необходимо выбрать интересующий нас экран (с которого произойдёт запуск) и нажать кнопку [[Файл:00 9.png]] (или пункт меню <tt>View</tt> &rarr; <tt>Start viewer</tt>).<br />
<br />
<br />
[[файл:lesson_1_view.png]]<br />
<br />
<br />
В нашем случае мы увидим летающее над слонёнком солнышко. Оба объекта (и слонёнок и солнышко) являются активными. Кликните сначала на голову слонёнка - она должна повернуться. Клик на тело слонёнка заставит его подпрыгнуть. При должной сноровке можно кликнуть также на летающее солнышко, что приведёт к кратковременному изменению его формы.<br />
<br />
Стоит запомнить три важных правила при работе с вьювером:<br />
* Если приложение редактировалось, то перед запуском вьювера проект необходимо <u>сначала</u> сохранить (меню: <tt>Project</tt> &rarr; <tt>Save</tt>).<br />
* Всегда необходимо перед запуском вьювера выбирать экран, который начнёт проигрываться (сейчас такой экран пока один).<br />
* После просмотра во вьювере игры, его необходимо закрыть, нажав (как обычно в Windows) крестик в правом верхнем углу окна.<br />
<br />
=== Кнопки быстрого запуска ===<br />
<br />
Приведем для справки описание кнопок быстрого доступа к некоторым командам редактора сцен (более подробная информация будет дана в последующих уроках):<br />
<br />
*[[Файл:00 6.png]] — создать новый проект; <br />
*[[Файл:00 7.png]] — загрузить уже созданный проект;<br />
*[[Файл:00 8.png]] — сохранить изменения в проекте; <br />
*[[Файл:00 9.png]] — запустить Viewer;<br />
*[[Файл:00 10.png]] — перемещение сцен мышью; <br />
*[[Файл:009.JPG]] — нормальный вид; <br />
*[[Файл:010.JPG]] - общие свойства объекта; <br />
*[[Файл:Text_base.png]] - вызов текстового редактора;<br />
*[[Файл:Resourse_editor.png]] — вызов редактора ресурсов;<br />
*[[Файл:013.JPG]] — анализ проекта; <br />
*[[Файл:014.JPG]] — поиск объекта по имени или id.<br />
<br />
== [[Редактор ресурсов]] ==<br />
<br />
Второе важное приложение, это редактор ресурсов.<br />
Так как мы открыли готовый проект, то с ним уже связана база графических ресурсов.<br />
Чтобы её увидеть, нажмите кнопку [[Файл:Ico base.png|20px]] (или меню: <tt>Tools</tt> &rarr; <tt>Resource editor</tt>).<br />
Откроется новое окно, которое, на самом деле, является независимым приложением:<br />
<br />
[[Файл:intro_re.png]]<br />
<br />
Как и в редакторе сцен, вверху окна редактора ресурсов расположено меню и кнопки быстрого доступа: создать базу ресурсов, открыть уже существующую, добавить картинку (png, jpeg), анимацию, мелодию (mp3, ogg), видео (mp4).<br />
Ниже, в левой панели находятся папки, внутри которых можно найти различные графические ресурсы, которые мы будем использовать на протяжении этих уроков. Каждая папка названа по имени урока.<br />
Кликнув на треугольничек (или плюсик) слева от папки lesson_1 мы увидим текстовый список из 8 картинок, находящихся в ранее запущенном приложении со слоненком и солнышком.<br />
<br />
Если в дереве папок активна данная папка, то на правой панели мы видим список графических ресурсов в виде иконок. Если же в дереве кликнуть на имя конкретной картинки, то в правой панели она будет представлена в натуральную величину. Если кликнуть правой кнопкой мыши на конкретный ресурс отобразится всплывающее подменю, которое аналогично кнопкам быстрого доступа, за исключением одного пункта - <tt>Заменить изображение</tt>. Замену изображений необходимо делать через всплывающее подменю.<br />
<br />
Текущее приложение содержит фоновую картинку (bg), три картинки частей слонёнка (elephant_body, elephant_head1, elephant_head2) и 4 картинки с различным видом солнышка. <br />
<br />
Так как редактор ресурсов является отдельным приложением, он может оказаться под окном редактора сцен. Это не всегда удобно, поэтому зайдем в пункт меню <tt>'''View'''</tt> редактора ресурсов и поставим галочку у пункта <tt>'''Always on Top'''</tt>. Теперь редактор ресурсов окажется поверх редактора сцен (как впрочем, и поверх всех остальных окон). Естественно, галочку можно в любой момент снять или свернуть окно редактора ресурсов.<br />
<br />
Размер окна ресурсов можно изменять мышкой, схватившись за правый нижний угол окна.<br />
Правая панель, выводящая картинки, может быть перетащена в любое место окна редактора (для этого необходимо потянуть за её заголовок). Чтобы вернуть панель на фиксированное место, необходимо дважды кликнуть на её заголовке.<br />
<br />
== Редактирование сцены ==<br />
<br />
=== Добавление на сцену ===<br />
<br />
Разберемся, как на сцену добавляются новые объекты. Предполагается, что мы одновременно видим окна обоих редакторов. Убедимся, что в панели проекта (Layout) редактора сцен активна текущая сцена lessons_1. Не путайте её с экраном lesson_1, находящимся выше. Рядом с каждым объектом в дереве ресурсов находится иконка, отражающая тип объекта. Рядом с экраном изображено, что-то похожее на фотоаппарат, а рядом со сценой - чистый лист бумаги. <br />
<br />
Нажав мышкой на иконку головы слонёнка в '''редакторе ресурсов''', перетащим её на сцену в '''редактор сцен''', где кнопку мышки отпустим:<br />
<br />
[[Файл:intro_se_re.png|600px]]<br />
<br />
Теперь окно редактора ресурсов можно свернуть, чтобы оно не мешало. <br />
На сцене мы видим одного полноценного слонёнка и отдельно парящую голову.<br />
В списке объектов (панель Layout) добавился объект elephant_head_2. <br />
Его имя по умолчанию совпадает с именем картинки в редакторе ресурсов.<br />
Если оно не достаточно точно выражает назначение этого объекта, то его '''необходимо'''<br />
изменить в панели Properties (предполагается, что на дереве объектов эта голова сейчас выбрана).<br />
Переименуем её, например, в elephant_ghost (дух слонёнка). Для этого кликнем справа от поля '''имя''' в панели Properties и введем новое название. После окончания редактирования нажимаем Enter. Одновременно с этим поменяется имя на дереве объектов (Layout).<br />
Стоит всегда придерживаться следующего правила:<br />
<br />
<blockquote><br />
[[файл:Ok.png|right|32px]]<br />
'''Необходимо присваивать объектам в проекте осмысленные имена, отражающие их роль и функции. Это относится также к именам экранов и сцен.'''<br />
</blockquote><br />
<br />
Названия объектов могут повторяться, но это плохой тон. В частности, неудачным примером названий в этом проекте служат похожие имена экрана (lesson_1) и сцены (lessons_1). Плохое имя (move) у летающего солнышка (лучше было бы fly_sun). <br />
<br />
Обратим внимание, что добавленная голова имеет тип '''image''' (первое поле в панели Properties).<br />
Большинство объектов в начале имеют такой тип. Далее он меняется в зависимости от функциональности объекта (подробнее об этом в следующих уроках).<br />
<br />
<blockquote><br />
[[файл:Ok.png|right|32px]]<br />
'''Совет''': Переименовывать объекты можно непосредственно в панели Layout, после двойного клика мышкой на имя этого объекта. Редактирование оканчивается нажатием клавиши Enter. <br />
</blockquote><br />
<br />
=== Изменение положения ===<br />
<br />
На сцене вокруг добавленной головы находится <span style="color:#007700">зелёная прямоугольная рамка</span> (объект активен). <br />
Если она <span style="color:#770000">красная</span>, необходимо кликнуть на объект (голову) и он станет активным.<br />
Заметим, что при клике на объекте меняется не только цвет рамки, <br />
но и активный объект на дереве объектов (Layout). Соответственно в панели Properties показываются его свойства.<br />
Стоит покликать на различные объекты на сцене и на дереве проекта, наблюдая одним глазом за их рамкой, а другим за панелями проекта и свойств. В заключении этого увлекательного упражнения необходимо снова сделать активной голову.<br />
<br />
Активный объект можно таскать мышкой по экрану, задав ему требуемое положение (не оторвите только голову исходному слоненку). Стоит раскрыть свойство "'''положение'''" в панели Properties и понаблюдать, как при таскании головы меняются её координаты. <br />
Начало координат (точка x=0, y=0) расположено в центре сцены. Горизонтальная ось x направлена вправо, а вертикальная ось y - вниз. Если объект находится ниже центра сцены, он будет иметь положительное значение y, а если выше, то отрицательное.<br />
Естественно, положение объекта можно изменить и при помощи прямого редактирования полей '''x''', '''y''' свойства "'''положение'''". Перетащите голову в правый верхний угол сцены.<br />
<br />
=== Модификаторы ===<br />
<br />
Будем считать, что добавленная голова слона - это дух предков исходного слонёнка.<br />
Духу положено быть полупрозрачным. Это достигается изменением <br />
свойства '''alpha''' в группе '''модификаторы''' на панели свойств (Properties).<br />
Изменим исходное значение 1.00 (непрозрачен) на 0.5 (полупрозрачен).<br />
Значение alpha=0 соответствует полной невидимости объекта (возможно любое значение между 0 и 1).<br />
Обратим внимание, что десятичная точка является именно точкой, а не запятой, как всё ещё учат на 1/6 части суши. Впрочем, если в вашей операционной системе в языковых настройках стоит русский язык, Вы увидите привычную запятую, вместо десятичной точки. <br />
<br />
Дополнительно в разделе '''модификаторы''' можно изменить угол ('''angle''') в градусах (поставьте, например -30)<br />
и масштаб картинки (поля '''scale x''' и '''scale y'''). Исходная картинка имеет единичный масштаб, т.е. на сцене выглядит также, как и в редакторе ресурсов. Если масштаб увеличить, то увеличится и картинка (это можно сделать независимо по ширине и высоте). <br />
Соответственно, значение меньшее 1 (но большее нуля) её уменьшит.<br />
Отрицательное значение масштаба переворачивает картинку. Задайте scale_x=-2 и scale_y=2.<br />
В результате должно получиться что-то типа:<br />
<br />
[[Файл:intro_se_midif.png|600px]]<br />
<br />
Заметим, что при сильном масштабировании (scale) могут появляться дефекты картинки (квадратики пикселей), поэтому злоупотреблять большими значениями, обычно, не стоит.<br />
<br />
=== Z - порядок объектов ===<br />
<br />
Пришло время посмотреть, что у нас получилось. Для этого сохраняем все изменения <br />
[[Файл:00 8.png]] (нажав кнопку Ok на выскочившем окошке).<br />
Затем запускаем вьювер [[Файл:00 9.png]]. Понаблюдаем за солнцем. Оно движется над фоновой<br />
картинкой "'''bg'''", но ''под'' головой духа слона (он должен, естественно, находится в верхней части сцены). Такая последовательность прорисовки связана с порядком объектов в дереве на панели Layout. Отрисовка происходит сверху вниз (сначала bg, затем move и т.д.). Это правило является иерархическим. Если на дереве находятся объекты, содержащие другие объекты, то сначала рисуется вся эта ветка дерева, а затем поверх неё рисуются нижележащие на дереве объекты на других ветках. Это же правило относится к последовательности рисования сцен. Если на экране несколько сцен, то они рисуются сверху вниз в соответствии с их порядком на дереве. Сама по себе сцена - это невидимый объект (контейнер). Поэтому, рисование сцены означает последовательное рисование всех объектов, которые в ней находятся.<br />
<br />
Попробуем во вьювере кликнуть на солнце, когда оно оказывается под головой духа слона.<br />
Его форма не изменяется, так как картинка головы, хотя и является полупрозрачной, по умолчанию "не прокликивается". Чтобы изменить ситуацию, закроем вьювер (крестик) и отредактируем поле свойств головы с именем "'''прокликиваемая'''", поставив вместо 0 значение 1. Закончив редактирование поля (нажав Enter), сохраняем проект [[Файл:00 8.png]] и снова запускаем вьювер [[Файл:00 9.png]].<br />
Теперь дух, как и положено астральным образованиям, пропускает клик сквозь себя.<br />
<br />
Порядок рисования объектов можно изменить, перетащив их по дереву в панели Layout.<br />
Эта операция требует определенной сноровки. Наступим на имя объекта elephant_ghost и не отпуская мыши потащим его вверх. Когда он окажется над объектом bg, отпустим мышь. Он станет подобъектом фона,<br />
что отобразится как сдвиг elephant_ghost вправо (у объекта фона bg слева появится треугольничек). Теперь снова схватим elephant_ghost и потащим чуть вниз и влево по дереву.<br />
Когда указатель мыши окажется между объектами bg и move, появится длинная горизонтальная полоска. В этот момент отпускаем мышь, и наш дух размещается между этими объектами.<br />
<br />
Ниже на рисунке представлены оба варианта положения духа на дереве сцены (слева подобъект elephant_ghost в объекте bg, а справа равноправный с bg объект, но ниже по дереву и, следовательно, рисуемый позже):<br />
<br />
[[файл:intro_ghost.png]]<br />
<br />
С точки зрения отрисовки, оба эти варианта приведут к одинаковому результату.<br />
Проверьте это, потренировавшись в таскании, сохранении и запуске вьювера. Подумайте также, почему так происходит.<br />
<br />
=== Удаление объектов ===<br />
<br />
Откройте снова окно редактора ресурсов (скорее всего оно находится в свернутом состоянии в панели приложений). Расположите его над окном редактора сцен. Перетащите на сцену из папки lesson_1 какую-нибудь небольшую картинку (например, sun_1). Сверните редактор ресурсов. Новая картинка появилась на сцене и в дереве объектов панели Layout. Чтобы её удалить, нажмите правую кнопку мыши на объекте sun_1 в панели Layout. В вывалившемся меню выберете пункт '''Delete'''. Картинка исчезнет. Эквивалентно, объект можно удалить, кликнув на него в дереве и нажав на клавиатуре кнопку Del.<br />
<br />
Заметим, что если объект на сцене сделать активным (кликнув на него - зеленая рамка) и попытаться нажать Del, то ничего не произойдет. Сделано это умышленно. Дело в том, что при удалении уничтожается не только сам объект, но и все его подобъекты. Подобная иерархия видна только на дереве проекта. <br />
<br />
В качестве упражнения, поместите на сцену две картинки. Одну их них в дереве панели Layout перетащите на другую, сделав её подобъектом. Потаскайте мышкой по сцене обе картинки. Обратите внимание, что подобъект перемещается независимым образом. В тоже время при таскании корневого объекта начнут двигаться они оба. Координаты подобъекта задаются относительно его владельца. Поэтому при перемещении корневого объекта вместе с ним движутся и все подобъекты.<br />
Теперь удалите сразу оба объекта, сделав активным на дереве корневой объект и нажав затем на кнопку Del (или при помощи правой кнопки мыши).<br />
<br />
=== Другие объекты ===<br />
<br />
На нашей сцене кроме картинок находятся еще два типа объектов - это кнопка и машина состояний. С кнопками мы будем работать уже на следующем [[Создание экранов, сцен. Работа с кнопками|уроке]], а машинам состояний посвящены сразу 3 урока, начиная с [[Checkbox как машина состояний|третьего]]. Пока наша задача состоит в их поиске в дереве проекта и первым знакомством с их свойствами.<br />
<br />
Кликнем на треугольник слева от объекта move в панели Layout. Под ним раскроется подобъект с именем '''sun_1'''. Это кнопка. Сам же объект move является машиной состояния. Кроме указания соответствующего типа в панели Properties (посмотрите на него!), тип объекта помечается иконкой на дереве. Для машины - это шестеренка, а кнопка - это кнопка :).<br />
<br />
Кликнув на объект '''sun_1''', рассмотрим его свойства в панели Properties. Кроме уже знакомых по картинке (тип=image) полей, появился ряд других. Например, раскроем треугольник свойства "'''внешний вид'''". Там находятся несколько полей, из которых заполнены '''up''' и '''down'''. В них заданы имена картинок для изображения отжатой и нажатой кнопки. Как они там оказались выяснится в следующем [[Создание экранов, сцен. Работа с кнопками|уроке]]. <br />
<br />
Рассмотрим теперь объект '''move'''. Не смотря на небольшое количество свойств, это один из самых универсальных и сложных объектов, позволяющих программировать динамическое поведение объектов и их логику. Чтобы краем глаза заглянуть на кухню этого процесса кликните на свойство '''states''', а затем на появившиеся три точки в этом поле. Выскочит следующее окошко:<br />
<br />
[[файл:intro_move1.png]] [[файл:intro_move.png]]<br />
<br />
Эта машина состояний, которая имеет одно состояние. В нём задана последовательность команд, которые управляют её движением по экрану. Сама машина в данном случае является невидимым объектом. Однако, она содержит в качестве подобъекта кнопку '''sun_1'''. Поэтому, когда машина move бегает по экрану, вместе с ней движется и кнопка. Клики на себя принимает кнопка, меняя при этом свой внешний вид. Несложно догадаться, что в результате получается солнышко.<br />
<br />
== Упражнения ==<br />
<br />
* Найдите две машины состояний, связанные со слонёнком, и попробуйте догадаться как они работают (ответы в следующих уроках).<br />
* Откройте демонстрационный проект, находящийся в папке AppSaluteСreator/Projects/Demo/demо. Поиграйтесь с ним.<br />
* Снова откройте учебный проект c которым мы работали (AppSaluteСreator/Projects/Lessons/lessons). Он нам понадобится для следующего урока.<br />
* Затем переходите на [[Создание экранов, сцен. Работа с кнопками|урок 2]].<br />
<br />
----<br />
{| width="100%" <br />
| width="40%"|[[Learning|Оглавление]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Создание экранов, сцен. Работа с кнопками|Урок 2]]<br />
|}<br />
<br />
[[Category:Learning]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Slotmachine&diff=7204Slotmachine2015-09-21T09:01:56Z<p>Aslav: /* Общие параметры */</p>
<hr />
<div>{{TOC right}}<br />
'''Slotmachine''' является объектом для реализации игр с механикой игровых автоматов. Slotmachine не просто управляет движением иконок на барабанах - он отвечает за анимацию выигранных линий и добавления новых линий для подсчета очков.<br />
<br />
==Общие параметры==<br />
(см. описание [[Object|Object]])<br />
<br />
[[Файл:Slot settings.png|right]]<br />
* '''тип''' - тип объекта<br />
* '''имя''' - имя объекта<br />
* '''синхронизация''' - синхронизация между лейаутами<br />
* '''положение'''<br />
** '''x''' - положение объекта по оси х<br />
** '''y''' - положение объекта по оси y<br />
* '''размер'''<br />
** '''w''' - ширина объекта в пикслях<br />
** '''h''' - высота объекта в пикселях<br />
* '''модификаторы'''<br />
** '''alpha''' - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен)<br />
** '''angle''' - угол поворота в градусах. 0 - не повернут. Отсчитывается от оси х вниз. Вверх идут отрицательные углы.<br />
** '''scale x''' - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
** '''scale y''' - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
* '''вычислять размер''' (''calcsize'') - Вычислять размер исходя из ширины и высоты объекта или использовать размер картинок" ''calcsize'': размер графики = 0, размер объекта = 1<br />
* '''сдвиг по y''' (''y_shift'') - Смещение иконок по y.<br />
* '''множитель скорости''' (''speedm'') - Множитель скорости для изменения направления вращения барабана.<br />
* '''''' ('''') - <br />
* '''эффект ячейки''' (''effect_obj'') - Объект, который склонируем для выигрышной ячейки. Флаер или машина с состоянием beg без подобъектов<br />
* '''доп. эффект ячейки''' (''effect_obj2'') - Объект, который склонируем для выигрышной ячейки. Флаер или машина с состоянием beg без подобъектов. Дополнительный объект удобно использовать для копирования различный flyer-анимаций выигрыша ячейки, при этом основной эффект чаще всего является объектом, которому заменяется графика из полей "эффект ячейки".<br />
* '''эффект линии''' (''line_obj'') - Машина, обеспечивающая анимацию выигравших линий. Должна иметь состояния line_0 ... line_N (N от 4 до 24)<br />
[[Файл:Slot_2.PNG|200px|thumb|right|пример машины для анимации линий]]<br />
* '''ribbon''' (''ribbon_obj'') - Объект типа [[Ribbon]] для эффекта линии.<br />
* '''смещение ribbon''' (''ribbon_y_shift'') - Смещение объекта ribbon вниз в % от высоты ячейки. Задается в единицах процентов от 1 до 100.<br />
* '''интрига''':<br />
** '''множитель интриги''' (''speedi'') - Множитель скорости для режима интриги.<br />
** '''ячеек для интриги''' (''numi'') - Сколько иконок одного типа должны выпасть (учитывая условия активации бонуса), чтобы запустился режим интриги.<br />
** '''эффект интриги''' (''intrigue_obj'') - Машина, обеспечивающая анимацию при режиме интриги. Будет склонирована в центр рельсы, должна иметь состояние beg. Объект будет скопирован для каждой рельсы, где будет запущен режим. Прячется или при вызове состояния '''hide_animation''' или в начале спина.<br />
* '''рельсы''' - пять полей с номерами иконок. '''ВАЖНО:''' Появление в рельсе иконки с порядковым номером выше, чем максимальное кол-во иконок - вызовет падение viewer с ошибкой в log. <br />
** '''рельса N''' (''r1..r5'') - Рельса N - номера иконок (начиная с 0) через запятую. Пустая строка - игнорировать рельсу<br />
* '''параметры вращения''':<br />
** '''time''' (''spin_t'') - Время вращения левого барабана.<br />
** '''time step''' (''spin_t_step'') - Время на которое каждый последующий барабан крутится дольше предыдущего. (''таким образом был реализован эффект последовательной остановки барабанов, как в механической версии данного автомата'')<br />
** '''time delta''' - Случайная погрешность для времени вращения барабана. Нужна для исключения появления устойчивых наборов иконок. Составляет обычно 10% от времени вращения барабана.<br />
** '''vel min''' (''min_vel'') - Минимальная скорость вращения (левый барабан)<br />
** '''vel max''' (''max_vel'') - Максимальная скорость вращения (правый барабан).<br />
<br />
* '''звуки''': <br />
** барабан вращается (''sndspin'') - барабан вращается. <br />
** запуск барабанов (''sndstart'') - запуск барабанов. <br />
** остановка барабана (''sndstop'') - остановка барабана. <br />
** выигрыш (''sndwin'') - выигрыш. <br />
** проигрыш (''sndfail'') - проигрыш. <br />
** особая комбинация (''sndspecial'') - особая комбинация.<br />
<br />
* '''иконка''' (''slotico'') - добавляемый параметр с настройками иконки:<br />
** '''графика''' (''icores'') - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Можно использовать фреймовую анимацию, которая будет использовать все настройки редактора ресурсов.<br />
** '''тип''' (''icotype'') - Тип иконки. 0 - обычная, 1 - Bonus, 2 - Wild, 3 - Scatter.<br />
0 - обычная иконка. 1 - при выпадении 3 и больше иконок на барабанах не зависимо от их расположения - запускается бонусная игра (пока не реализовано). 2- бонусная иконка, при попадании ее в линию - может заменить любую иконку и даёт возможность продолжить/начать/закончить игровую линию. 3 - механика схожа с бонусной иконкой, но вызывает уже бесплатные спины (пока не реализовано).<br />
** '''выигрыш''' (''icowin'') - Выигрыш по иконке. За 1, 2, 3 и т.д. иконку в линии.<br />
** '''эффект ячейки''' (''icoeffect'') - Объект, который склонируем для выигрышной ячейки. Флаер или машина с состоянием beg без подобъектов<br />
** '''доп. эффект ячейки''' (''icoeffect2'') - Дополнительный объект удобно использовать для копирования различный flyer-анимаций выигрыша ячейки, при этом основной эффект чаще всего является объектом, которому заменяется графика из полей "эффект ячейки".<br />
''если эти поля не заполнены - используются эффекты по умолчанию''<br />
<pre><br />
Пример:<br />
<br />
0, 1, 0, 0 - за строку начисляется выигрыш (1), если подряд попадается одна такая иконка. <br />
<br />
0, 0, 10, 0 - за строку начисляется выигрыш (10 очков), если подряд попадаются две таких иконки. <br />
<br />
0, 0, 0, 5 - за строку начисляется выигрыш (5 очков), если подряд попадаются три таких иконки.<br />
</pre><br />
[[Файл:Slot_3.gif|thumb|right|пример расположения линий]]<br />
<br />
'''Важно! Иконки в линии считаются слева направо. На изображении линии 6 и 7 перепутаны.'''<br />
<br />
Текущий выигрыш можно узнать считав параметр '''current_win''' у объекта.<br />
Количество линий, эффект для которых нужно показать отображает параметр '''lines_num'''. Считывается у объекта. Обновляется каждый раз при выполнении '''next_line_effect'''.<br />
<br />
* '''состояния''':<br />
** '''spin''' - запустить барабаны<br />
** '''add_line''' - добавить еще одну линию как игровую. При этом автоматически запускается эффект линии и переводится в состояние, соответствующее номеру последней добавленной линии.<br />
** '''remove_line''' - убирает одну линию. Одна линия для проверки - минимум, убрать её нельзя.<br />
''Оба состояния '''add_line''' и '''remove_line''' передаются с параметром кол-ва линий. par=param val=кол-во линий, аналогично dval у counter.''<br />
** '''clear''' - убрать все строки (кроме первой) для проверки выигрыша<br />
** '''next_line_effect''' - вызывает эффект для следующей линии. Одновременно с этим вызывается эффект для ячейки.<br />
** '''stop''' - остановить барабаны. Вызывается с параметром param от 0 до 4 для остановки конкретного барабана. Примечание: перевод объекта в состояния <br />
add_line и clear во время вращения барабана - приводит к его остановке.<br />
** '''stop_all''' - останавливает барабаны и пересчитывает награду (выпавшие линии), предназначено для остановки барабана по рычагу/кнопке .<br />
** '''shuffle''' - новое начальное положение барабана (выбирается случайная иконка на всей рельсе и от неё отображаются иконки на всех рельсах).<br />
** '''hide_animation''' - спрятать все эффекты линии и ячейки, которые были склонированы. Удобно использовать при досрочном закрытии мини-игры. Если вам нужно открывать что-то поверх активного слота ( во время показа анимации), вам нужно эти окна положить в отдельную сцену поверх сцены со слотом, т.к. анимация копируется в сцену со слот машиной.<br />
<br />
== Добавляемые параметры ==<br />
<br />
Меню выбора ''Добавляемые параметры'' к объектам активируется по правой кнопки мыши. <br />
<br />
[[Файл:+.png]] '''изменить состояние объекта - бросок завершен проигрыш''' - При current_win=0 по завершению вращения перевести слушателя в состояние.<br />
*'''объект'''- объект - состояние которого меняем.<br />
*'''состояние'''- состояние - значение нового состояния<br />
<br />
<br />
[[Файл:+.png]] '''изменить состояние объекта - бросок завершен выигрыш''' - При current_win!=0 по завершению вращения перевести слушателя в состояние.<br />
*'''объект'''- объект - состояние которого меняем.<br />
*'''состояние'''- состояние - значение нового состояния<br />
<br />
[[Файл:+.png]] '''иконка линии''' - При наличии объектов, которые каким-либо образом обозначают начало линии - указываем их через добавляемое свойство по порядку, начиная с нуля. Эффект линии в виде объекта ribbon будет рисоваться начиная (или заканчивая) этими объектами. <br />
*'''объект'''- объект, у которого забираем положение.<br />
<br />
[[Файл:+.png]] '''эффект ячейки''' - При current_win!=0 по завершению вращения заменяет из набора ресурсов таких дополнительных свойств графику для клонируемого эффекта ячейки.<br />
*'''клип'''- ресурс. Перетаскивается из базы ресурсов.<br />
<pre><br />
Графика в виде фреймовой анимации. Допустим у нас есть набор из 8-ми анимаций.<br />
<br />
Работает такая логика при выборе графики:<br />
<br />
1. При любом выигрыше графика эффекта ячейки для первой показываемой линии выбирается случайно из набора, но не повторяется с первой выбранной для предыдущего выигрышного спина.<br />
<br />
2. Для всех последующих в этом спине выигранных линий — графика последовательно выбирается из набора (оставшейся графики) в произвольном порядке.<br />
<br />
3. Если линий больше 8-ми — повторяем с первого пункта, выбирая первой графику отличную от 8-мой.<br />
<br />
Пример:<br />
<br />
1й спин — выпало 12 линий.<br />
<br />
0, 2, 4, 3, 5, 7, 1, 6 … (начинаем не с 6) 4, 0, 3, 1<br />
<br />
2й спин — выпало 6 линий.<br />
<br />
(начинаем не с 0) 5, 6, 7, 1, 0, 3<br />
<br />
где 0..7 — номера анимаций.<br />
</pre><br />
[[Категория:Game mechanic]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Memory&diff=7198Memory2015-09-09T12:56:43Z<p>Aslav: Category:Get Started</p>
<hr />
<div>{{TOC right}}<br />
'''Memory''' - [[Object|объект]] редактора, который реализует игровую механику "memory" - поиск одинаковых объектов. Имеет основные параметры [[Object|объекта]], но в memory нельзя помещать другие объекты - они при этом некорректно работают.<br />
<br />
== Get Started ==<br />
Нам потребуется 1 картинка для "рубашки" и два набора по 6 картинок для игры<br />
;Начнём:<br />
# откроем [[Интерфейс_ScenceEditor|редактор сцен]] и создадим новый проект,<br />
# добавим новый экран с именем ''scrMemory''<br />
# создадим в этом экране сцену ''stgMemory''<br />
# перейдём в [[Интерфейс_ResourceEditor|редактор ресурсов]]<br />
## создаём папку ''memo''<br />
## добавим в ней картинку для "рубашки" - назовём её ''cardback''<br />
## добавим там же анимацию (6 картинок) - ''cardpict''<br />
## также добавим анимацию (6 картинок) - ''cardkey''<br />
## закроем редактор ресурсов<br />
# перейдём в редактор сцен.<br />
# создадим в сцене stgMemory объект '''Memory'''<br />
# установим в нём свойство '''время открытия''' в ''500''<br />
# установим свойство '''время закрытия''' в ''1000''<br />
# установим свойство '''анимация картинок''' в ''поворот по горизонтали''<br />
# добавим (по правой кнопке мыши) свойство '''игрок'''<br />
# добавим свойство '''memoClassic параметры'''<br />
## в свойстве '''memoClassic параметры''' изменим параметр '''подтип''' на значение ''картинка-ключ''<br />
## выделим параметр '''подложки''' и перетащим на него из редактора ресурсов картинку ''cardback''<br />
## выделим параметр '''легкие картинки''' и перетащим из редактора ресурсов анимацию ''cardpict''<br />
## выделим параметр '''ключи''' и перетащим из редактора ресурсов анимацию ''cardkey''<br />
# сохраним проект<br />
# запустим [[Интерфейс_Viewer|вьювер]]<br />
<br />
=='''Основные свойства:'''==<br />
<br />
[[Файл:Memory1.png]]<br />
===Размер поля===<br />
*''w'' - Ширина объекта в пикселях.<br />
*''h'' - Высота объекта в пикселях.<br />
*''Строки'' '''(rows)''' - число ячеек по вертикали.<br />
*''Столбцы'' '''(cols)''' - число ячеек по горизонтали.<br />
<br />
==='''Звуки'''===<br />
*''Удачный клик'' '''(sndClick)''' - клик на закрытую нерешенную ячейку.<br />
*''Неудачный клик'' '''(sndMissClick)''' - неудачный клик (картинка решенная или анимируется).<br />
*''Разбор узла'' '''(sndNode)''' - разобрали узел.<br />
*''Удачный разбор игры'' '''(sndWinGame)''' - удачный разбор игры.<br />
*''Неудачный разбор игры'' '''(sndLoseGame)''' - неудачный разбор игры.<br />
<br />
===Дополнительные настройки===<br />
*''Отступ(x)'' '''(indentX)''' - отступ между картинками по горизонтали.<br />
*''Отступ (y)'' '''(indentY)''' - отступ между картинками по вертикали.<br />
*''Время открытия'' '''(tmOpening)''' - время открытия картинки.<br />
*''Время закрытия'' '''(tmClosing)''' - время закрытия картинки.<br />
*''Анимация картинок'' '''(animType)''' тип анимирования картинок:<br />
** скалирование=0,<br />
** переворот по горизонтали=1,<br />
** переворот по вертикали=2,<br />
** проявление по альфе=3.<br />
** подлет=4<br />
<br />
==='''Файл уровней'''===<br />
*''Имя файла'' '''(lvlfile)''' - Файл-описание уровня.<br />
*''Номер уровня'' '''(lvlnum)''' - Номер уровня в файле.<br />
<br />
==='''Параметры колебаний'''===<br />
*''Амплитуда'' '''(osc_a)''' - начальная амплитуда.<br />
*''Время'' '''(osc_time)''' - время колебания ячейки после открытия.<br />
*''Количество'' '''(osc_num)''' - количество колебаний.<br />
*''Затухание'' '''(osc_beta)''', параметр beta уравнения x(t) = a0 * exp(-beta * t) * cos(omega * t + alpha) - чем больше, тем быстрее уменьшается амплитуда колебаний.<br />
<br />
==='''Параметры подлета'''===<br />
Параметры анимации картинок "подлет".<br />
*''Время подлета'' '''(takeoff_tm)'''<br />
*''Скейл подлета'' '''(takeoff_sc)'''<br />
*''Время переворота'' '''(revolution_tm)'''<br />
*''Количество переворотов'' '''(revolution_num)'''<br />
*''Скейл дальней стороны'' '''(far_side_sc)'''<br />
<br />
==='''Параметры хинта'''===<br />
*''Время открытия'' '''(hint_open)''' - время открытия картинки.<br />
*''Время закрытия'' '''(hint_close)''' - время закрытия картинки.<br />
*''Время показа'' '''(hint_show)''' - время показа пары картинок.<br />
*''Пауза между анимациями'' '''(hint_dif)''' - пауза между началом анимирования первой и второй картинки.<br />
<br />
==='''Режим игры'''===<br />
*''Режим'' '''(mod)''':<br />
**normal<br />
**blitz - сыграть за определенное время<br />
**moves - сыграть за определенное количество ходов.<br />
<br />
*''Время (в блице)'' '''(modtm)''' - время игры в режиме blitz<br />
*''Кол-во ходов'' '''(modmv)''' - количество ходов для режима moves.<br />
*''Визуализатор'' '''(modvis)''' - объект, который отображает текущее значение времени/ходов (timer/progres).<br />
<br />
==='''Настройка бонусов'''===<br />
<br />
*''актер: добавить ходы'' '''(actBonusMoves)''' - актер, который будет переведен в состояние fly при открытии бонуса ходы.<br />
*''актер: добавить время'' '''(actBonusTime)''' - актер, который будет переведен в состояние fly при открытии бонуса время.<br />
*''актер: открыть пару'' '''(actBonusMatchPair)''' - актер, который будет переведен в состояние fly при открытии бонуса "добаить хинт открыть пару".<br />
*''актер: показать поле'' '''(actBonusShowField)''' - актер, который будет переведен в состояние fly при открытии бонуса "добавить хинт показать поле".<br />
<br />
===Дополнительные настройки ===<br />
<br />
*''Поведение решенного узла'' '''(snb)''':<br />
** оставлять картинки=0,<br />
** убирать с поля вместе с бекграундом=1,<br />
** устанавливать на их месте новые бекграунды=2.<br />
<br />
*''Начальная задержка'' '''(tmOpen)''' - начальная задержка перед стартом игры.<br />
*''Тип игры'' '''(memoType)''':<br />
** классическая=0,<br />
** найти свои=1,<br />
** copy=2.<br />
*''Флайер'' '''(flyer)''' - флайер при разборе узла. Нужен в двух экземплярах.<br />
<br />
==='''Препоказ'''===<br />
*''Нужен/не нужен'' '''(preShowNeeded)''' - включить/выключить препоказ картинок при старте игры.<br />
*''Время открытия'' '''(preShowOpenTm)''' - время открытия препоказа.<br />
*''Продолжительность'' '''(preShowTm)''' - продолжительность препоказа.<br />
*''Время закрытия'' '''(preShowCloseTm)''' - время закрытия препоказа.<br />
<br />
=='''Дополнительные параметры:'''==<br />
<br />
[[Файл:Memoryadd.png]]<br />
<br />
==='''Игрок'''===<br />
'''Важно!''' Должен быть как минимум один игрок.<br />
*''Игрок'' '''(player)''' - нужен/ненужен.<br />
*''Тип'' '''(pltype)''' - тип игрока: человек/компьютер.<br />
*''Ключ'' '''(key)''' - ключ игрока.<br />
*''Имя'' '''(name)''' - имя игрока<br />
*''Счетчик'' '''(counter)''' - счетчик ходов.<br />
*''Индикатор'' '''(indicator)''' - индикатор хода игрока(машина)<br />
*''Вероятность'' '''(probability)''' - вероятность правильного хода (для компьютера).<br />
*''Память'' "3" '''(plmemo)''' сколько ходов помнит компьютер.<br />
*''Время на ход'' '''(pltime)''' время на ход (для компьютера).<br />
<br />
==='''Бонус'''===<br />
*''Нужен'' '''(need)''' - нужен/ненужен.<br />
*''Ключ'' '''(key)''' - название бонуса.<br />
*''Графика'' '''(bonusImgs)''' - клип с графикой для бонусной карты.<br />
*''Картинка'' '''(bonusFrame)'' - номер фрейма в клипе, если хотим брать случайно, то -1<br />
*''Тип бонуса'' '''(bonusType)''':<br />
**открыть дополнительную карту=1<br />
**добавить ход=2<br />
<br />
==='''Удачный разбор: изменить состояние объекта'''===<br />
* объект '''(obj)''' объект, состояние которого нужно изменить.<br />
* состояние '''(st)''' новое состояние объекта.<br />
<br />
==='''Удачный разбор: изменить свойство объекта '''===<br />
* объект '''(obj)''' - объект, свойство которого нужно изменить.<br />
* свойство '''(par)''' - свойство, которое нужно изменить.<br />
* значение '''(val)''' Значение Новое значение свойства.<br />
<br />
==='''Неудачный разбор: изменить состояние объекта '''===<br />
* объект '''(obj)''' Объект Объект, состояние которого нужно изменить.<br />
* состояние '''(st)''' Состояние Новое состояние объекта.<br />
<br />
==='''Неудачный разбор: изменить свойство объекта'''===<br />
* объект '''(obj)''' - объект, свойство которого нужно изменить.<br />
* свойство '''(par)''' - свойство, которое нужно изменить.<br />
* значение '''(val)''' - новое значение свойства.<br />
<br />
Дополнительные параметры для разных типов игры:<br />
[[Файл:Memo3.png]]<br />
<br />
==='''memoClassic параметры'''===<br />
Цель игры - разобрать поле, убирая одинаковые картинки.<br />
*''Подтип'' '''(subType)''' подтип игры:<br />
** картинка-картинка - найти пары одинаковых картинок.<br />
** картинка-ключ - найти пары ассоциативных картинок.<br />
*''Сложность'' '''(level)''':<br />
** легкая<br />
** сложная - наличие картинок, которые труднее запомнить (белая/черная кошки).<br />
*''Повторения'' '''(duplication)''' повторения пар картинок:<br />
** запрещены<br />
** разрешены<br />
*''Подложки'' '''(bg)''' - анимация с картинками для подложек.<br />
*''Легкие картинки'' '''(pict0)''' - анимация с картинками для легкого уровня сложности.<br />
*''Сложные картинки'' '''(pict1)''' - анимация с картинками для сложного уровня сложности.<br />
*''Ключи'' '''(pictKey)''' - анимация с картинками для ключей (для подтипа картинка-ключ).<br />
<br />
==='''memoFindOwn параметры''' ===<br />
Цель игры - первым разобрать свои картинки.<br />
<br />
*''Подложки'' '''(bg)''' - клип с картинками для подложек.<br />
*''Нейтральные картинки'' '''(pictNeutral)''' - клип для нейтральных картинок.<br />
*''Картинки игроков'' '''(pict)''' - клип для активных картинок.<br />
*''Очки за свои ячейки'' '''(scoreOwn)''' - очки за клик на свою картинку.<br />
*''Очки за чужие ячейки'' '''(scoreOther)''' - очки за клик на чужую картинку(можно указывать отрицательное значения).<br />
*''Очки за нейтральные ячейки'' '''(scoreNeutral)''' - очки за клик на нейтральную картинку.<br />
*''Мультипликатор'' '''(scoreMultiplier)''' - за первую правильно открытую ячейку 1Х очков, за вторую - 2Х и т.д.:<br />
** нет=0,<br />
** да=1.<br />
*''Ячейки игроков'' '''(targetNum)''' - количество ячеек для каждого игрока.<br />
<br />
==='''memoCopy параметры'''===<br />
Цель игры - раскопировать изображение правильных фишек.<br />
*''Обычные картинки'' '''(imgs0)'''<br />
*''Верно нажатые'' '''(imgs1)'''<br />
*''Неверно нажатые'' '''(imgs2)'''<br />
*''Подложки'' '''(bgs)'''<br />
*''id для картинок'' '''(imgId)'''<br />
*''id для подложек'' '''(bgId)'''<br />
*''Пауза перед закрытием'' '''(endLevelPause)'''<br />
*''Итерации'' '''(numIters)'''<br />
*''Массив строк'' '''(rowsArray)'''<br />
*''Массив столбцов'' '''(colsArray)'''<br />
*''Пустые ячейки'' '''emptyArray'''<br />
<br />
=='''Файл уровней'''==<br />
'''Важно!''' После экспорта файл уровней нужно поместить в папку к layout.xml. Иначе он не попадет в сборку и на устройстве игра работать не будет!<br />
<br />
Возможно сделать макет уровней игры, и с помощью машины передавать memory параметр lvlnum, тем самым меняя играемый уровень. Данный параметр нужно передавать до перехода на экран с игрой.<br />
<br />
Уровень можно формировать 2 способами:<br />
* на основе постоянной прямоугольной решетки, при этом есть возможность задавать в решетке ячейки без плиток memory;<br />
* произвольным размещением плиток на сцене - путем задачи координат каждой плитки относительно объекта memory.<br />
<br />
'''Важно! При формировании уровня нужно следить, что бы количество игровых ячеек было парным'''<br />
<br />
==='''Структура уровня'''===<br />
<br />
<level><br />
id - номер уровня<br />
rows - высота сетки<br />
cols - ширина сетки<br />
time - время игры<br />
turns - количество ходов<br />
frames - количество картинок, из которых формируется поле<br />
dup - если 1, разрешены повторения пар. Если 0, повторений будет минимально возможное количество.<br />
clipBgs - id клипа с подложками // значения клипов переносятся вручную<br />
clipImgs - id клипа с картинками для матча // представляет собой id анимации<br />
clipKeys - id клипа с ключами для матче (в режиме картинка-ключ) // которая содержат нужные картинки<br />
<br />
<rules><br />
Описание правил для параметра "rules_preset"<br />
<rule><br />
id - сложность<br />
остальной список параметров такой же<br />
</rule><br />
...<br />
</rules><br />
<fakes> - ложные ячейки - ведут себя как и обычные ячейки, но ни с кем не матчатся<br />
<fake><br />
pos - позиция, она же номер в последовательности, описывающей поле<br />
frame - номер фрейма (должен быть в общей анимации)<br />
</fake><br />
</fakes><br />
<field> - прямоугольная решетка<br />
Описание ячеек поля {0,1}<br />
</field><br />
<field_pos><br />
Описание ячеек поля координатами (x0,y0),(x1,y1),...<br />
Переносы строк, пробелы и прочие табы разрешаются<br />
</field_pos><br />
</level><br />
<br />
<br />
====''Постоянная решетка''====<br />
<br />
<level id="0" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"><br />
<rules><br />
<rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /><br />
</rules><br />
<field_pos><br />
</field_pos><br />
<field> // где 0 - ячейка пустая<br />
1,1,0,1,1,1,<br />
1,1,1,1,1,1,<br />
1,1,0,1,1,1,<br />
1,1,1,0,1,1,<br />
1,1,1,1,1,0<br />
</field> <br />
</level><br />
<br />
<br />
====''Задание координат''====<br />
<br />
<level id="1" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"><br />
<rules><br />
<rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /><br />
</rules><br />
<fakes> // Нумерация ячеек начинается с верхней левой. Каждая фейковая ячейка уменьшает<br />
<fake pos="4" frame="1" /> // количество обычных ячеек. Поэтому нужно следить, что бы количество обычных<br />
<fake pos="12" frame="2" /> // ячеек всегда было парным.<br />
<fake pos="0" frame="0" /><br />
</fakes><br />
<field_pos> //координаты отсчитываются от точки пивота объекта memory<br />
(0,-250),<br />
(-50,-150),(50,-150),<br />
(-100,-50),(0,-50),(100,-50),<br />
(-150,50),(-50,50),(50,50),(150,50),<br />
(-200,150),(-100,150),(0,150),(100,150),(200,150)<br />
</field_pos><br />
</level><br />
<br />
<br />
=='''Бонусы'''==<br />
В мемори реализовано 6 бонусов:<br />
# добавить ходы;<br />
# добавить время;<br />
# добавить хинт открыть пару;<br />
# добавить хинт подсветить поле;<br />
# открыть пару;<br />
# подсветить поле.<br />
<br />
Назначение первых четырех бонусов заключается в переводе соответствующего актера в состояние fly. Начисление, анимация и т.п. должно происходить в этом состоянии. <br />
Актеры устанавливаются в блоке параметров "настройка бонусов".<br />
Каждый актер должен иметь состояние fly.<br />
<br />
5-ый и 6-ой - бонусы в действии . То есть при открытии их на поле будет сразу произведено соответствующее действие.<br />
<br />
Установка самих бонусов происходит в файле уровней с помощью тэга bonus.<br />
<br />
<bonus><br />
type - тип бонуса<br />
3 - добавляет ходы в режиме стратегии<br />
4 - добавляет время в режиме блица<br />
5 - добавляет хинт "сматчить пару"<br />
6 - добавляет хинт "подсветить поле"<br />
7 - бонус в действии: при открытии карты матчится пара<br />
8 - бонус в действии: при открытии такой ячейки все поле подсвечивается на несколько секунд<br />
v - параметр, соответствующий бонусу (кол-во ходов, времени, время подстветки и т.п.)<br />
</bonus><br />
<br />
Пример.<br />
<level id="9" rows="5" cols="3" time="34000" turns="14" frames="7" dup="0" previews="3" <br />
clipImgBg="10767" clipBgs="10776" clipImgs="13447" clipKeys="13450"><br />
<rules><br />
<rule id="0" clipImgBg="10767" clipBgs="10776" clipImgs="13447" clipKeys="13450"/><br />
<rule id="1" clipImgBg="10767" clipBgs="10776" clipImgs="13524" clipKeys="13450"/><br />
<rule id="2" clipImgBg="10767" clipBgs="10776" clipImgs="13451" clipKeys="13452"/><br />
</rules><br />
<bonuses><br />
<bonus type="3" v="2"/><br />
<bonus type="4" v="4"/><br />
</bonuses><br />
</level><br />
<br />
<br />
Для получении количества времени/ходов на стороне редактора после загрузки уровня в объект memory будет записан параметр "bonus_value".<br />
<br />
Пример актера. <br />
<br />
[[Файл:Mem_actor.png]]<br />
<br />
В данном примере в состоянии check мы устанавливаем нужную картинку в зависимости от количества бонусов. Состояние вызывается отдельно при загрузке уровня. В состоянии fly добавляем матчбэтлу количество ходов, считанное из параметра bonus_value. Делаем анимацию.<br />
<br />
==Хинты==<br />
<br />
У memory есть 3 вида хинтов:<br />
* показать пару ячеек - hntt=0<br />
* показать все ячейки - hntt=1<br />
* убрать пару ячеек - hntt=2<br />
<br />
Для активации хинта нужно передать memory соответствующее значение hntt и передать состояние hint.<br />
Также для memory определено состояние skip, при передаче которого игра завершается победой.<br />
<br />
<br />
==Состояния==<br />
<br />
<br />
<br />
ST_BEG = 0, //!< начать игру; может вызываться из других объектов<br />
ST_OPEN, //!< пока ничего, но вдруг захотят свистелок и перделок в начале<br />
ST_RUN, //!< играем<br />
ST_PAUSE, //!< поставить игру на паузу<br />
ST_RESUME, //!< возобновить игру с паузы<br />
ST_HINT, //!< подсказываем<br />
ST_HINT_SHOW_FIELD,<br />
ST_MATCH_PAIR,<br />
ST_SKIP, //!< скипаем<br />
ST_CLOSE, //!< завершаем игру; переходное состояние<br />
ST_END, //!< игра завершена<br />
<br />
== Пример ==<br />
<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample Файл: memory_sample.zip<br />
<br />
[[Category:Game mechanic]]<br />
[[Category:Get Started]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=HiddenList&diff=7197HiddenList2015-09-09T12:56:02Z<p>Aslav: Category:Get Started</p>
<hr />
<div>{{TOC right}}<br />
HiddenList является менеджером поисковых [[Object|объектов]]. На сегодня HiddenList не просто управляет объектами на сцене - он отвечает за все штрафы и поощрения. В связке с такими объектами как [[HiddenHint]] + [[Effect]] HiddenList дает возможность реализовать систему подсказок, а также такие графические эффекты как: "ночь", "трансформация цвета" и т.д. с одним набором графики.<br />
<br />
==Общие параметры==<br />
(см. описание [[Object|Object]])<br />
<br />
[[Файл:HOList_1.jpg|right]]<br />
<br />
*'''имя''' ('' nm '') - Имя объекта HiddenList в дереве проекта. Может быт произвольным.<br />
*'''id-объекта''' - Уникальный номер объекта HiddenList, который можно увидеть в строке "имя" либо при наведении курсора на неё.<br />
*'''синхронизация''' ('' sync '') - Применяется для синхронизации между лейаутами. Если указан параметр "нет", то объект будет активен только на текущем лейауте. По умолчанию указан параметр "да". <br />
*'''сохранение параметров''' ('' sv '') - Настройка этого параметра актуальна, если приложение в дальнейшем будет сворачиваться в системную панель («трей»). Выбирается значение этого параметра из выпадающего списка. Возможны следующие варианты: "нет", "только объект", "объект с подобъектами", "только подобъекты". При выходе из трэя будут восстановлены ранее измененные/установленные (при переходе с одного экрана на другой)параметры объектов или подобъектов в зависимости от выбранного варианта для этого параметра. По умолчанию указан параметр "нет". Следует помнить, что если выбирается для объекта некоторой сцены значения этого параметра отличное от "нет", то должно и предусматриваться соответствующее значение этого параметра и для этой сцены, и для экрана, содержащего эту сцену.<br />
*'''z''' ('' z '') - Параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим.<br />
*'''память''' ('' memo ''):<br />
:'''1''' - при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана);<br />
:'''0''' - обновит свои параметры, при повторном открытии экрана.<br />
*'''группа''' ('' gr '') - Группа, в которую входит текущий объект.<br />
<br />
У листа также есть группы стандартных параметров такие как '''положение''', '''размер''', '''модификаторы'''. Но, по сути, они не важны. Главное, чтобы лист не перекрывал на сцене другие объекты. Поэтому ему лучше находиться за пределами сцены. <br />
<br />
==Основные параметры==<br />
<br />
*'''Картинка''' ('' res '') - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Обычно не используется, а применяется для отображения table;<br><br />
*'''Таблица''' ('' table '') - Объект типа [[table]], который является визуальным отображением списка. '''Должна быть обязательно''';<br><br />
*'''Подсказка''' ('' hint '') — объект типа [[HiddenHint]], который является менеджером хинтов;<br><br />
*'''highlighter''' ('' hl'') — объект типа [[HiddenHighLighter|hiddenhighlighter]], который подсвечивает не найденные объекты.;<br><br />
*'''Счетчик''' ('' hdncnt '') — объект типа [[Counter]], который отображает количество найденных объектов.<br><br />
В самом счетчике в параметрах нужно указать val = 0, поскольку изначально нет найденных объектов;<br />
*'''Таймер''' ('' timer '') — объект типа [[Timer]], который отображает время игры.<br />
При инициализации листа он передаст состояние "start" таймеру.<br />
*'''отладка''' ('' trace'') — Отображать в окне состояний текущий объект.<br />
<br />
<br />
<br />
'''Группа - внешний вид'''<br />
<br />
*'''вычеркнуть''' ('' cross ''):<br />
:'''1''' - найденный объект вычеркивается, оставаясь в списке(таблице);<br />
:'''число''' - найденный объект удаляется из списка;<br />
*'''листать''' ('' scroll '')<br />
:'''1''' - список можно листать (скролировать);<br />
:'''число''' - ищутся только те объекты, которые видны в списке (таблице);<br />
*'''тип списка''' ('' kind '') - Тип поиска объектов:<br />
:'''1''' - слово;<br />
:'''2''' - предложение;<br />
:'''3''' - удаляемая пиктограмма;<br />
:'''4''' - пиктограмма;<br />
:'''5''' - поиск различий.<br />
<br />
<br />
<br />
'''Группа - звуки'''<br />
<br />
*'''обычный''' ('' sndNrm '') - Звук при нахождении обычного [[HiddenObject]].<br />
*'''коллекционный''' ('' sndCol '') - Звук при нахождении коллекционного [[HiddenObject]](объекту должна быть установлена коллекция).<br />
<br />
<br />
<br />
'''Группа - параметры поиска'''<br />
<br />
*'''объектов''' ('' num '') - Максимальное количество доступных для поиска объектов в одной игровой сессии. (ВАЖНО!!! Таблице нужно установить общее количество ячеек равное(или больше) количеству доступных для поиска объектов).<br />
*'''активных объектов''' ('' numact '') - Максимальное количество активных объектов в одной игровой сессии.<br />
*'''видимых объектов''' ('' numvis'') - Максимальное количество видимых объектов в одной игровой сессии.<br />
*'''одного типа''' ('' max ''):<br />
:'''число''' - Максимальное количество объектов одного типа - поле тип в [[hiddenObject]] или хидден объекты с одинаковыми текстовыми ID могут считаться объектами одного типа;<br />
:'''-1''' - игнорируется.<br />
*'''прятать''' ('' hide '') - Делать невидимыми объекты, не участвующие в поиске.<br />
*'''оставлять''' ('' stay '') - Оставлять найденный объект на месте (вызывая только флаеры) при удачном клике.<br />
*'''актёр-иконка''' ('' actorIco '') - если "да", то во время полёта найденного хидден-объекта вместо него летит иконка которая помечена как "main picture" и указана в текстовом id хидден-объекта.<br><br />
*'''актер''' ('' actor '') - машина состояний, которая управляет процессом полета к таблице найденных [[HiddenObject]] .<br />
*'''целевой объект''' (''trg'') - Если задан, [[HiddenObject]] после нахождения летит не в ячейку таблицы, а к нему.<br />
<br />
<br />
<br />
'''Группа - скорость'''<br />
<br />
Отвечают за скорость перемещения найденного объекта.<br />
*'''полета''' ('' vf '') - Скорость полета в пикселях в секунду.<br />
*'''вращения''' ('' vr '') - Скорость вращения в градусах в секунду.<br />
<br />
==Дополнительные параметры==<br />
<br />
*'''скалирование объектов''' ('' scale_object '') - При нахождении во время полета объект будет скалироватся: <br />
:'''0''' - отключено;<br />
:'''1''' - включено.<br />
*'''пропадание объектов''' ('' alpha_object '') - При нахождении во время полета объект будет менять альфу:<br />
:'''0''' - отключено;<br />
:'''1''' - включено.<br />
*'''реагировать на отпускание''' ('' touch_up '') - Объекты связанные с этим хидденлистом будут реагировать на отпускание, а не на нажатие:<br />
:'''0''' - отключено;<br />
:'''1''' - включено (То есть реагировать на четкий клик, если кликнули и сместили область клика объект не реагирует!).<br />
*'''реагировать на finger tap''' ('' finger_tap '') - Объекты, связанные с этим хидденлистом, будут реагировать на отпускание после ожидания даблтача.<br />
*'''задержка срабатывания''' ('' touch_delay '') - только для реакции на нажатие. Время между нажатием и реакцией списка объектов.<br />
*'''объединять одинаковые тексты''' ('' same_txt '') - Объекты с одинаковым текстом будут жить в одной ячейке таблицы с добавлением множителя xN.<br />
:'''0''' - отключено;<br />
:'''1''' - включено.<br />
*'''множитель для иконок''' ('' ico_res '') - Графический ресурс(анимация) для отображения множителя у иконок для типа списка 4(поиск по иконкам) и включенного объединения одинаковых текстов. Первый фрейм - х2, второй - х3 и т.д.<br />
*'''исключать одинаковые тексты''' ('' unTxtID '') - исключает или не исключает из поиска объекты с одинаковыми txtID, используется совместно с '''одного типа'''.<br />
*'''вероятность пассивного предпочитаемого объекта''' ('' prefProb '') - вероятность выпадения пассивного объекта, если у объекта стоит параметр "предпочитаемый" используется при исключении объектов с одинаковыми текстовыми ID.<br />
*'''вероятность активного предпочитаемого объекта''' ('' prefProbAct '') - вероятность выпадения активного объекта, если у объекта стоит параметр "предпочитаемый" используется при исключении объектов с одинаковыми текстовыми ID.<br />
*'''реагировать на невидимые''' ('' canInvis '') - реагировать или нет на объекты, которые в момент игры не видны в таблице. (Кликаются только те [[hiddenObject]] которые отображены в таблице, остальные нет!).<br />
*'''распределять равномерно''' ('' undist '') - Равномерно распределять объекты по площади сцены.<br />
*'''прятать актеров при старте''' ('' hideact '') - Устанавливать актерам видимость false при старте (по умолчанию - да)(То есть всем актерам которые находятся на сцене при запуске принудительно установиться vis = 0).<br />
*'''аномалия''' ('' anom '') - для всех аномалий кроме текстовой [[HiddenObject]] и игровой фон должны быть подобъектами [[Effect]]):<br />
:'''0''' - нет;<br />
:'''1''' - текстовая;<br />
:'''2''' - ночь; В машине которая выставляет эффект ночь, должны передавать сцене с объектом аномалия ( obj="scene"; par="drag"; val="0" ) и ( obj="scene"; st="update");<br />
:'''3''' - трансформация цвета;<br />
:'''4''' - дым.<br />
*'''флурри''' ('' flurry '') - Нужно ли отправлять статистику флурри "regexp=":<br />
:'''0''' - нет;<br />
:'''1''' - да.<br />
*'''вероятность инверсии''' ('' invProb '') - Вероятность того, что сцена будет перевернута по x;<br />
*'''набор''' ('' kit '') - Набор, из которого берутся объекты.<br />
*'''поведение дифференсов''' (''difbeh'') - Поведение найденных объектов в режиме поиск отличий.<br />
<br />
<br />
<br />
'''Группа - появление новых объектов'''<br />
<br />
*'''время''' ('' acttm '') - Время появления объекта (мс);<br />
*'''начальный скейл''' ('' actsc '') - Начальный скейл;<br />
*'''начальная альфа''' ('' actal '') - Начальная альфа.<br />
<br />
<br />
<br />
'''Группа - сессии'''<br />
<br />
*'''сессионность''' ('' ses ''):<br />
:'''0''' - нет;<br />
:'''1''' - да.<br />
*'''ограничение сессий''' ('' sesLim '') - Максимальное количество сессий, в которые можно играть.<br />
*'''набор объектов''' ('' sesSet '') - Набор объектов при заходе в хидден после последней сессии:<br />
:'''0''' - случайный;<br />
:'''1''' - последний фон;<br />
:'''2''' - пустой.<br />
<br />
<br />
<br />
'''Группа - цвета'''<br />
<br />
*'''Цвет обязательных''' ('' c_forced '') — цвет текста для обязательных объектов, указывается код цвета, если строку не заполнять цвет не используется.<br />
*'''Цвет найденных''' ('' c_found '') — цвет текста для найденных объектов, указывается код цвета, если строку не заполнять цвет не используется.<br />
*'''Время перехода''' ('' c_time '') - Время изменения цвета.<br />
<br />
<br />
<br />
'''Группа - время'''<br />
<br />
*'''игры''' ('' tmGm '') - Общее время игры. Если оно истекает, идет переход на экран [время вышло] (см.ниже):<br />
:'''-1''' - игнорируется;<br />
:'''число''' - время игры.<br />
*'''прерывать''' ('' tmInt ''):<br />
:'''1''' - по окончанию времени игра будет прервана;<br />
:'''0''' - по окончанию времени игра продолжится, но переход все равно будет на неудачную ветку.<br />
*'''паузы''' ('' tmWt '') - Время перед закрытием окна после разбора (для осмысления результата);<br />
*'''полета актера''' ('' tmActor '') - Время работы актера, после которого обрабатываются ячейки таблицы;<br />
*'''перед исчезновением''' ('' tmWtHide '') - Время, в течение которого объект остается видимым после обработки.<br />
<br />
<br />
<br />
'''Группа - ошибки'''<br />
<br />
*'''flyer при ошибке''' ('' fl '') - обычно объект типа flyer (летуны которых надо показать в точке клика, если этот клик ошибочный). Можно в принципе любой объект который обладает состоянием "beg". Ошибочный клик - все клики мимо [[hiddenObject]].<br />
*'''вычет времени при ошибке''' ('' tmPen '') - Сколько отнять миллисекунд за ошибочный клик.<br />
<br />
<br />
<br />
'''Группа - переход'''<br />
<br />
*'''при разборе''' ('' scrOk '') - Экран на который надо перейти, если все объекты найдены.<br />
*'''время вышло''' ('' scrOv '') - Экран на который надо перейти если время вышло, а не все объекты найдены.<br />
<br />
<br />
<br />
'''Группа - система очков'''<br />
<br />
*'''Счетчик''' ('' score_counter '') — счетчик, отображающий набранные очки.<br />
*'''счетчик (test)''' ('' score_counter_test '') — счетчик, отображающий набранные очки.<br />
*'''ID пака''' ('' pack_id '') — строковый идентификатор пака(для записи набранных очков в [[options]] должен быть заполнен); используется для вытаскивания суммарных очков в счетчики и дальнейшего их отображения.<br />
*'''ID игры''' ('' game_id '') — строковый идентификатор игры (сцены).<br />
'''Обязательно должен иметь префикс ID пака. Например, если pack_id = "pack1", то game_id = "pack1.game1"'''.<br />
*'''мультипликатор очков''' ('' scoreM '') — Мультипликатор очков за объект, если все собрано за отведенное время.<br />
*'''Очки''' ('' score '') — количество очков, которые даются за каждый найденный [[hiddenObject]].<br />
*'''Бонус за скорость''' ('' bonusS '') — бонус за быстро найденный [[hiddenObject]].<br />
*'''Бонусный интервал''' ('' bonusT '') — время, за которое нужно найти [[hiddenObject]] для получения бонуса.<br />
*'''бонус за время''' ('' bonusTime '') - бонус за оставшееся время игры = коэффициент который введем * оставшееся время таймера.<br />
*'''Бонусный мультипликатор''' ('' grow ''):<br />
:'''1''' - умножать очки за второй быстро найденный предмет на 2, за третий на 3, и т. д.<br />
:'''0''' - не умножать.<br />
*'''Количество кликов для штрафа''' ('' wrngC '') — количество неверных кликов, после которых запустится блокатор (см. ниже).<br />
*'''Интервал для штрафа''' ('' wrngT '') — время, за которое нужно совершить неверные клики.<br />
*'''Штраф (очки)''' ('' delS '') — Сколько отнимаем очков за ошибочный клик.<br />
*'''Штраф (время)''' ('' delT '') — Сколько отнимаем времени за ошибочный клик.<br />
*'''блокатор''' ('' blockImg '') - Объект, блокирующий сцену при серии ошибочных кликов. (Обычно маска растянутая на весь экран. '''ДОЛЖНА иметь состояние "beg"''').<br />
*'''время блокировки''' ('' blockTime '') - Время блокировки при серии ошибочных кликов по истечении переводит "блокатор" в состояние '''end'''.<br />
*'''порог touch move''' ('' mvSens '') - Порог, начиная с которого движение пальца воспринимается как мув и сбрасываются неправильные клики.<br />
*'''touch move как штраф''' ('' tchMvPen '') - Считать ли touch move за ложное попадание:<br />
:'''0''' - нет;<br />
:'''1''' - да.<br />
*'''клик на найденный как штраф''' ('' clkFndPen '') - Считать ли клик на найденный объект за ложное попадание(актуально если объекты остаются на сцене).<br />
*'''аниматор очков''' ('' scoreAnim '') - машина, которая анимирует полученные очки, должна иметь состояние '''anim'''.<br />
*'''коэффициент комбо''' ('' cmbCoef '') - коэффициент для расчёта комбо очков по формуле s(n) = k * n * (n + 1).<br />
*'''счётчик очков за объект''' ('' objScCnt '') - счётчик который показывает очки за последний полученный объект (учитывая бонусы).<br />
*'''счётчик комбо-очков''' ('' cmbScCnt '') - счётчик очков полученных за комбо-серию.<br />
*'''счётчик комбо-серий''' ('' cmbRwCnt '') - счётчик который показывает комбо-серию (комбо из 2-х, 3-х и т.д. найденных объектов).<br />
*'''комбо2 прогресс''' ('' cmb2Pr '') - комбо2 прогресс;<br />
*'''комбо2 время''' ('' cmb2Tm '') - комбо2 время;<br />
*'''комбо2 кол-во''' ('' cmb2Num '') - комбо2 кол-во.<br />
<br />
<br />
<br />
'''Группа - звезды'''<br />
<br />
*'''combo num''' ('' comboNum '') - Количество быстро найденных объектов, нужное для получения звезды Combo.<br />
*'''combo time''' ('' comboInt '') - Интервал между кликами, считающимися быстрыми для Combo.<br />
*'''accuracy''' ('' accuracy '') - Точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные).<br />
*'''лимит ложных кликов''' ('' starWrAcc '') - Лимит ложных кликов.<br />
Формула расчета проста, количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.<br />
<br />
==Состояния==<br />
<br />
Состояния которые есть у листа. Мы можем передавать их с помощью различных объектов:<br />
*'''invert''' - горизонтально отображает изображение;<br />
*'''run''' - переводит хидден с состояние активности, если до этого был на паузе;<br />
*'''pause''' -переводит хидден с состояние паузы, объекты не кликаются!<br />
<br />
==Примечания==<br />
<br />
*HiddenList должен располагаться в дереве проекта ниже всех своих поисковых объектов.<br />
<br />
*Единственный '''обязательный объект''' о котором должен знать лист это [[Table]] для отображения списка поиска, даже если таблица не будет использоваться быть все равно должна!<br />
<br />
*После завершения хидден-игры (по разбору или по времени)при переходе на другой экран HiddenList записывает данные в опции в два места: первое - это то, которое указано у настройках (ID пака, ID уровня, тип списка), для каждой локации свое; а второе - это last_game. <br><br />
Например, <br><br />
'''last_game.time_spent''' (либо же '''pck_N.lvl_N.kind_N.time_spent''') - время последней игры, <br> <br />
'''last_game.clicks''' (либо же '''pck_N.lvl_N.kind_N.clicks''') - количество найденных объектов и т.д. <br><br />
Все их можно увидеть в опциях. last_game был придуман для того, чтобы было удобно задавать счетчики в окне результатов. Также эти данные могут быть сохранены в опциях, если задать листу состояние '''wait'''.<br />
<br />
== Добавляемые параметры ==<br />
<br />
[[Файл:+.png]] '''появляется новый объект: изменить состояние объекта''' ('' actst ''):<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
[[Файл:HOList_3.jpg|right]]<br />
<br />
[[Файл:+.png]] '''разбор: если был экран''' ('' wscrOk '') - При нахождении всех объектов, переходим на определенный экран, если некоторый экран был уже хотя бы раз посещен:<br />
:'''был экран''' ('' was '') - Экран, который мы проверяем на то, был ли он уже открыт хотя бы один раз;<br />
:'''перейти на''' ('' scr '') - Переходим на этот экран, если экран из предыдущего поля уже открывался.<br />
<br />
[[Файл:+.png]] '''разбор: изменить состояние объекта''' ('' nstOk '') - При нахождении всех объектов, перевести объект в новое состояние:<br />
:'''объект''' ('' obj '') - Перевести объект в состояние из следующего поля;<br />
:'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля.<br />
<br />
[[Файл:+.png]] '''разбор: изменить параметр объекта''' ('' chgOk '') - При нахождении всех объектов, изменить параметр объекта:<br />
:'''объект''' ('' obj '') - этот объект меняет свой параметр;<br />
:'''свойство''' ('' par '') - Параметр, который мы изменяем;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
[[Файл:+.png]] '''не успел: если был экран''' ('' wscrOv '') - Если вышло время, а объекты не найдены, переходим на определенный экран, если некоторый экран был уже хотя бы раз посещен:<br />
:'''был экран''' ('' was '') - Экран, который мы проверяем на то, был ли он уже открыт хотя бы один раз;<br />
:'''перейти на''' ('' scr '') - Переходим на этот экран, если экран из предыдущего поля уже открывался.<br />
<br />
[[Файл:+.png]] '''не успел: изменить состояние объекта''' ('' nstOv '') - Если вышло время, а объекты не найдены, перевести объект в новое состояние:<br />
:'''объект''' ('' obj '') - перевести объект в состояние из следующего поля;<br />
:'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля.<br />
<br />
[[Файл:+.png]] '''не успел: изменить параметр объекта''' ('' chgOv '') - Если вышло время, а объекты не найдены, изменить параметр объекта:<br />
:'''объект''' ('' obj '') - этот объект меняет свой параметр;<br />
:'''свойство''' ('' par '')- Параметр, который мы изменяем;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
[[Файл:+.png]] '''счетчик очков''' ('' scoreCnt ''):<br />
:'''счетчик''' ('' cnt '') - Каунтер, которому приходят очки.<br />
<br />
[[Файл:+.png]] '''группа extra bonus''' ('' extraBonus ''). Используется для economics, при нахождении объекта с некой вероятностью может выпасть бонус. Объект который анимирует появление бонуса должен иметь состояние show, время на анимацию бонуса - 10 секунд:<br />
:'''монетки объект''' ('' coinsObj '') - объект который анимирует получение монет;<br />
:'''монетки вероятность''' ('' coinsProb '') - вероятность по нахождению объекта получить дополнительно монетки;<br />
:'''опыт объект''' ('' expObj '') - объект который анимирует получение опыта;<br />
:'''опыт вероятность''' ('' expProb '') - вероятность по нахождению объекта получить дополнительно опыт;<br />
:'''энергия объект''' ('' energyObj '') - объект который анимирует получение энергии;<br />
:'''энергия вероятность''' ('' energyProb '') - вероятность по нахождению объекта получить дополнительно энергию.<br />
<br />
[[Файл:+.png]] '''Объект, который срабатывает, если долго не находить хидден''' ('' notfnd ''):<br />
:'''объект''' ('' obj '') - Объект, который переводится в указанное состояние, если долго не находить хидден;<br />
:'''состояние''' ('' st '') - Состояние, в которое переводится объект;<br />
:'''время''' ('' tm '') - Время от последнего нахождения хиддена, после которого срабатывает объект.<br />
<br />
[[Файл:+.png]] '''параметры аномалии с исчезновением букв''' ('' hlPars ''):<br />
:'''оставшиеся буквы''' ('' min '') - Минимальное количество оставшихся букв в предложении;<br />
:'''задержка''' ('' wait '') - Момент времени, начиная с которого аномалия будет проявляться;<br />
:'''задержка 2''' ('' wait2 '') - Задержка для появившихся слов, изначально недоступных;<br />
:'''время''' ('' time '') - Время, за которое должны исчезнуть все буквы (если -1, то до конца времени в хиддене);<br />
:'''промежутки''' ('' dt '') - промежутки времени между каждой итерацией;<br />
:'''флайер''' ('' fl '') - Флайер, анимирующий исчезающую букву (должен иметь '''текстовый''' тип).<br />
<br />
[[Файл:+.png]] '''параметры аномалии ночь''' ('' nightPars ''): <br />
:'''effect''' ('' ef '') - эффект, управляющий трансформацией цвета;<br />
:'''tag''' ('' eftag '') - Тег эффекта, реализующего ночь.<br />
<br />
[[Файл:+.png]] '''параметры аномалии трансформации цвета''' ('' colInvPars ''):<br />
:'''effect''' ('' ef '') - Эффект, управляющий трансформацией цвета;<br />
:'''tags''' ('' eftags '') - Теги эффектов, реализующих трансформацию цвета, из которых будет выбран один.<br />
<br />
[[Файл:+.png]] '''параметры аномалии дым''' ('' smokePars ''): <br />
:'''effect''' ('' ef '') - Машина, управляющая эффектом дыма;<br />
:'''tag''' ('' eftag '') - Тег эффекта, реализующего дым.<br />
<br />
Все аномалии кроме текстовой должны быть настроены с помощью объекта [[Effect]]<br />
<br />
== Get Started==<br />
Минимальный набор ресурсов:<br />
* Фоновая картинка для поисковой сцены<br />
* Комплект картинок, с которых будут сделаны поисковые [[HiddenObject|объекты]]<br />
* Текстовые объекты для идентификации спрятанных объектов<br />
<br />
Минимальный набор объектов редактора:<br />
* [[Image]] который будет изменен в хидден-лист<br />
* [[Table|Таблица]] в которой будут отображаться тексты/картинки (зависит от режима) спрятанных объектов.<br />
* По одному [[Image]] для каждого спрятанного объекта (будут созданы автоматически при добавлении картинок из базы ресурсов на сцену)<br />
<br />
Наши действия:<br />
# откроем [[Интерфейс_ScenceEditor|редактор сцен]] и создадим новый проект,<br />
# добавим новый экран с именем ''scrHList''<br />
# создадим в этом экране сцену ''stgHList''<br />
# перейдём в [[Интерфейс_ResourceEditor|редактор ресурсов]]<br />
## создаём папку ''HList''<br />
## добавим в ней картинку для фона и картинки для спрятанных объектов.<br />
## выделим все картинки в дереве ресурсов и перенесем их на нашу сцену ''stgHList'', при этом для каждой картинки автоматически создастся объект [[Image]].<br />
## закроем редактор ресурсов<br />
# перейдём в [[Интерфейс_TextEditor|редактор текстов]]<br />
## создаём папку ''HListText''<br />
## добавим в нее текстовые объекты, по одному на каждый поисковый объект.<br />
## сохраним внесенные изменения.<br />
# перейдём в редактор сцен.<br />
# создадим в сцене stgHList объект [[Table]] и назовем его HOT<br />
## настроим размер и положение таблицы, согласно нашего дизайна<br />
## установим параметры колонок = "50", колонок видно = "5", строчек = "5", строчек видно = "1" (таким образом в таблице будут отображаться 5 поисковых предметов, а максимальное количество объектов для поиска будет равно 250)<br />
## установим параметры скорость листания = "650", добавлять по строкам = "0", центрировать = "растянуть", сдвигать ячейки при удалении ="да"<br />
# создадим в сцене stgHList объект '''HiddenList''', напоминаем что его размер и положение на сцене не имеют значения, по этому расположим его где-нибудь за границей экрана. <br>'''Важно''' В дереве проекта хидден-лист должен быть ниже всех своих поисковых объектов.<br />
## в поле таблица указываем нашу HOT<br />
## установим параметр объектов = "10"<br />
## установим параметр пропадание объектов = "да"<br />
## установим параметр реагировать на отпускание = "да"<br />
## установим параметр реагировать на невидимые = "нет"<br />
## установим параметр набор = "1"<br />
# Настроим объекты, которые будут прятаться. Для этого выделим картинки поисковых объектов, добавленные нами ранее, и изменим им тип на "hiddenObject". Оставляя группу этих объектов выделенной, настроим им параметры:<br />
## в поле list укажем наш HiddenList<br />
## параметр набор = "1"<br />
## Теперь снимаем выделение и каждому объекту в поле текстID перетаскиваем мышкой соответствующий текстовый объект из текстовой базы (поле текстID должно быть активно для редактирования - по нему нужно кликнуть мышкой)<br />
# сохраним проект<br />
# запустим [[Интерфейс_Viewer|вьювер]]<br />
<br />
== Пример ==<br />
<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample<br />
<br />
HiddenList.rar<br />
<br />
[[Category:Game mechanic]]<br />
<br />
[[Category:Get Started]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Gem_Slider&diff=7195Gem Slider2015-09-04T07:56:42Z<p>Aslav: Category:Game mechanic</p>
<hr />
<div>Цель игры в '''Gem Slider''' - очистить игровое поле от разноцветных драгоценных камней. Чтобы сделать это - вам нужно собрать вместе 3 и больше камней одного цвета. Ход - это клик на нужном камне на периметре поля.<br />
== Общие настройки ==<br />
*'''res''' - Графичесий ресурс ячейки поля.<br />
*'''скорость полета''' - Скорость полета камня в пискелях.<br />
*'''скорость появления''' - Скорость появления камня на поле.<br />
*'''flyer на бортике''' - Объект типа Flyer, который работает, когда камень на бортике.<br />
*'''flyer при матче''' - Объект типа Flyer, который сработает при матче.<br />
*'''flyer при движении''' - Объект типа Flyer, который сработает, когда камень начнет движение.<br />
*'''flyer при разлочке''' - Объект типа Flyer, который сработает, когда камень разлочится.<br />
*'''звук при вылете''' - Звук, который сработает, когда камень начнет движение.<br />
*'''звук при столкновении''' - Звук, который сработает при столкновении.<br />
*'''звук при матче''' - Звук, который сработает при матче.<br />
*'''серый камень''' - Графический ресурс для специального серого камня. Он неподвижен. Становится цветным при столкновении с другим камнем.<br />
*'''мин. цепочка''' - Минимальное количество элементов, которые образуют матч.<br />
*'''ходов до генерации''' - Количество нерезультативных ходов, после которых на поле генерируются новые элементы.<br />
*'''счетчик очков''' - Счетчик, объект типа Counter, в который будут выводиться заработанные очки.<br />
*'''прогресс неудач''' - Прогрессбар, объект типа Progressbar, заполняющийся с каждым нерезультативным ходом.<br />
*'''battle''' - Объект типа Matchbattle, связанный баттл. Используется для связи механики с экономикой.<br />
*'''файл уровня''' - Имя файла уровня.<br />
*'''номер уровня''' - Номер уровня.<br />
<br />
== Группа - Цвет 1 ==<br />
*'''ресурс''' - Графический ресурс 1го элемента.<br />
*'''ресурс залоченный''' - Графический ресурс для залоченного 1го элемента.<br />
*'''ресурс сильно залоченный''' - Графический ресурс для залоченного 1го элемента.<br />
*'''ресурс при движении''' - Графический ресурс 1го элемента при движении.<br />
<br />
Для группы '''"Цвет 2"''' всё аналогично.<br><br />
В игре может использоваться от 2 до 9 цветов (элементов). 3-9 цвет (элемент) устанавливается добавляемым параметром '''"дополнительный цвет"'''.<br />
<br />
== Бонусы ==<br />
<br />
Обычные бонусы генерятся только на бортиках в случае выполнения необходимых уловий. К обычным бонусам относится: бомба, плитка и удалятор. Чтобы его использовать, нужно кликнуть по нужному бонусу по периметру поля.<br><br />
<br />
'''Бонус бомба''' - генерится при матче 4 камней. Удаляет те элементы, на которые попадает.<br />
*'''ресурс бомбы''' - Графический ресурс для бонуса бомба.<br />
*'''ресурс двигающейся бомбы''' - Графический ресурс для бонуса бомба в движении.<br />
*'''flyer на бортике''' - Объект типа Flyer, который работает, когда бонус на бортике.<br />
*'''flyer при матче''' - Объект типа Flyer, который сработает при матче.<br />
*'''flyer при движении''' - Объект типа Flyer, который работает, когда бонус движется.<br />
*'''звук при вылете''' - Звук, который сработает, когда бонус начнет движение.<br />
*'''звук при столкновении''' - Звук, который сработает при столкновении.<br />
*'''звук при матче''' - Звук, который сработает при матче.<br />
*'''звук на бортике''' - Звук, который работает, когда бонус на бортике.<br />
<br />
<br />
'''Бонус плитка''' - плитка генерится при матче 5 элементов. Он восстанавливает ячйки на своем пути.<br />
*'''ресурс плитки''' - Графический ресурс для бонуса плитка.<br />
*'''ресурс двигающейся плитки''' - Графический ресурс для бонуса плитка в движении.<br />
*'''flyer на бортике''' - Объект типа Flyer, который работает, когда бонус плитка на бортике.<br />
*'''flyer при матче''' - Объект типа Flyer, который сработает при матче.<br />
*'''flyer при движении''' - Объект типа Flyer, который работает, когда бонус движется.<br />
*'''звук при вылете''' - Звук, который сработает, когда бонус плитка начнет движение.<br />
*'''звук при столкновении''' - Звук, который сработает при столкновении.<br />
*'''звук при матче''' - Звук, который сработает при матче.<br />
*'''звук на бортике''' - Звук, который работает, когда бонус плитка на бортике.<br />
<br />
<br />
'''Бонус удалятор''' - генерится при матче 6 и более элементов. Он уничтожает все элементы на своем пути.<br />
*'''ресурс удалятора''' - Графический ресурс для бонуса удалятор.<br />
*'''ресурс двигающегося удалятора''' - Графический ресурс для бонуса удалятор в движении.<br />
*'''flyer на бортике''' - Объект типа Flyer, который работает, когда бонус удалятор на бортике.<br />
*'''flyer при матче''' - Объект типа Flyer, который сработает при матче.<br />
*'''flyer при движении''' - Объект типа Flyer, который работает, когда бонус движется.<br />
*'''звук при вылете''' - Звук, который сработает, когда бонус удалятор начнет движение.<br />
*'''звук при столкновении''' - Звук, который сработает при столкновении.<br />
*'''звук при матче''' - Звук, который сработает при матче.<br />
*'''звук на бортике''' - Звук, который работает, когда бонус удалятор на бортике. <br />
<br />
== Покупные бонусы ==<br />
<br />
Покупные бонусы не генерятся на бортиках. Применяются только "по кнопке".<br />
<br />
*'''ресурс убрать залочку''' - Графический ресурс для бонуса убрать залочку.<br />
*'''flyer убрать залочку''' - Flyer при срабатывании бонуса убрать залочку.<br />
*'''звук убрать залочку''' - Звук при срабатывании бонуса убрать залочку.<br />
<br />
<br />
*'''ресурс крест-бомба''' - Графический ресурс для бонуса крест-бомба.<br />
*'''ресурс движения крест-бомба''' - Графический ресурс для двигающегося бонуса крест-бомба.<br />
*'''ресурс срабатывания крест-бомба''' - Графический ресурс для срабатывающегося бонуса крест-бомба.<br />
*'''flyer крест-бомба''' - Flyer при срабатывании бонуса крест-бомба.<br />
*'''звук крест-бомба''' - Звук при срабатывании бонуса крест-бомба.<br />
<br />
<br />
*'''ресурс спрей''' - Графический ресурс для бонуса спрей.<br />
*'''flyer спрей''' - Flyer при срабатывании бонуса спрей.<br />
*'''звук спрей''' - Звук при срабатывании бонуса спрей.<br />
<br />
<br />
*'''ресурс кирка''' - Графический ресурс для бонуса кирка.<br />
*'''flyer кирка''' - Flyer при срабатывании бонуса кирка. <br />
*'''звук кирка''' - Звук при срабатывании бонуса кирка.<br />
<br />
<br />
*'''flyer при срабатывании''' - Flyer при срабатывании любого покупного бонуса. Может быть машина с состоянием beg.<br />
*'''звук при срабатывании''' - Звук при срабатывании любого покупного бонуса.<br />
*'''flyer при неверном размещении''' - Flyer при некорректном размещении покупного бонуса. Может быть машина с состоянием beg. <br />
*'''звук при неверном размещении''' - Звук при некорректном размещении покупного бонуса.<br />
*'''flyer при глупости''' - Flyer при бессмысленном размещении покупного бонуса. Может быть машина с состоянием beg.<br />
*'''звук при глупости''' - Звук при бессмысленном размещении покупного бонуса.<br />
<br />
== Группа - Параметры поля ==<br />
*'''колонок''' - Ширина игрового поля.<br />
*'''строк''' - Высота игрового поля.<br />
<br />
== Группа - Очки ==<br />
*'''камень''' - Сколько очков будет начислено за каждый сматченный элемент.<br />
*'''мегаматч''' - Сколько очков будет начислено за каждый сматченный элемент.<br />
*'''оставшиеся ходы''' - Сколько очков будет начислено за каждый сматченный элемент.<br />
*'''оставшееся время''' - Сколько очков будет начислено за каждый сматченный элемент.<br />
*'''разлочка''' - Сколько очков будет начислено за каждый разлоченный элемент.<br />
*'''покраска серого''' - Сколько очков будет начислено за каждый покрашенный серый камень.<br />
*'''коэффициент комбо''' - Значение, которое масшабирует очки комбо.<br />
*'''время на комбо''' - Время, которое дается на выполнение комбо.<br />
<br />
== Добавляемые параметры ==<br />
<br />
[[Файл:+.png]] ''добавить ресурс для цвета'' <br><br />
*'''res'''('' res '') - Графический ресурс с цветом элемента.<br />
*'''ресурс залоченный''' ('' res_locked '') - Графический ресурс с залоченным элементом этого цвета.<br />
*'''ресурс сильно залоченный''' ('' res_locked_2 '') - Графический ресурс с сильно залоченным элементом этого цвета.<br />
<br />
[[Файл:+.png]] ''ход завершен: изменить свойство (параметр) объекта''<br><br />
*'''объект''' ('' obj '') - После события этот объект меняет значение своего параметра.<br />
*'''свойство''' ('' par '') - Параметр, который изменяем.<br />
*'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
[[Файл:+.png]] ''ход завершен: изменить состояние объекта''<br><br />
*'''объект''' ('' obj '') - После события этот объект меняет состояние.<br />
*'''состояние''' ('' st '') - Новое сотояние.<br />
<br />
;Аналогично предыдущем двум:<br />
<br />
:[[Файл:+.png]] ''победа: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''победа: изменить состояние объекта''<br />
:[[Файл:+.png]] ''поражение: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''поражение: изменить состояние объекта''<br />
:[[Файл:+.png]] ''удалён цвет: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''удалён цвет: изменить состояние объекта''<br />
:[[Файл:+.png]] ''произошло досыпание: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''произошло досыпание: изменить состояние объекта''<br />
:[[Файл:+.png]] ''собрана бомба: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''собрана бомба: изменить состояние объекта''<br />
:[[Файл:+.png]] ''собрана плитка: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''собрана плитка: изменить состояние объекта''<br />
:[[Файл:+.png]] ''собран удалятор: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''собран удалятор: изменить состояние объекта''<br />
:[[Файл:+.png]] ''изменился цвет верхнего бортика: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''изменился цвет верхнего бортика: изменить состояние объекта''<br />
:[[Файл:+.png]] ''изменился цвет нижнего бортика: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''изменился цвет нижнего бортика: изменить состояние объекта''<br />
:[[Файл:+.png]] ''изменился цвет правого бортика: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''изменился цвет правого бортика: изменить состояние объекта''<br />
:[[Файл:+.png]] ''изменился цвет левого бортика: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''изменился цвет левого бортика: изменить состояние объекта''<br />
:[[Файл:+.png]] ''установлен бонус с панели: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''установлен бонус с панели: изменить состояние объекта''<br />
:[[Файл:+.png]] ''установка бонуса тщетна: изменить свойство (параметр) объекта''<br />
:[[Файл:+.png]] ''установка бонуса тщетна: изменить состояние объекта''<br />
<br />
<br />
[[Category:Game mechanic]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Economics&diff=7194Economics2015-09-04T07:49:28Z<p>Aslav: /* Свойства */</p>
<hr />
<div>[[Object|Объект]] '''Economics''' служит для реализации сложной игровой механики типа "ферма". Он осуществляет связь между игровыми локациями, накопленным опытом, текущим количеством энергии, денег и кристаллов (можно использовать и другие названия ресурсов), а также управляет объектами коллекций, магазина, инвентаря и игровых заданий.<br />
<br />
= Свойства =<br />
<br />
*'''предметы''' - Объект типа [[eitems]].<br />
*'''задачи''' - Объект типа [[taskorganizer]].<br />
<br />
==Параметры==<br />
===Основные параметры===<br />
<br />
*'''Сдвиг уровней''' ( ''levels_shift'' ) - число на которое сдвинется анлок уровней в economics setup; после задания параметра нужно проинитить экономику;<br />
*'''Уровни''' - опыт, необходимый для перехода на следующий уровень. Последовательность чисел через запятую.<br />
*'''Уровни парабола''' - Три числа через запятую, задающие коэффициенты параболы, которые определяют необходимый опыт после уже перечисленных уровней.<br />
*'''Энергия''' - максимум энергии на каждом из уровней. Последовательность чисел через запятую. Последнее значение будет зациклено для всех последующих уровней.<br />
*'''Энергия прибавка''' - Число определяющее прибавку к максимуму энергии после уже перечисленных уровней.<br />
*'''Ресурс 1''' - количество ресурса 1 добавляемое за уровень. Последовательность чисел через запятую. Последнее значение будет зациклено для всех последующих уровней.<br />
*'''Ресурс 2''' - количество ресурса 2 добавляемое за уровень. Последовательность чисел через запятую. Последнее значение будет зациклено для всех последующих уровней.<br />
*'''Перезарядка''' - время за которое восстанавливается единица энергии в ms.<br />
*'''нач. ресурс 1''' - Начальное значение ресурса 1.<br />
*'''нач. ресурс 2''' - Начальное значение ресурса 2.<br />
*'''время напоминания''' - время напоминания о задачах на каждом из уровней. Записывается в виде последовательности чисел через запятую. Последнее значение будет зациклено для всех последующих уровней. Время изменяется в часах.<br />
*'''напоминание об энергии''' - уведомление перетаскивается с текстового редактора, представляет собой напоминание о том что энергия восстановилась. Например, "Ваше энергия полностью восстановлена".<br />
*'''опции для facebook''' - поле в опциях, куда мы будем записывать 32 битное целое: Уровень + Коллекции.ESocial добавит к ним число друзей и засабмит при вызове соотв. состояние<br />
<br />
===Основные счетчики===<br />
Этот раздел содержит необходимые объекты для подсчета (counter, timer, progressbar).<br />
<br />
*'''Уровень''' - счетчик текущего уровня игрока.<br />
*'''Прогресс в уровне (счетчик)''' - Набранный на этом уровне опыт и остаток до следующего уровня (счетчик).<br />
*'''Прогресс в уровне (бар)''' - Набранный на этом уровне опыт и остаток до следующего уровня (прогрессбар).<br />
*'''Опыта до уровня''' - счетчик показывающий сколько опыта необходимо для перехода с текущего уровня на следующий.<br />
*'''Текущая энергия''' - прогрессбар текущей энергии.<br />
*'''Максимальная энергия''' - счетчик, который отображает значение максимальной энергии.<br />
*'''Таймер энергии''' - таймер отображающий время до восстановления единицы энергии.<br />
*'''Таймер всей энергии''' - таймер, который отображает время до восстановления всей энергии.<br />
*'''Ресурс 1''' - счетчик первого ресурса (денег).<br />
*'''Ресурс 2''' - счетчик второго ресурса (кристаллов).<br />
*'''анимация рес.1''' - Анимационный объект награды в ресурсе 1. Должен иметь состояние show.<br />
*'''анимация рес.2''' - Анимационный объект награды в ресурсе 2. Должен иметь состояние show.<br />
*'''анимация опыт''' - Анимационный объект награды в опыте. Должен иметь состояние show.<br />
<br />
===Окно перед локацией===<br />
Настройка окна, которое всплывает перед посещением локации. В этом окне отображается информация о локации которую мы хотим посетить.<br />
<br />
*'''Окно''' - некая машина, олицетворяющая собой само окно превью. Должна иметь состояния ''open'' - открыта, ''open_lvl'' - не хватает лвл, ''open_buy'' - разница в уровнях позволяет нам купить анлок, ''open_item'' - не хватает предмета для анлока, ''open_unlock'' - состояние вызываемое окну перед локацией после успешной покупки предмета для анлока, ''open_energy'' - состояние вызываемое окну перед локацией в случае нехватки энергии.<br />
*'''Превью локации''' - графический ресурс для отображения превью локации. В это поле можно поставить любую картинку для того, чтобы корректно разместить ее в "окне перед локацией". Далее экономикс сам будет подставлять нужные превью.<br />
*'''Название локации''' - текстовый объект, в который будет подставляться название локации.<br />
*'''Описание локации''' - текстовый объект, в который будет подставляться описание локации.<br />
*'''Уровень мастерства''' - счетчик уровня мастерства.<br />
*'''Прогрессбар уровня мастерства''' - прогрессбар, который отображает уровень мастерства.<br />
*'''Текущий уровень''' - счетчик текущего уровня мастерства.<br />
*'''Необходимая энергия''' - счетчик необходимой энергии.<br />
*'''Аномальная энергия''' - счетчик, который отображает дополнительную энергию при наличии аномалии в локации.<br />
*'''Призовой ресурс 1''' - счетчик призовых денег.<br />
*'''Аномальный ресурс 1''' - счетчик, который отображает количество дополнительных призовых денег, которые даются за игру в локацию с наличием аномалии.<br />
*'''Призовой ресурс 2''' - счетчик призовых кристаллов.<br />
*'''Призовой опыт''' - счетчик призового опыта.<br />
*'''Аномальный опыт''' - счетчик, который отображает значение дополнительного опыта, который дается за игру в локацию с наличием аномалии.<br />
*'''Таблица коллекции''' - таблица, в которой будут отображаться предметы, которые можно найти в данной локации.<br />
<br />
''для закрытой по уровню локации''<br />
*'''Режим игры''' - машина, которой будут устанавливаться состояния в зависимости от режима игры (может быть смешанный, текст или силуэт). TODO пока обладает только режимом text и icon. Эта машина будет передавать настройки таблице, в которую помещаются поисковые объекты, поэтому важно, чтобы к этой таблице был доступ (например она может находится на глобальном экране).<br />
<br />
*'''индикатор уровня''' - счетчик с необходимым для локации уровнем.<br />
<br />
''для локации c ценой''<br />
<br />
*'''цена ресурс 1''' - Стоимость анлока локации в ресурсе 1.<br />
*'''цена ресурс 2''' - Стоимость анлока локации в ресурсе 2.<br />
<br />
''для локации c требуемым предметом''<br />
<br />
*'''предмет''' - иконка необходимого для локации предмета.<br />
*'''название предмета''' - в этом поле указывается название, необходимого для локации предмета.<br />
*'''счетчик цены''' - счетчик, который отображает стоимость предмета.<br />
*'''иконка цены''' - иконка цены предмета, представляет собой картинку, которая перетаскивается из базы ресурсов.<br />
*'''кнопка купить''' - Будет видна, если предмет нужно купить. Передает экономиксу состояние unlock_item.<br />
*'''кнопка искать''' - Будет видна, если предмет поисковый.<br />
*'''блок аномалии''' - контейнер, представляющий собой машину, которая содержит всю информацию про аномалию. Должна содержать в себе состояния hide, show и remov (состояние после прогона аномалии, чтобы сделать красивые эффекты, после которого машина попадет в состояние hide).<br />
*'''иконка аномалии''' - иконка аномалии.<br />
*'''название аномалии''' - текстовый объект, который будет отображать название аномалии.<br />
*'''описание аномалии''' - текстовый объект, который будет отображать описание аномалии.<br />
*'''иконка предмета''' - иконка предмета, необходимого для того что бы прогнать аномалию.<br />
*'''кнопка прогнать предметом''' - кнопка по нажатию которой, можно прогнать аномалию используя предмет.<br />
*'''кнопка купить предмет''' - кнопка по нажатию которой, можно купить предмет для прогона аномалии.<br />
*'''кнопка прогнать миниигрой''' - кнопка по нажатию которой, можно прогнать аномалию мини игрой.<br />
*'''корневой объект''' - некая машина, олицетворяющая собой блок перехода в связанную локацию. Должно иметь состояния enable и disable.<br />
*'''таблица артефактов''' - в таблицу будут сложены предметы, необходимы для переключения локации.<br />
*'''галочка в таблице''' - графический ресурс поверх найденных предметов.<br />
*'''иконка ключа''' - сюда сложим иконку предмета необходимого для переключения на альтернативную локацию.<br />
<br />
===Окно после локации===<br />
<br />
Настройка окна, которое всплывает после посещения локации. В этом окне отображается информация о полученных очках и предметах за исследование локации.<br />
<br />
*'''Окно''' - некая машина, олицетворяющая собой само окно превью. Должна иметь состояние ''open''.<br />
*'''Название локации''' - текстовый объект, в который будет подставляться название локации.<br />
*'''Описание локации''' - текстовый объект, в который будет подставляться описание локации.<br />
*'''Уровень мастерства''' - счетчик уровня мастерства.<br />
*'''Прогрессбар мастерства''' - прогрессбар, который отображает уровень мастерства.<br />
*'''Текущий уровень''' - счетчик текущего уровня мастерства.<br />
*'''Призовой ресурс 1''' - счетчик призовых денег.<br />
*'''Аномальный ресурс 1''' - счетчик, который отображает количество дополнительных денег за прохождение локации с аномалией.<br />
*'''Призовой ресурс 2''' - счетчик призовых кристаллов.<br />
*'''Призовой опыт''' - счетчик призового опыта.<br />
*'''Аномальный опыт''' - счетчик, отображающий дополнительный призовой опыт, который дается за прохождение локации с аномалией.<br />
*'''Таблица коллекции''' - таблица, в которой будут отображаться предметы, которые можно найти в данной локации.<br />
*'''ничего не найдено''' - Любой объект, так или иначе сообщающий игроку, что он не нашел ничего ценного.<br />
<br />
===Окно перед монстром===<br />
*'''окно''' - некая машина, олицетворяющая собой само окно превью. Должна иметь состояние open - все условия выполнены, open_energy - не хватает энергии для игры, но предмет для прогона есть, open_item - есть энергия, но не хватает предмета для прогона, open_item_energy - не хватает энергии для игры и нет предмета для прогона.<br />
*'''превью монстра ''' - картинка, отображающая превью монстра.<br />
*'''название монстра''' - текстовый объект, показывающий название монстра.<br />
*'''описание монстра''' - текстовый объект, показывающий описание монстра.<br />
*'''необходимая энергия''' - счетчик, отображающий количество необходимой энергии.<br />
*'''призовой ресурс 1''' - счетчик, отображающий количество призовых денег.<br />
*'''призовой опыт''' - счетчик, отображающий количество призового опыта.<br />
*'''таблица коллекции''' - таблица, в которой будут отображаться предметы, которые можно отжать у данного монстра.<br />
*'''иконка предмета''' - картинка, которая отображает предмет необходимый для игры с монстром.<br />
*'''нужно предметов''' - счетчик, который отображает необходимое количество предметов.<br />
*'''есть предметов''' - счетчик, который отображает текущее количество предметов, находящееся в наличии.<br />
*'''суммарная стоимость''' - счетчик, который отображает суммарную стоимость недостающих предметов.<br />
*'''кнопка купить''' - кнопка, по нажатию которой, происходит покупка недостающих предметов.<br />
*'''кнопка прогнать''' - кнопка, по нажатию которой, можно прогнать монстра не играя в игру, эту кнопку можно не задавать.<br />
<br />
===Окно после монстра===<br />
<br />
*'''окно''' - некая машина, олицетворяющая собой само окно превью. Должна иметь состояние open.<br />
*'''превью монстра''' - картинка, отображающая превью монстра.<br />
*'''название монстра''' - текстовый объект, показывающий название монстра.<br />
*'''описание монстра''' - текстовый объект, показывающий описание монстра.<br />
*'''призовой ресурс 1''' - счетчик, отображающий количество призовых денег.<br />
*'''призовой опыт''' - счетчик, отображающий количество призового опыта.<br />
*'''таблица коллекции''' - таблица, в которой будут отображаться предметы, которые можно отжать у данного монстра.<br />
*'''ничего не найдено''' - любой объект, сообщающий игроку, так или иначе, что он не нашел ничего ценного на данной локации.<br />
<br />
===Окно коллекций===<br />
<br />
*'''Шаблон коллекции''' - ссылка на объект типа ecollection который будет использоваться в качестве исходного для всех коллекций.<br />
*'''Таблица''' - таблица, куда по ссылке будут добавлены шаблоны коллекции.<br />
*'''алерт''' - некая машина, олицетворяющая собой само окно предмета. Должна иметь состояние open. Окно с информацией о предмете всплывает в окне с коллекциями.<br />
*'''иконка''' - Иконка предмета.<br />
*'''текст (объект)''' - Текстовый объект в окошке.<br />
*'''описание (объект)''' - Текстовый объект в окошке, в который сложим описание предмета.<br />
*'''имя коллекции (объект)''' - В это поле будет записано имя коллекции, к которой относится предмет.<br />
*'''цифры''' - фреймовая анимация содержащая в себе цифры. Последний фрейм анимации - отметка много.<br />
<br />
===Окошко коллекционного предмета===<br />
<br />
*'''окно''' - Некая машина, олицетворяющая собой само окно предмета. Должна иметь состояние open. Окошко всплывает при клике на предмет в таблице окна перед/после локации.<br />
*'''иконка''' - Иконка предмета.<br />
*'''текст (объект)''' - Текстовый объект в окошке.<br />
*'''описание (объект)''' - Текстовый объект в окошке, в который сложим описание предмета.<br />
*'''имя коллекции (объект)''' - В это поле будет записано имя коллекции, к которой относится предмет.<br />
<br />
===Окошко поздравления со сдачей коллекции===<br />
<br />
*'''окно''' - некая машина,содержащая необходимую информацию, олицетворяющая само окно предмета. Должна иметь в себе состояние open.<br />
*'''иконка''' - картинка отображающая иконку предмета-награды ( в параметр reward_text_id - запишется текстовый ID итогового предмета из текстовой базы);<br />
*'''текст(объект)''' - текстовый объект, отображающий название коллекции.<br />
*'''призовой ресурс 1''' - счетчик, отображающий количество призовых денег.<br />
*'''призовой опыт''' - счетчик, отображающий количество призовых денег.<br />
<br />
===Окошко инвентарного предмета===<br />
<br />
*'''окно''' - Некая машина, олицетворяющая собой само окно предмета. Должна иметь состояние open. Окошко всплывает при клике на предмет в таблице окна перед/после локации.<br />
*'''иконка''' - Иконка предмета.<br />
*'''текст (объект)''' - Текстовый объект в окошке.<br />
*'''описание (объект)''' - Текстовый объект в окошке, в который сложим описание предмета.<br />
<br />
===Окошко поздравления с получением уровня===<br />
<br />
*'''окно''' - некая машина, содержащая необходимую информацию, олицетворяющая собой само окно предмета. Должна иметь состояние open.<br />
*'''уровень''' - счетчик, отображающий номер полученного уровня.<br />
*'''энергия''' - счетчик, отображающий количество энергии, которая прибавляется к максимуму.<br />
*'''ресурс 1''' - счетчик, отображающий количество денег.<br />
*'''ресурс 2''' - счетчик, отображающий количество кристаллов.<br />
<br />
===Окошко поздравления с получением уровня и открытием локации===<br />
<br />
<br />
*'''окно''' - некая машина, содержащая необходимую информацию, олицетворяющая собой само поздравительное окошко. Должна иметь состояние open.<br />
<br />
*'''уровень''' - счетчик, отображающий номер полученного уровня.<br />
<br />
*'''энергия''' - счетчик, отображающий количество энергии, которая прибавляется к максимуму.<br />
<br />
*'''ресурс 1''' - счетчик, отображающий количество денег.<br />
<br />
*'''ресурс 2''' - счетчик, отображающий количество кристаллов.<br />
<br />
*'''иконка локации''' - картинка, отображающая иконку локации, которая стала доступна<br />
<br />
*'''описание локации''' - текстовый объект, который отображает описание локации, которая стала доступна.<br />
<br />
===Окошко получения уровня на локации===<br />
<br />
*'''окно''' - некая машина, содержащая необходимую информацию, олицетворяющая собой само поздравительное окошко. Должна иметь состояние open.<br />
*'''спецпредмет''' - объект, в который положится иконка коллекционного предмета, полученного за достижение очередного уровня мастерства на локации (настройки предмета в уровнях мастерства).<br />
*'''опции''' - поле в опциях, в которое записывается уровень по локации.<br />
<br />
===Окошко, когда не хватает чарджера (общее) ===<br />
<br />
*'''окно''' - некая машина, содержащая необходимую информацию, олицетворяющая собой само уведомительное окошко. Должна иметь состояние open.<br />
*'''иконка''' - картинка, отображающая иконку предмета, который игрок получит за сдачу коллекции.<br />
*'''текст''' - текстовый объект, который будет отображать описание коллекции.<br />
*'''суммарная цена ресурса 1''' - счетчик, отображающий суммарную цену всех необходимых чарджеров, представлена в виде ресурса 1 (деньги).<br />
*'''суммарная цена ресурса 2''' - счетчик, отображающий суммарную цену всех необходимых чарджеров, представлена в виде ресурса 2 (кристаллы).<br />
*'''кнопка купить все''' - кнопка, по нажатию которой, происходит покупка необходимых предметов. Если в кнопке есть необходимость она будет появляться, в противном случае - сама исчезать.<br />
<br />
===Окошко, которое выезжает когда найден коллекционный предмет ===<br />
<br />
*'''окно''' - некая машина, содержащая необходимую информацию, олицетворяет собой само поздравительное окошко. Должна иметь состояние show.<br />
*'''текст''' - текстовый объект, который используется для отображения названия коллекции.<br />
*'''таблица''' - таблица, в которую складываются объекты коллекции.<br />
<br />
===Окошко покупки артефакта===<br />
<br />
Кратко об артефактах. Артефакты это инвентарные предметы, которые можно найти либо купить. Они необходимы для того, чтобы была возможность играть в связанную локацию. Связанная локация - локация, которая имеет свой уникальный порядковый номер в списке локаций, но тем не менее логически привязана к локации с другим порядковым номером. Когда все артефакты, необходимые для игры в связанную локацию собраны, то при вызове состояния ''location'' объекту economics локация выбирается случайным образом между оригинальной и связанной. При этом есть возможность сменить локацию (ротация между оригинальной и связанной локацией) вызвав состояние ''location_switch''. Чтобы сменить локацию нужен предмет, который перетаскивается в поле "предмет переключения" настроек локации.<br />
<br />
*'''окно''' - Некая машина, олицетворяющая собой само окошко покупки. Должна иметь состояние show<br />
*'''таблица''' - Таблица должна иметь две строки и заполнение по столбцам. В верхнюю попадут иконки артефактов, в нижнюю - кнопки купить<br />
*'''кнопка 1''' - Купить артефакт. Должна в param2 - номер артефекта и вызывать состояние экономике buy_artefact<br />
*'''кнопка 2''' - Купить артефакт. Должна в param2 - номер артефекта и вызывать состояние экономике buy_artefact<br />
*'''кнопка 3''' - Купить артефакт. Должна в param2 - номер артефекта и вызывать состояние экономике buy_artefact<br />
*'''кнопка 4''' - Купить артефакт. Должна в param2 - номер артефекта и вызывать состояние экономике buy_artefact<br />
<br />
===Дополнительные достижения ===<br />
<br />
В этом разделе указаны некоторые достижение, которые отправляются объектом economics в gamecenter.<br />
<br />
*'''достижение на трату ресурса 1''' - id достижения, отправляемого за трату ресурса 1 (когда игрок потратит сумму ресурса из следующего поля отправляется достижение 100%).<br />
*'''количество ресурса 1''' - сумма ресурса 1, которую необходимо потратить для получения достижения.<br />
*'''достижение на трату ресурса 2''' - id достижения, отправляемого за трату ресурса 2 (когда игрок потратит сумму ресурса из следующего поля отправляется достижение 100%).<br />
*'''количество ресурса 2''' - сумма ресурса 2, которую необходимо потратить для получения достижения.<br />
*'''достижение на число открытых локаций''' - id достижения, отправляемого за открытия количества локаций из следующего поля (при открытии нужного количества локаций отправляется 100% достижения).<br />
*'''количество локаций''' - кол-во локаций, которое необходимо открыть для получения достижения.<br />
*'''достижение за покупки чего-либо''' - id достижения, отправляемого за совершенное количество покупок из следующего поля (при покупке нужного количества отправляется 100% достижения).<br />
*'''количество покупок''' - количество покупок, которое необходимо свершить для получения достижения.<br />
<br />
===Покупка рандомного предмета===<br />
<br />
При вызове объекту economics состояния ''buy_random_col'' покупается случайный коллекционный предмет. Визуализацией покупки служит выпадающий на сцену объект из вкладки настроек "Летающий объект"<br />
<br />
*'''res1''' - цена предмета в ресурсе 1.<br />
*'''исключения''' - id предметов, которые не попадут в случайный выбор. Перетаскиваются из текстовой базы.<br />
*'''каунтер''' - объект типа counter в который сложится цена предмета.<br />
<br />
=== Настройки симуляции ===<br />
<br />
*'''время''' - время симуляции, измеряется в секундах.<br />
<br />
*'''минимум в локации''' - нижняя граница диапазона времени проводимого игроком в хиддене. Отображается в виде доли от времени из настроек локации.<br />
<br />
*'''максимум в локации''' - верхняя граница диапазона времени проводимого игроком в хиддене. Отображается в виде доли от времени из настроек локации.<br />
*'''порог покупки''' - число, указывающее какую долю, от ресурсов игрока, должна составлять цена локации, что бы он решился её купить.<br />
*'''порог покупки предмета''' - число, указывающее какую долю,от ресурсов игрока, должна составлять цена предмета, что бы он решился его купить.<br />
*'''вероятность задачи''' - число, отображающее вероятность того, что симуляция будет выбирать не из всех доступных локаций, а из связанных с заданиями.<br />
*'''вероятность матча''' - число, отображающее вероятность того, что симуляция будет играть в матч.<br />
*'''изначально хинтов''' - изначальное количество хинтов.<br />
*'''предметов на хинт''' - на сколько найденных предметов игрок израсходует хинт.<br />
*'''цена хинта монеты''' - сколько монет (ресурс 1), стоит некий усредненный хинт.<br />
*'''цена хинта кристаллы''' - сколько кристаллов (ресурс 2), стоит некий усредненный хинт.<br />
*'''хидденов подряд''' - игрок будет пытаться пройти не менее данного числа хидденов подряд.<br />
*'''восстановить энергии''' - некое усредненное количество энергии для восстановления.<br />
*'''цена энергии монеты''' - сколько монет стоит энергия (цена в ресурсе 1).<br />
*'''цена энергии кристаллы''' - сколько кристаллов стоит энергия (цена в ресурсе 2).<br />
*'''вероятность победы в матче'' - число, отображающее вероятность победы в матче.<br />
*'''время в матче''' - условное время пребывания в матче.<br />
*'''вероятность покупки за реал''' - каждый раз когда игроку не хватает денег или кристаллов - проверяем эту вероятность.<br />
*'''цена монеты в деньгах''' - цена монеты в деньгах.<br />
*'''количество монет в покупке''' - количество монет в покупке.<br />
*'''цена кристаллов в деньгах''' - цена кристаллов деньгах.<br />
*'''количество кристаллов в покупке''' - количество кристаллов в покупке.<br />
<br />
==Поле economics setup==<br />
По клику на "..." открывается редактор экономикса. В этом редакторе можно задать все настройки локациям и коллекциям, которые используются в игре.<br />
<br />
[[Файл:Economics 1.jpg|500px]]<br />
<br />
Economics setup содержит 11 вкладок : локация хидден, коллекция, предметы, окошко когда не хватает чарджера (чарджер), нехватка ресурсов на чарджер, монстр, летающий объект, аномалия, сдача коллекции, временный эффект, достижение.<br />
Вверху можно увидеть ряд кнопок для добавления и удаления: справа для локаций, слева для уровней мастерства.<br />
<br />
===Локация хидден===<br />
<br />
Форма редактора экономикса разделена на 4 колонки. В первой колонке мы видим список локаций, используемых в игре. Имена локаций можно изменять. Добавляются новые локации по нажатию на кнопку ''Добавить локацию'', удаляются кнопкой ''Удалить локацию''. Во второй колонке отображаются свойства выделенной локации.<br />
<br />
[[Файл:Economics 2.jpg|right]]<br />
*'''Объект на карте''' - это объект ведущий в локацию с карты. Должен иметь как минимум состояния open и closed, которые ему будет вызывать экономикс.<br />
*'''индиктор уровня''' - каунтер, который будет отображать номер уровня, начиная с которого локация доступна.<br />
*'''Экран''' - экран, в котором расположен локация.<br />
*'''Превью локации''' - графический ресурс для отображения превью локации из базы ресурсов.<br />
*'''Имя локации''' - название локации, перетаскивается из текстовой базы.<br />
*'''Описание локации''' - описание, перетаскивается из текстовой базы.<br />
*'''Уровень''' - уровень требуемый для того, чтобы играть в локацию.<br />
*'''Результат''' - имя поля в опциях, куда локацией будет занесен результат. Расчитываем найти там число.<br />
*'''Связанный хидден лист''' - хидден-лист, связанный с локацией.<br />
*'''необходимый предмет''' - предмет необходимый для входа в локацию. Может быть как коллекционным, так и инвентарным.<br />
*'''разница в уровнях''' - разница в уровнях, при которой можно купить доступ в локацию.<br />
*'''цена ресурс 1''' - если наш уровень ниже необходимого на разницу из верхнего поля, мы можем разлочить локацию за деньги.<br />
*'''цена ресурс 2''' - если наш уровень ниже необходимого на разницу из верхнего поля, мы можем разлочить локацию за кристаллы.<br />
*'''достижение''' - достижение, которое будет открываться по мере игры в эту локацию.<br />
*'''процент''' - проценты достижения из предыдущего поля.<br />
<br />
В третей колонке записываются уровни мастерства. Их можно переименовать. Добавляются кнопкой ''Добавить уровень мастерства''. Удаляются кнопкой ''Удалить уровень мастерства''. В четвертой колонке настраивается выделенный уровень мастерства.<br />
<br />
[[Файл:Economics 3.jpg|right]]<br />
*'''энергия''' - энергия требуемая для того, чтобы играть в локацию.<br />
*'''ресурс 1''' - деньги даваемые за прохождение локации.<br />
*'''ресурс 2''' - кристаллы даваемые за прохождение локации.<br />
*'''опыт''' - опыт даваемый за прохождение локации.<br />
*'''кол-во объектов''' - максимальное количество доступных для поиска объектов в одной игровой сессии.<br />
*'''время игры''' - общее время игры (если -1, то игнорируется).<br />
*'''время игры (блиц)''' - время игры с аномалией "блиц".<br />
*'''время игры (аном)''' - время игры с остальными аномалиями.<br />
*'''режим игры''' - режим игры: 0 - случайный, 1- слова, 2 - силуэты, 3 - поиск отличий;<br />
*'''использовать различия''' - да - будут генирироватся режим поиска отличий, нет - не будут; Для корректной работы, следующей за сценой с хидн предметами, должна находиться пустая сцена с такими же параметрами как и у сцены с хидн предметами. Также между двумя сценами ( хидн и fake-сценой) должна быть связь по тасканию;<br />
*'''аномалия''' - вероятность возникновения аномалии в локациях.<br />
*'''доступные аномалии''' - перечень доступных на данном уровне мастерства аномалий. Записываются в виде чисел через запятую. Доступные значения 0, 1, 2, 3.<br />
*'''множитель''' - коэффициент, на который умножаются набранные очки. при расчете перехода на следующий уровень. Может быть меньше 1.<br />
*'''постоянный прирост''' - постоянный прирост, если он больше 0, то будет использоваться ВМЕСТО реально набранных в хиддене очков и множителя.<br />
*'''очки''' - очки, которые нужно набрать для перехода на следующий уровень мастерства. Набранные в локции очки умножаются на множитель и суммируются. Когда превысят это значение - произойдет переход.<br />
*'''Предметы''' - id коллекционных предметов, которые можно найти на локации. Не обязаны принадлежать к одной коллекции. Перетаскиваются из текстового редактора. Будет использоваться их иконка.<br />
*'''Вероятность''' - вероятность найти один из коллекционных предметов из предыдущего поля.<br />
*'''Вероятность 2''' - вероятность найти один из коллекционных предметов из предыдущего поля.<br />
*'''Вероятность 3''' - вероятность найти один из коллекционных предметов из предыдущего поля.<br />
*'''Инвентарь''' - id инвентарных предметов, которые можно найти на локации. Перетаскиваются из текстового редактора.<br />
*'''Вероятность инв.''' - вероятность найти один из инвентарных предметов из предыдущего поля.<br />
*'''Вероятность инв. 2''' - вероятность найти один из инвентарных предметов из предыдущего поля.<br />
*'''Вероятность инв. 3''' - вероятность найти один из инвентарных предметов из предыдущего поля.<br />
*'''Коллекционный предмет''' - предмет из коллекций, который будет дан игроку по достижению этого уровня мастерства.<br />
<br />
===Коллекция===<br />
<br />
Во вкладке ''Коллекция'' используются только первые две колонки. В первой колонке отображаются добавленные коллекции. Добавляются кнопкой ''Добавить локацию''. Удаляются кнопкой ''Удалить локацию''. Коллекции можно переименовывать. Второй столбик содержит id предметов входящих в коллекции. Перетаскиваются из текстового редактора. Будет использоваться их иконка. Ресурс 1 и ресурс 2 - ресурсы, которые даются за сдачу коллекции. Опыт - опыт, который дается за сдачу коллекции.<br />
<br />
*'''имя''' - Имя (а также - описание, если нужно) конкретно коллекции.<br />
*'''предметы''' - id предметов входящих в коллекции. Перетаскиваются из текстового редактора. Будет использоваться их иконка.<br />
*'''ресурс 1''' - деньги даваемые за сдачу коллекции.<br />
*'''ресурс 2''' - кристаллы даваемые за сдачу коллекции.<br />
*'''опыт''' - опыт даваемый за сдачу коллекции.<br />
*'''награда''' - предмет даваемый за сдачу коллекции. Перетаскивается из текстовой базы.<br />
*'''заряжатели''' - Предметы инвентаря, необходимые для сдачи коллекции. ВНИМАНИЕ: будут использоваться не более первых 4х элементов списка.<br />
*'''достижение''' - достижение, которое будет открываться по мере сдачи этой коллекции.<br />
*'''процент''' - проценты достижения из предыдущего поля.<br />
*'''уровень для подарка''' - уровень, начиная с которого предметы этой коллекции можно дарить<br />
<br />
===Предметы===<br />
<br />
Раздел "Предметы" позволяет добавлять список инвентарных предметов, которые могут использоваться в процессе игры, предоставлять различные бонусы. В первой колонке список предметов. Добавляется кнопкой "Добавить локацию", удаляется кнопкой "Удалить локацию". Предметы могут быть переименованы. Во второй колонке записаны свойства каждого предмета.<br />
<br />
[[Файл:Economics 4.jpg|350px|right]]<br />
<br />
*'''nm''' - имя предмета<br />
<br />
*'''section''' - категория предмета.<br />
<br />
*'''use''' - если 1, то предмет может использоваться (кнопка Use видимая).<br />
<br />
*'''nm''' - имя предмета (txtID).<br />
<br />
*'''опции''' - если это поле задано, то в него будет записываться актуальное количество объектов.<br />
<br />
*'''начальное количество''' - начальное количество предметов данного типа в инвентаре.<br />
<br />
*'''можно продать''' - возможность продавать предмет: 1 - можно продать, 0 - нельзя продать.<br />
<br />
*'''уникальный''' - если 1 - то предмет уникальный пропадает после покупки, если 0 - предмет после покупки не пропадает.<br />
<br />
*'''res1''' - цена предмета в ресурсе 1.<br />
<br />
*'''res2''' - цена предмета в ресурсе 2.<br />
<br />
*'''sres1''' - продажа - цена предмета в ресурсе 1.<br />
<br />
*'''sres2''' - продаже - цена предмета в ресурсе 2.<br />
<br />
*'''en''' - восстанавливает энергии единовременно.<br />
<br />
*'''tm''' - длительность действия в секундах.<br />
<br />
*'''dTm''' - уменьшение времени восстановления энергии в %.<br />
<br />
*'''dFnd''' - увеличение вероятности нахождения предмета в %.<br />
<br />
*'''dExp''' - увеличение начисляемого опыта в %.<br />
<br />
*'''dRes1''' - увеличение полученного ресурса 1 в %.<br />
<br />
*'''dRes2''' - увеличение полученного ресурса 2 в %.<br />
<br />
*'''dOvP''' - увеличение перегруженной вероятности нахождения предметов в %.<br />
<br />
*'''dMaxEn''' - увеличение максимума энергии в %.<br />
<br />
*'''dBonus1''' - накопительный монетный бонус (в случае, если предмет дает ежедневный денежный прирост). Суммируется (от всех предметов имеющих это поле отличное от 0) и записывается в поле total_amulet_bonus1 экономикса. Автоматически не начисляется.<br />
<br />
*'''dBonus1''' - накопительный кристальный бонус (в случае, если предмет дает ежедневный денежный прирост). Суммируется (от всех предметов имеющих это поле отличное от 0) и записывается в поле total_amulet_bonus2 экономикса. Автоматически не начисляется.<br />
<br />
*'''dPurchase''' - к каждой покупке предмета добавляется еще столько таких же предметов. Актуально в тех случаях, когда приобретение предмета активирует акцию 1+1.<br />
<br />
*'''num''' - число предметов в сундуке. Выбираются случайно из следующего поля. При 0 - следующее поле не используется.<br />
<br />
*'''items''' - предметы, которые можно найти в сундуке. Перетаскиваются из текстовой базы.<br />
<br />
*'''use_id''' - задание этого поля говорит о том, что данный предмет является оптовым пучком для предмета указанного у этом поле. Num, в этом случае, - количество.<br />
<br />
*'''объект''' - связанный объект, будет добавляться в инвентарь.<br />
<br />
*'''достижение''' - достижение, которое будет открываться по мере применения подобный предметов.<br />
<br />
*'''процент''' - процент достижения их предыдущего поля.<br />
<br />
*'''владелец''' - на данный момент - номер правильной кнопки в окне угадайки (если -1. то игнорируется).<br />
<br />
*'''монстр''' - номер монстра, в игре с которым нужно применить этот предмет. Актуально для задач на применение хинтов в мини играх.<br />
<br />
*'''обработчик конца действия''' - объект, обработчик конца действия амулета.<br />
<br />
*'''состояние обработчика''' - состояние обработчика конца действия амулета (объект из поля выше будет переведен в это состояние по окончанию действия амулета).<br />
<br />
*'''дарить с уровня''' - уровень с которого возможно дарить этот предмет<br />
<br />
====Создание предметов (крафт)====<br />
<br />
В третьей колонке можно добавлять ингридиенты из которых состоит предмет. Ингридиенты сами по себе являются также инвентарными предметами. В четвертой колонке указывается текстовый id ингридиента и необходимое количество данного ингридиента.<br />
<br />
===Окошко когда не хватает чарджера===<br />
Позволяет добавлять окна. Окно добавляется кнопкой "Добавить локацию", окно можно переименовывать, удаляется кнопкой "Удалить локацию".<br />
<br />
*'''название''' - текстовый объект в который вкладывается название чарджера.<br />
*'''иконка''' - иконка чарджера.<br />
*'''описание''' - текстовый объект в который вкладывается название чарджера.<br />
*'''купить''' - кнопка покупка чарджера, передает economics состояние buy_charger.<br />
*'''искать''' - кнопка поиска чарджера, передает economics состояние search_charger.<br />
*'''есть''' - счетчик, который показывает сколько чарджеров есть сейчас.<br />
*'''нужно''' - счетчик, который показывает сколько чарджерова необходимо для сдачи коллекции.<br />
*'''цена ресурса 1''' - счетчик, который показывает цену чарджера в ресурсе 1.<br />
*'''цена ресурса 2''' - счетчик, который показывает цену чарджера в ресурсе 2.<br />
*'''достаточно''' - объект, который отображается вместо кнопки, в тот момент, когда чарджеров достаточное количество.<br />
<br />
===Нехватка ресурсов на чарджер===<br />
Позволяет изменить состояние выбранному объекту при нехватке ресурсов на чарджер. Добавляется кнопкой "Добавить локацию", можно переименовывать, удаляется кнопкой "Удалить локацию".<br />
<br />
===Монстр===<br />
В первой колонке добавляется монстр, добавляется кнопкой "Добавить локацию", если возможность переименовать, удаляется кнопкой "Удалить локацию"<br />
Во второй колонке отображаются свойства выделенной колонки.<br />
<br />
*'''Объект на карте''' - объект, который представляет монстра на карте. Как правило окно, которое должно иметь состояние hide (скрыт),show и disappear (прогнали).<br />
*'''Имя монстра''' - текстовый id из которого берется иконка, имя и описание монстра.<br />
*'''Экран''' - экран в котором расположена локация.<br />
*'''min уровень''' - уровень, при достижении которого, появляется монстр.<br />
*'''max уровень''' - уровень, при достижении которого, монстр исчезает.<br />
*'''необходимый предмет''' - предмет необходимый для игры с духом.<br />
*'''количество''' - количество предметов из поля "необходимый предмет". <br />
*'''связанный баттл''' - поле в котором указывается связанный объект типа matchbattle.<br />
*'''связанный матч''' - поле в котором указывается связанный матч.<br />
*'''окно внутри монстра''' - объект, который покажем в экране с мини игрой в случае победы. Должен иметь состояния open - в случае обычной победы, open_win - если перешли на следующий уровень мастерства. Чтобы это окно перешло в одно из этих состояний передаем экономике состояние ''monster_win_wnd''.<br />
*'''текст внутри монстра''' - текстовый объект, в который сложим поздравительный текст о переходе на следующий уровень мастерства.<br />
<br />
В третей колонке записываются уровни мастерства. Их можно переименовывать. Добавляются уровни кнопкой "Добавить уровень мастерства", удаляются кнопкой "Удалить уровень мастерства".<br />
В четвертой колонке настраивается выделенный уровень мастерства.<br />
<br />
*'''энергия''' - энергия необходимая для того, что бы можно было начать играть в локацию.<br />
*'''ресурс1''' - деньги даваемые за прохождение локации.<br />
*'''опыт''' - опыт даваемый за прохождение локации.<br />
*'''постоянный прирост''' - постоянный прирост.<br />
*'''штраф за поражение''' - кол-во очков, которые отнимаются за проигрыш.<br />
*'''очки''' - количество очков, которое необходимо набрать для перехода на следующий уровень мастерства.<br />
*'''предметы''' - id коллекционных предметов, которые можно найти на локации. Предметы не обязательно должны быть из одной коллекции. Необходимые предметы перетаскиваются из текстового редактора, при этом будет использоваться их иконка.<br />
*'''Вероятность''' - вероятность найти один из коллекционных предметов из поля "предметы".<br />
*'''Вероятность 2''' - вероятность найти один из коллекционных предметов из поля "предметы".<br />
*'''Вероятность 3''' - вероятность найти один из коллекционных предметов из поля "предметы".<br />
*'''Инвентарь''' - id инвентарных предметов, которые можно найти на локации. Перетаскиваются из текстового редактора.<br />
*'''Вероятность инв.''' - вероятность найти один из инвентарных предметов из поля "инвентарь".<br />
*'''Вероятность инв. 2''' - вероятность найти один из инвентарных предметов из поля "инвентарь".<br />
*'''Вероятность инв. 3''' - вероятность найти один из инвентарных предметов из поля "инвентарь".<br />
*'''текст при разлочке уровня''' - текстовый id из которого возьмем поздравительный текст о разлочке нового уровня.<br />
*'''жизни врага''' - записываются значения вражеских жизней.<br />
*'''начальные жизни врага''' - начальное значение вражеских жизней.<br />
*'''регенерация врага''' - время (в ms), за которое у противника отрастает жизнь. Если установлено -1, то отрастания жизни противника на происходит.<br />
*'''число цветов''' - это число будет записываться в параметр numTokenNums матча.<br />
<br />
Автоматические уровни мастерства отличаются всего несколькими дополнительными полями.<br />
<br />
*'''количество''' - количество автоматических уровней.<br />
*'''энергия''' - начальное значение энергии за игру.<br />
*'''энергия прирост''' - прирост энергии за каждый уровень мастерства.<br />
*'''ресурс 1''' - начальное значение ресурса1, который мы получаем за прохождение.<br />
*'''ресурс 1 прирост''' - прирост ресурса1 за каждый уровень мастерства.<br />
*'''опыт''' - начальное значение опыта, который мы получаем за прохождение.<br />
*'''опыт прирост''' - прирост опыта за каждый уровень мастерства.<br />
*'''нулевой штраф каждые n уровней''' - раз в столько уровней штраф за поражение будет нулевым (-1 - не использовать).<br />
<br />
Также есть возможность перегружать некоторые параметры уровней мастерства. Для этого нужно выбрать монстра и в выпадающем списке вверху выбрать пункт "перегрузка параметров".Перегрузок может быть несколько. <br />
<br />
Для настройки перегрузки нужно выбрать ее в 3 колонке, при этом в 4 колонке отобразятся параметры перегрузки. <br />
Сейчас перегрузку можно привязать к уровням XP игрока и к уровню монстра. Под уровнем монстра имеется ввиду уровень мастерства, отсчет начинается с 0. Перегружать можно энергию, затрачиваемую на монстра, награду (золото и опыт), а также инвентарные и коллекционные предметы.<br />
<br />
''Важно!'' Если поля инвентарных и коллекционных предметов оставить пустыми - то предметы выпадать не будут.<br />
<br />
===Летающий объект===<br />
Впервой колонке кнопкой "Добавить локацию" добавляется летающий объект - объекты которые вылетают после прохождения локации или после покупки сундуков. Удаляется кнопкой "Удалить локацию". Во второй колонке добавляется объект выделенного летающего объекта. Состояния hide, wait, inventory и collection - обязательны для этого предмета.<br />
<br />
''hide'' - состояние, когда объект не видно на экране. В этом состоянии можно указать свойство alpha=0.<br />
<br />
''wait'' - состояние, в которое попадают летающие объекты, которые отображают коллекционные предметы до того, как объекту economics будет вызвано состояние col_item_found.<br />
<br />
''collection'' - состояние, которое будет вызвано летающему объекту, который отображает коллекционный предмет после того как объекту economics будет вызвано состояние col_item_found (он может лететь в таблицу с нужной коллекцией).<br />
<br />
''inventory'' - состояние, которое вызывается летающему объекту в случае, если он отображает инвентарный объект (в этом состоянии предмет становится видимым и в дальнейшем может перемещаться).<br />
<br />
===Аномалия===<br />
<br />
В хидден-локации могут присутствовать аномалии, затрудняющие ее прохождение.<br />
Впервой колонке добавляется аномалия, добавляется кнопкой "Добавить локацию", можно переименовывать, удаляется кнопкой "Удалить локацию".<br />
Во второй колонке отображаются свойства выделенной аномалии.<br />
*'''id''' - поле в которое перетаскивается текстовый id, из которого используется название, описание и иконка аномалии.<br />
*'''предмет''' - предмет необходимый для того, что бы изгнать аномалию.<br />
*'''экран''' - в этом поле указывается экран, в котором расположена мини игра.<br />
*'''прибавка к энергии''' - указывается прибавка к энергии, поскольку для игры в аномалию будет нужно больше энергии. Например, при значении 0,5 - энергии потребуется больше в полтора раза.<br />
*'''прибавка к опыту''' - указывается прибавка к опыту, поскольку игра в локацию с аномалией будет давать больше опыта. Например, при значении 0,5 - опыта приобретается больше в полтора раза.<br />
*'''прибавка к ресурсу 1''' - указывается прибавка к ресурсу 1. поскольку игра в локацию с аномалией будет давать больше ресурса 1. Например, при значении 0,5 - ресурса 1 приобретается больше в полтора раза.<br />
<br />
===Сдача коллекции===<br />
<br />
В первой колонке добавляется событие на сдачу коллекции кнопкой "Добавить локацию", удаляется кнопкой "Удалить локацию".<br />
Во второй колонке устанавливается состояние объекту сдачи коллекции.<br />
<br />
===Временный эффект===<br />
<br />
Временный эффект - визуализация действия различных инвентарных объектов, которые применил игрок.<br />
В первой колонке создается временный эффект, добавляется кнопкой "Добавить локацию", удаляется кнопкой "Удалить локацию".<br />
Во второй колонке устанавливаются свойства выделенного временного эффекта.<br />
<br />
*'''иконка''' - из редактора ресурсов, перетаскивается иконка временного эффекта<br />
*'''таймер''' - указывается объект типа timer, который соответствует выбранному временному эффекту.<br />
*'''подложка''' - из редактора ресурсов, перетаскивается картинка подложки для таймера указанного в поле "таймер".<br />
<br />
===Достижение===<br />
В первой колонке записываются достижения. Добавляются кнопкой "Добавить локацию", удаляются кнопкой "Удалить локацию". <br />
Во второй колонке отображаются свойства выбранного достижения.<br />
<br />
*'''достижение''' - достижение, которое будет открываться по мере применения подобных предметов.<br />
<br />
*'''процент''' - в виде числа, указывается процент достижения из поля "достижение".<br />
<br />
*'''режим игры''' - указывается режим игры, ели 0 - режим игры не важен для достижения, 1 - режим игры слова, 2 - режим игры силуэты.<br />
<br />
*'''аномалия''' - указывается аномалия необходимая для достижения, если указывается -2 - то аномалия не важна для достижения, если указывается -1 - то для достижения может использоваться любая аномалия.<br />
<br />
==Состояния==<br />
<br />
[[Файл:Economics 5.jpg|right]]<br />
Перед вызовом некоторых состояний объекту economics необходимо передать параметр '''param''' и его значение. Например когда нам нужно открыть окно перед локацией мы передаем параметр номера этой локации в списке локаций (начиная с 0).<br />
<br />
<br clear /br><br />
*'''idle''' - состояние по умолчанию.<br />
*'''completed''' - передает состояние окончания исследования локации (необходим параметр номера локации), перед вызовом состояния, можно экономике заполнить поле '''additional_inv''' - перечнем инвентарных предметов которые хотим добавить пользователю ( поместить в таблицу + чтобы экономика поместила их в летающие объекты), через запятую (к примеру additional_inv="12345,25841") .<br />
*'''exp''' - передает состояние начисления опыта (необходим параметр количества опыта). Нужен больше для тестирования, чем для самой игры.<br />
*'''play''' - передает состояния перехода на локацию для исследования(при условии что хватит энергии и выполнены прочие условия).<br />
*'''location''' - открывает окно перед локацией (необходим параметр номера локации).<br />
*'''collection''' - заставляет экономикс заполнить таблицу коллекций. Лучше вызывать сразу перед открытием окна коллекций или во время его открытия.<br />
*'''collections_scroll''' - заполняет таблицу коллекций и проматывает на коллекцию содержащую последний предмет для которого было показано окошко с информацией о предмете.<br />
*'''collections_custom''' - перематывает таблицу к нужной коллекции. id коллекции записывается предварительно в param.<br />
*'''item_collections''' - заставляет экономикс показать окошко с информацией о коллекционном предмете. Вызывается при тапе на таблицу в темплейте коллекций (объект ecollection).<br />
*'''item_effect''' - сообщает economics, что необходимо показать окошко предмета от таймэфекта (необходим параметр номера эффекта)<br />
*'''item_preview''' - заставляет экономикс показать окошко с информацией о предмете, который можно найти при обыске локации. Вызывается при тапе на таблицу с предметами в окне перед локацией.<br />
*'''item_review''' - заставляет экономикс показать окошко с информацией о предмете, который нашли после обыска локации. Вызывается при тапе на таблицу с предметами в окне после локации.<br />
*'''item_monster_preview''' - заставляет экономикс показать окошко с информацией о предмете, который можно найти при игре с монстром. Вызывается при тапе на таблицу с предметами в окне перед монстром.<br />
*'''item_monster_review''' - заставляет экономикс показать окошко с информацией о предмете, который нашли после игры с монстром. Вызывается при тапе на таблицу с предметами в окне после монстра.<br />
*'''completed_animation''' - состояние запускает анимацию полученной награды за прохождение локации после "окна после локации". Можно запускать из состояния закрытия окна после локации.<br />
*'''unlock_item''' - передает состояние покупки предмета, необходимого для открытия локации. Как правило, предмет находится в окне перед локацией.<br />
*'''unlock''' - передает состояние при котором происходит разлочка локации если текущий уровень на один ниже, чем необходимый для открытии локации или значение ''разница в уровнях'', позволяет разлочить локацию. Как правило кнопка для разблокирования локации размещается в окне перед локацией. Когда разница уровней достаточна, чтобы разлочить локацию машина локации переводится в состояние '''can_buy'''.<br />
*'''completed_reward''' - вызывается объектом анимации награды после прохождения локации. Если объектов несколько (опыт, монеты, кристаллы), то вызывается только один раз одним из объектов.<br />
*'''search_charger''' - производит поиск недостающего чарджера. Пока только по монстрам. Номер чарджера 0 или 1 - в парам.<br />
*'''buy_charger''' - производит покупку недостающего чарджера (номер в параметре, -1 - купить все).<br />
*'''update''' - обновить все локации на карте.<br />
*'''level_up''' - проверяет получение нового уровня. Чтобы окно с получением нового уровня не открывалось самостоятельно, мы вызываем это состояние, когда нам удобно. Проверяется был ли получен новый уровень, если был, то вызывается окно с получением нового уровня.<br />
*'''res1''' - Добавить ресурс 1 (значение в параметре).<br />
*'''res2''' - Добавить ресурс 2 (значение в параметре).<br />
*'''res1s''' - скорректировать статистику по ресурсу 1 (значение в параметре, когда, например, ресурс не заработан, а выигран в казино).<br />
*'''res2s''' - скорректировать статистику по ресурсу 2 (значение в параметре, когда, например, ресурс не заработан, а выигран в казино).<br />
*'''energy''' - Добавить энергию (значение в параметре).<br />
*'''failed''' - текущая локация провалена (не дается опыта и прочих наград за прохождение локации). Требует параметра локации.<br />
*'''item_effect''' - показать окошко предмета от таймэффекта. В param - номер эффекта.<br />
*'''search_collection''' - проскроллить карту на локацию где можно найти коллекционный предмет. При этом машина локации (Объект на карте) будет переведена в состояние highlight, в котором локацию можно посветить или выделить ее каким-то образом.<br />
*'''search_task''' - проскроллить карту на локацию где можно найти предмет из задания. При этом машина локации (Объект на карте) будет переведена в состояние highlight, в котором локацию можно посветить или выделить ее каким-то образом.<br />
*'''search_charger''' - проскролить карту на монстр, в котором можно найти чарджер (необходимо значение чарджера в параметре 0 или 1).<br />
*'''monster''' - Открыть превью для монстра с номером указанном в поле параметр.<br />
*'''monster_play''' - Играть в мини игру выбранного монстра (при условии, что хватит энергии и выполнены прочие условия).<br />
*'''monster_removed''' - Монстра прогнали предметами. Вычесть предметы и успешно завершить.<br />
*'''monster_completed''' - Текущая мини игра так или иначе пройдена, перед вызовом состояния, можно экономике заполнить поле '''additional_inv''' - перечнем инвентарных предметов которые хотим добавить пользователю ( поместить в таблицу + чтобы экономика поместила их в летающие объекты), через запятую (к примеру additional_inv="12345,25841") .<br />
*'''monster_failed''' - Текущая мини игра провалена, отличается от предыдущего тем, что не дается бонусного опыта и прочих наград.<br />
*'''monster_buy''' - попытаться докупить предметы, необходимые для игры с монстром.<br />
*'''col_item_param''' - Добавить коллекционный предмет, взяв его айди из параметра.<br />
*'''anomaly_item''' - попытаться прогнать аномалию в текущей локации предметом. В зависимости от номера аномалии, машина локации (Объект на карте) переводится в состояние anomaly_N, где N - номер аномалии начиная с 0. (anomaly_0, anomaly_1 и т.д.). Таким образом можно визуализировать аномалию на карте.<br />
*'''anomaly_game''' - попытаться прогнать аномалию в текущей локации мини игрой.<br />
*'''anomaly_completed''' - мини игра по прогону аномалии успешно завершена.<br />
*'''anomaly_buy''' - показать окно покупки для предмета прогона аномалии (в текущей локации).<br />
*'''cheat_loc_level''' - "накачать" всем локациям скилл левел до максимума (для тестирования).<br />
*'''chest_animation''' - анимировать последний использованный сундук.<br />
*'''col_item_found''' - показать окошко с коллекцией для одного найденного коллекционного предмета из очереди.<br />
*'''cheat_one_level''' - просимулировать один уровень развития игрока.<br />
*'''purchase_ok''' - сообщает economocs что произошла покупка. Сформировать событие флури.<br />
*'''buy_random_col''' - купить случайный коллекционный предмет.<br />
*'''location_switch''' - переключить локацию на связанную (если есть предмет и собраны все артефакты, необходимые для перехода).<br />
*''' anomaly_set_everywhere''' - генерация аномалии. Если в объекте Economics в параметре param указан номер аномалии, то состояние добавляет аномалию всем локациям, а если -1, то убирает аномалию из всех локаций.<br />
*''' buy_artefact''' - осуществляет покупку артефакта для локации. Для этого у объекта economics в param должен быть записан номер локации, а в param2 номер артефакта (номер по порядку начиная с 0).<br />
*'''show_artefacts''' - Показать таблицу покупки артефактов в param - номер локации<br />
*'''location_buy_all_switchers''' - Купить все артефакты доступные для данной локации<br />
*'''search_ingridient''' - переход в локацию для поиска ингредиента, который указан в param.<br />
*'''search_needitem''' - поиск необходимого для исследования локации предмета из окна перед локацией. В param должен быть указан id необходимого предмета.<br />
<br />
=Сопутствующие объекты=<br />
<br />
Объекты, которые используются вместе с объектом economics и имеют с ним непосредственную связь:<br />
<br />
* [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря(магазина) и экономики. <br />
* [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина. <br />
* [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря.<br />
* [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета. <br />
* [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий.<br />
* [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания.<br />
* [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции.<br />
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер<br />
<br />
=Вычитаемые параметры=<br />
Данные параметры можно вычесть с помощью команды "var" в машине состояний. Параметры нужно вычитать из профиля, если не сказано обратное.<br />
[id] - числовой id экономики в проекте, если не указана другая информация.<br />
<br />
*'''ecomics[id].res1sp''' - количество потраченного ресурса_1 за все время игры;<br />
*'''ecomics[id].res2sp''' - количество потраченного ресурса_2 за все время игры;<br />
*'''ecomics[id].level''' - текущий уровень игрока;<br />
*'''ecomics[id].res1''' - текущее количество ресурса_1;<br />
*'''ecomics[id].res2''' - текущее количество ресурса_2;<br />
*'''ecomics[id].res1ea''' - количество заработанного ресурса_1 за все время игры;<br />
*'''ecomics[id].res2ea''' - количество заработанного ресурса_2 за все время игры;<br />
*'''economics[id].stat.energy_spent''' - количество потраченной энергии за все время игры;<br />
*'''ecomics[id].mplayed''' - количество сыгранных миниигр (монстр) за все время;<br />
*'''ecomics[id].lplayed''' - количество сыгранных хидденов за все время;<br />
*'''ecomics[id].total_score''' - количество заработанного опыта за все время игры;<br />
*'''ecomics[id].exp''' - текущий опыт на уровне;<br />
*'''ecomics[id].energy''' - текущий уровень энергии;<br />
*'''ecomics[id].loc[loc_id].an''' - номер аномалии, которая будет в локации loc_id;<br />
<br />
Каждая экономика пишет в пользователя следующие параметры:<br />
*'''public.EconomicsRes1''' - текущее количество ресурса_1;<br />
*'''public.EconomicsRes2''' - текущее количество ресурса_2;<br />
*'''public.EconomicsLevel''' - текущий уровень игрока;<br />
*'''public.EconomicsEnergy''' - текущий уровень энергии;<br />
*'''public.EconomicsTotalScore''' - количество заработанного опыта за все время игры;<br />
<br />
[[Category:Game mechanic]]<br />
[[Category:Economics|*]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_ScenceEditor&diff=7181Интерфейс ScenceEditor2015-08-27T19:32:09Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
== [[Файл:Ico_main.png]]Редактор сцен ==<br />
<br />
'''Редактор сцен''' — программа, предназначенная для создания, редактирования и экспорта игровых экранов, в котором происходит настройка свойств объектов и игровой логики. <br><br />
<br />
'''Окно редактора сцен состоит из:'''<br />
*меню редактора;<br />
*рабочей области, в которой размещен объект сцена, на котором размещают другие объекты;<br />
*панель Лэйаут, в которой размещено иерархическое дерево проекта, которое состоит из экранов, на которых находятся игровые объекты;<br />
*панель Свойства, которая отображает свойства объекта, который выбран в дереве проекта;<br />
*панель для построения сплайна;<br />
*панель инструментов;<br />
*строка Координаты, отображающая координаты курсора в текущий момент времени<br><br />
<br />
Для включения или отключения панели кликаем правой кнопкой мыши по серой области меню редактора и ставим галочку. Панели можно расположить на экране в любом порядке.<br> <br />
<br />
[[Файл:Головна2.PNG|700px]]<br />
<br />
=== Меню редактора ===<br />
<br />
==== Project (Проект)====<br />
меню, которое содержит список команд, с помощью которых можно создать новый или загрузить уже созданный проект, сохранить проект с указанием места сохранения и т.д.<br />
*'''New project''' - создать новый проект; <br />
*'''Open''' - открыть уже созданный проект (проект обязательно должен находится в подкаталоге редактора); <br />
*'''Recent project...''' - показывает список последних открывавшихся проектов; <br />
*'''Close''' - закрытие проекта (редактор при этом не закрывается); <br />
*'''New project''' - создать новый проект; <br />
*'''Save''' - сохранение проекта; <br />
*'''Save as...''' - сохранение проекта под новым именем или в новом каталоге; <br />
*'''Export...''' - экспорт проекта; <br />
*'''Project options...''' - опции проекта; <br />
*'''Exit''' - закрытие редактора. <br />
<br />
==== Edit (Редактирование)====<br />
меню редактирования проекта:<br />
*'''Copy''' - копирование объекта; <br />
*'''Paste into current object''' - вставка объекта в выбранный объект; <br />
*'''Paste after current object''' - вставка объекта после выбранного объекта;<br />
*'''Delete...''' - удаление объекта;<br />
*'''Delete temp data''' - удаление опций; <br />
*'''Find object...''' - поиск объекта по id или по имени;<br />
*'''Setup Editor...''' - настройки редактора.<br />
<br />
[[Файл:SetupEditor.png|right|400px]]<br />
<br />
1) Языки - выбор языка редактора.<br />
<br />
2) Work mode - выбор режима работы.<br />
<br />
3) Syles - выбор темы редактора.<br />
<br />
4) Перемещение сцены мышью или клавишами клавиатуры - позволяет перемещать сцену на экране.<br />
<br />
5) Рисовать сетку на экране - отображать сетку на экране или нет.<br />
<br />
6) Utilities - Подключение утилит.<br />
<br />
В редакторе есть возможность подключения утилит в форматах *.bat, *.exe, *.py, *.pyw, *.vbs.<br />
<br />
<br />
Для примера, подключим bat-файл, открывающий логи вьвера в notepad++.<br />
<br />
Для этого создадим файл Logs.bat со следущими командами:<br />
<br />
<br />
cd C:\Users\<your-user>\AppData\Roaming\Absolutist\Viewer<br />
<br />
start "C:\Program Files (x86)\Notepad++\notepad++.exe" "viewer.log" <br />
<br />
<br />
В настройки редактора добавим утилиту нажав на плюсик. В списке ниже появится поле добавленной утилиты.<br />
<br />
Нажмем на многоточие в столбце "Browse". В открывшимся окне "Open utility" откроем Logs.bat файл. После этого в меню редактора появится меню "Utilities" с командой Logs.<br />
<br />
==== View (Просмотр)====<br />
меню запуска Вьювера (Viewer)- проигрывателя созданного экрана проекта:<br />
*'''Start Viewer''' - запуск вьювера;<br />
*'''Setup Viewer...''' - настройки окна вьювера для выбранного проекта.<br />
<br />
====Layouts (Лейаут, Макеты)====<br />
меню работа с лейаутами проекта (выбор макета устройства для проекта, редактирование экранов):<br />
*'''Add new layout...''' - создание нового лейаута;<br />
*'''Delete layout...''' - удаление лейаута;<br />
*'''Layout settings...''' - настройки лейаута;<br />
*'''Add folder...''' - создание папки в текущем лейаута;<br />
*'''Add screen...''' - создание нового экрана.<br />
==== Tools (Инструменты)====<br />
меню дополнительных редакторов и инструментов для проекта (вызов редактора ресурсов, текстового редактора, анализ проекта). Список этого меню вынесен на панель с кнопками быстрого запуска:<br />
*'''Resources Editor''' - редактор ресурсов;<br />
*'''Texts Editor''' - текстовый редактор;<br />
*'''Analyzer''' - анализатор ресурсов (показывает количество объектов проекта, их размер занимаемой памяти, сведения о ресурсах каждого объекта (размер, ID номер, название (имя), местонахождение в базе ресурсов));<br />
*'''Object info...''' - общие свойства объекта (показывает размер памяти занимаемой текстурами);<br />
*'''Options info...''' - информация об опциях.<br />
<br />
==== Help (Помощь)====<br />
меню вызова справки.<br />
<br />
=== Кнопки панели Инструменты ===<br />
Некоторые инструменты также вызываются горячими клавишами (комбинация клавиш приведена в скобках )<br />
<br />
[[Файл:00 6.png]] (Ctrl+N) — создать новый проект; <br><br />
[[Файл:00 7.png]](Ctrl+O) — загрузить уже созданный проект;<br><br />
[[Файл:00 8.png]](Ctrl+S) — сохранить изменения в проекте;<br><br />
[[Файл:00 9.png]] — запустить Viewer;<br><br />
[[Файл:009.JPG]] — нормальный вид; <br><br />
[[Файл:Ico_text.png|25px]] - вызов текстового редактора; <br><br />
[[Файл:Ico_base.png|25px]] — вызов редактора ресурсов;<br><br />
[[Файл:013.JPG]] — анализатор ресурсов (показывает количество объектов проекта, их размер занимаемой памяти, сведения о ресурсах каждого объекта (размер, ID номер, название (имя), местонахождение в базе ресурсов)); <br><br />
[[Файл:014.JPG]]— поиск объекта по id или по имени.<br><br />
<br />
===Функции рабочей области===<br />
<br />
'''1) Масштабирование рабочей области<br>'''<br />
Ctrl + колесико мышки крутим вперед - увеличиваем объекты , назад - уменьшаем объекты.<br><br />
<br />
'''2)Перемещение по рабочей области<br>'''<br />
После масштабирования возникает необходимость переместиться с левого уголка экрана в далекий правый, переместиться к выбраному обьекту, вверх или вниз.<br><br />
<br />
Кликаем правой кнопкой мыши по горизонтальному scroll и выпадает меню: <br />
*scroll here — функция перемещает экран к объекту, который выделен в Лэйауте;<br />
*scroll left / right - функция перемещает экран на маленькое расстояние вправо / влево;<br />
*left / right edge — функция перемещает экран в левый / правый угол экрана;<br />
*page left / right - функция показывает левую/правую часть экрана<br><br />
<br />
Кликаем правой кнопкой мыши по вертикальному scroll и выпадает меню: <br />
*scroll here — функция перемещает экран к объекту, который выделен в Лэйауте;<br />
*scroll up / down - функция перемещает экран на маленькое расстояние вверх / вниз;<br />
*top/bottom - функция перемещает экран вверх / вниз;<br />
*page up / down - функция перемещает экран верхнюю / нижнюю часть экрана.<br><br />
<br />
Меню прокрутки скрывается по нажатию клавиши Alt<br><br />
<br />
===Функции панели Лэйаут===<br />
[[Файл:Лэйаут_1.JPG|right]] <br />
При клике правой кнопкой мыши по выбранному лэйауту (см. рисунок справа)<br />
*Создать папку в текущем объекте;<br />
*Создать экран в текущем объекте - создание объекта в текущем лэйауте;<br />
*Импорт/экспорт экранов — импорт/экспорт одного или нескольких экранов;<br />
*Развернуть / Свернуть объекты с подобъектами — сворачивает / разворачивает дерево объектов всех экранов<br><br />
<br />
При клике правой кнопкой мыши по выбранному экрану, сцене или объекту возможно:<br />
*Lock (Unlock) screen - золочивание (разлочивание) экрана: нельзя перемещать, удалять и изменять объекты (сцены) экрана, причем, если сцена расшареная, то она становиться залоченой и на остальных экранах; на залоченых экранах в панели проекта появляется замочек; <br />
*Lock (Unlock) scene - золочивание (разлочивание) сцены: нельзя перемещать, удалять и изменять объекты (машины, картинки и др.) сцены, причем, если сцена расшареная, то она становиться залоченой и на остальных экранах; на залоченых сценах также появляется замочек; <br />
*Создать сцену в текущем объекте - создание экран в текущем экране;<br />
*Создать экран в текущем объекте - создание экран в текущем лэйауте;<br />
*Создать объект сцены в текущем объекте - создание объекта в текущем объекте;<br />
*Удалить объект - удаление объекта из проекта;<br />
*Копировать объект — копирование объекта;<br />
*Вставить в текущий объект — вставка объекта в текущий объект верхнего уровня ;<br />
*Вставить как ссылку в текущий объект — вставка объекта в текущий объект для создания расшареной сцены;<br />
*Вставить как ссылку после текущего объекта — вставка объекта после текущего объекта для создания расшареной сцены;<br />
*Вставить после текущего объекта - вставка объекта после текущего объекта;<br />
*Импорт/экспорт экранов — импорт/экспорт одного или нескольких экранов;<br />
*Развернуть / Свернуть объекты с подобъектами — сворачивает /разворачивает дерево объектов экрана или сцены; <br />
<br />
====Функция Расположить сцену в соответствии с изображением ====<br />
Пусть на сцене будет находится очень много картинок, которые должны находиться в строго определенных местах. Переместим нашу картинку в нужную точку на сцене. Но у нас картинок очень много и мы потратим много времени на их расстановку. Для уменьшения времени на расстановку картинок воспользуемся функцией расположить сцену в соответствии с изображением.<br><br />
Функция расположить сцену в соответствии с изображением перемещает картинку в заданную точку художниками. Художник решил, что клумба должна быть в правом нижнем углу, после применения функции расположить сцену в соответствии с изображением, картинка станет именно на указанное художником место. <br><br />
Данная функция вызывается кликом правой кнопкой мыши по объекту<br> [[Файл:панель_свойства_1.JPG|right]]<br />
<br />
===Функции панели Свойства===<br />
<br />
*При клике на тип или имя некоторых объектов вызываются дополнительные окна.Например, при клике на тип Machine открывается окно, где прописываются функции объекта типа Machine.<br />
*При наведении на поле тип выпадет подсказка с уникальным номером объекта.<br />
*При клике правой мышкой по названию свойства объекта выпадает меню с дополнительными свойствами объекта<br />
*Некоторые свойства объектов объединены в группы (см. рисунок справа)<br />
<br />
=== Создание проекта ===<br />
<br />
1. Для создания нового игрового проекта необходимо запустить редактор сцен SceneEditor.<br><br />
2. В верхнем меню Проект выбрать Новый (т.е. создать новый проект).<br><br />
3. В появившемся окне указываем имя проекта и имя базы ресурсов.Выбираем папку для сохранения проекта<br><br />
4. В этом окне выбираем устройство для которого создаётся проект, а затем выбираем тип магазина и вариант версии игры<br><br />
[[Файл:020.JPG]] [[Файл:021.JPG]]<br />
<br />
5. В редакторе сцен в меню Проект → Сохранить → проект с именем Learning.<br> <br />
Эту методику действий можно брать за шаблон для создания других проектов.<br><br />
Результат: Создана база ресурсов и проект для выполнения Уроков. <br />
<br />
====Важное замечание по созданию проекта====<br />
[[Файл:2_лэйаута.JPG|right]]<br><br />
Предположим нам необходимо создать игру для магазина А и магазина Б. Игра будет отличаться только 10 функциями. Мы можем создать игру для магазина А., а потом скопировать папку с проектом, проект переименовать, внести изменения и получить игру для магазина Б. Результат: 2 игры и 2 папки с ресурсами. Такой подход не приветствуется.<br><br />
Для уменьшения времени на создание проекта, подключение ресурсов, внесения одинаковых объектов и удобства отслеживания багов и прочего в Редакторе Сцен существует возможность создания двух лэйаутов в одном проекте.<br />
При создании проекта мы выбираем оба магазина, после чего в панели Лэйаут появится два лэйаута для магазина А и магазина Б(см. рисунок справа. При этом текстовая база проекта и база ресурсов у них будут идентичны. При создании новых объектов в одном лэйауте они же будут создаваться и в другом, при этом можно изменять свойства объекта каждого лэйаута независимо от второго.<br><br />
За применение изменений между лэйаутами отвечает параметр "синхронизация", который есть у каждого объекта. Если стоит "синхронизировать", то объект будет одинаков в каждом из лэйаутов. Если стоит "не синхронизировать", то объект будет уникальным для каждого экрана, его изменения не будут применены на других лэйаутах, не синхронизируемые объекты можно даже удалять, т.к. они уникальны для лэйаута.<br />
<br />
===Экспорт проекта===<br />
<br />
'''Этапы экспорта проекта'''<br />
*Выполняется сжатие графики при необходимости <br />
*Очистка базы ресурсов от неиспользуемой графики<br />
*Запаковка графики в текстуры и контейнер<br />
*При необходимости конвертирование файлов в pvr форматы<br><br />
С целью экономии оперативной памяти на устройстве возможно сжатие графики, упаковка графики в текстуры, создание нескольких исполняемых файлов, проекта, содержащих в себе несколько сцен проекта, и загружаемых в оперативную память устройства по мере прохождения игры.<br><br />
<br />
Процедура экспорта проекта вызывается через меню редактора Проект - Экспортировать проект<br><br />
<br />
[[Файл:Scene editor export window.jpg|right]]<br />
'''Параметры экспорта проекта:'''<br><br />
''Настройки параметров графики''<br />
*Ось Х, ось У — параметры сжатия графики по оси Х,У. Значения параметра от 0 до 1.<br />
*При выполнении сжатия рекомендуется обращать внимания на размер лэйаута<br />
*Сжатие графики возможно и непропорциональное . Используется редко<br />
<br />
''Параметры запаковки графики''<br />
*Common textures size - максимальный размер графической текстуры для графики, которая не находится в контейнерах и попадает в одну текстуру, или максимальный размер графического файла, если он не в контейнере и не попадает в текстуру.<br />
*Create dat container - упаковка ресурсов в файл с типом DAT. Обеспечиваем защиту ресурсов проекта от несанкционированного доступа. Увеличиваем производительность при операциях чтения файлов ресурсов с твердотельного носителя.<br />
*Quality - Качество графики, которая не находится в контейнерах<br />
*Optimization - оптимизация графики для лучшего быстродействия(speed) или для занимаемого дискового пространства в распакованном виде(size)<br />
<br />
''Тип экспорта'' <br />
*One project file - формируется один XML файл описывающий проект. <br />
*Split project on screens, load partly' - проект будет разбит на отдельные файлы описывающие экраны, загружаться файлы будут в порядке использования (вызова) в проекте. В результате получаем увеличение начальной загрузки проекта и использование меньшего объема оперативной памяти.<br />
*Release build - оптимизация по размеру файла базы ресурсов и основного файла проекта.<br />
<br />
''Export to folder'' - Путь для экспорта. Если указан путь экспорта проекта - производится экспорт согласно настройкам для выбранной платформы. Если не указан - проект экспортируются под выбранную платформу и автоматически запускается сборка проекта.<br />
Структура папки:<br />
[[Файл:TreeFolder.png|TreeFolder.png]]<br><br />
'''Select platform''' - необходимо выбрать платформу для которой будем собирать проект. При экспорте на все платформы необходимо установить Marmalade SDK [[Установка и настройка|см. инструкцию]] при этом не нужно указывать путь для экспорта (оставить поле пустым). В результате запустится скрипт сборки исполняемого пакета, это будет видно по черным экранам с ходом выполнения процесса сборки.Процесс экспорта будет отображаться в окне.<br />
<br />
Таблица результирующих форматов для платформ<br />
{| border="1"<br />
|-<br />
|качество, оптимизация<br />
|IOS<br />
|Android<br />
|Windows Phone8<br />
|BlackBerry<br />
|Windows<br />
|-<br />
|Best, size<br />
|png(RGBA)<br />
|png(RGBA)<br />
|png(RGBA)<br />
|png(RGBA)<br />
|png(RGBA)<br />
|-<br />
|Best, speed<br />
|PVR8888<br />
|PVR8888<br />
|PVR8888<br />
|PVR8888<br />
|PVR8888<br />
|-<br />
|Medium, size<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|-<br />
|Medium, speed<br />
|PVRTC + PVRA8<br />
|ETC1 + PVRA8<br />
|BC3 + hitmask<br />
|PVR8888<br />
|BC3 + hitmask<br />
|-<br />
|Low, size<br />
|PVRTC + png(a)<br />
|ETC1 + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|-<br />
|Low, speed<br />
|PVRTC(RGBA) + hitmask<br />
|ETC1 + PVRA8<br />
|BC3 + hitmask<br />
|PVR8888<br />
|BC3 + hitmask<br />
|}<br />
<br />
*'''ETC''' - Ericsson Texture Compression : для устройств Android<br />
*'''PVR''' - PowerVR Texture Compression : для устройств IOS<br />
*'''bc3(dxt)''' - DirectX Texture : Windows, Windows Phone 8<br><br />
<br />
=Горячие клавиши=<br />
* '''Клавиша F10''' - По нажатию разворачивает/сворачивает все объекты и подобъекты в дереве проекта или в свойствах объекта.<br />
* '''Клавиша Num* и Num-''' - По нажатию разворачивают/сворачивают подобъекты у выделенного объекта в дереве проекта или в свойствах объекта.<br />
<br />
<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Animation&diff=7180Animation2015-08-27T19:09:53Z<p>Aslav: </p>
<hr />
<div>'''Animation''' - [[Object|объект]], который позволяет анимировать другие объекты. Обладает возможностью задавать изменение параметров объектов с помощью нелинейных функций.<br />
<br />
<br />
== Введение ==<br />
<br />
Логика работа: Объект Animation анимирует объекты, указанные в его параметрах анимаций. Он имеет общий временной промежуток, в течении которого будут выполнены все анимации. При добавлении анимации указывается начальный и конечный моменты времени, в промежутке которых она будет выполнена. Таким образом анимации выполняются независимо друг от друга.<br />
<br />
{{TOC right}}<br />
=Параметры=<br />
<br />
*'''duration ''' - общее время выполнение всех анимаций.<br />
<br />
<br />
=Добавляемые параметры=<br />
<br />
<br />
===[[Файл:+.png]] scale===<br />
- анимация скейла<br />
*'''объект''' - объект, который анимируем.<br />
*'''begin_scale_x''' - начальное значение скейла по x(при игнорировании значение берется из объекта ).<br />
*'''end_scale_x''' - конечное значение скейла по x.<br />
*'''begin_scale_y''' - начальное значение скейла по y(при игнорировании значение берется из объекта ).<br />
*'''end_scale_y''' - конечное значение скейла по x.<br />
*'''start_time_percent''' - время начала анимации в процентах от общего времени (duration).<br />
*'''end_time_percent''' - время конца анимации в процентах от общего времени (duration).<br />
*'''Type of easing''' - Функция плавности(easing).<br />
<br />
<br />
===[[Файл:+.png]] move===<br />
- анимация движения<br />
*'''объект''' - объект, который анимируем.<br />
*'''begin_x''' - начальное значение x(при игнорировании значение берется из объекта ).<br />
*'''end_x''' - конечное значение x.<br />
*'''begin_y''' - начальное значение y(при игнорировании значение берется из объекта ).<br />
*'''end_y''' - конечное значение x.<br />
*'''объект''' - объект, к которому будем двигаться(если задан, end_x и end_y игнорируются).<br />
*'''start_time_percent''' - время начала анимации в процентах от общего времени (duration).<br />
*'''end_time_percent''' - время конца анимации в процентах от общего времени (duration).<br />
*'''Type of easing''' - Функция плавности(easing).<br />
<br />
<br />
===[[Файл:+.png]] alpha===<br />
- анимация изменения прозрачности<br />
*'''объект''' - объект, который анимируем.<br />
*'''begin_alpha''' - начальное значение alpha(при игнорировании значение берется из объекта ).<br />
*'''end_alpha''' - конечное значение alpha.<br />
*'''start_time_percent''' - время начала анимации в процентах от общего времени (duration).<br />
*'''end_time_percent''' - время конца анимации в процентах от общего времени (duration).<br />
*'''Type of easing''' - Функция плавности(easing).<br />
<br />
<br />
<br />
===[[Файл:+.png]] rot===<br />
- анимация вращения<br />
*'''объект''' - объект, который анимируем.<br />
*'''begin_rot''' - начальное значение угла(при игнорировании значение берется из объекта ).<br />
*'''end_rot''' - конечное значение угла.<br />
*'''start_time_percent''' - время начала анимации в процентах от общего времени (duration).<br />
*'''end_time_percent''' - время конца анимации в процентах от общего времени (duration).<br />
*'''Type of easing''' - Функция плавности(easing).<br />
<br />
<br />
<br />
===[[Файл:+.png]] анимация===<br />
- изменения указанного параметра объекта по функции <br />
*'''объект''' - объект, который анимируем.<br />
*'''тип анимации''' - параметр , который анимируем ( пока x, y, scale_x, scale_y, alpha).<br />
*'''begin_value''' - начальное значение.<br />
*'''end_value''' - конечное значение.<br />
*'''start_time_percent''' - время начала анимации в процентах от общего времени (duration).<br />
*'''end_time_percent''' - время конца анимации в процентах от общего времени (duration).<br />
*'''Type of easing''' - Функция плавности(easing).<br />
<br />
<br />
===[[Файл:+.png]] изменить состояние объекта - закончили анимацию===<br />
- изменить состояние объекта после окончания анимации.<br />
*'''объект''' - объект, состояние которого меняем.<br />
*'''состояние''' - значение нового состояния.<br />
<br />
<br />
=Состояния=<br />
*''pause'' - состояние паузы.<br />
*''start'' - состояние старта анимации.<br />
<br />
Изначально объект находится в состоянии pause.<br />
<br />
=Важно=<br />
Если при добавлении анимации вы не указываете начальные значения(то есть за начальные будут взяты текущие значения параметров объекта), то объект Animation должен находится в дереве ниже анимируемых объектов, чтобы они были инициализированы до его инициализации. <br />
<br />
=Easing=<br />
Изинги позволят добиться более плавной и реалистичной анимации. На данный момент реализованы все функции представленные на рисунке ниже. Заметим, что по оси x меняется время анимации , по y - значение нужного параметра. <br />
Иллюстрацию анимаций можно увидеть на ресурсе http://easings.net/ru (навести мышкой на нужную функцию).<br />
<br />
[[Файл:GAnimation-Easing.png]]<br />
<br />
<br />
=Пример=<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample\easing.zip<br />
<br />
[[Category:Main objects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Memory&diff=6891Memory2015-03-02T17:12:04Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
'''Memory''' - [[Object|объект]] редактора, который реализует игровую механику "memory" - поиск одинаковых объектов. Имеет основные параметры [[Object|объекта]], но в memory нельзя помещать другие объекты - они при этом некорректно работают.<br />
<br />
== Get Started ==<br />
Нам потребуется 1 картинка для "рубашки" и два набора по 6 картинок для игры<br />
;Начнём:<br />
# откроем [[Интерфейс_ScenceEditor|редактор сцен]] и создадим новый проект,<br />
# добавим новый экран с именем ''scrMemory''<br />
# создадим в этом экране сцену ''stgMemory''<br />
# перейдём в [[Интерфейс_ResourceEditor|редактор ресурсов]]<br />
## создаём папку ''memo''<br />
## добавим в ней картинку для "рубашки" - назовём её ''cardback''<br />
## добавим там же анимацию (6 картинок) - ''cardpict''<br />
## также добавим анимацию (6 картинок) - ''cardkey''<br />
## закроем редактор ресурсов<br />
# перейдём в редактор сцен.<br />
# создадим в сцене stgMemory объект '''Memory'''<br />
# установим в нём свойство '''время открытия''' в ''500''<br />
# установим свойство '''время закрытия''' в ''1000''<br />
# установим свойство '''анимация картинок''' в ''поворот по горизонтали''<br />
# добавим свойство '''игрок'''<br />
# добавим свойство '''memoClassic параметры'''<br />
## в свойстве '''memoClassic параметры''' изменим параметр '''подтип''' на значение ''картинка-ключ''<br />
## выделим параметр '''подложки''' и перетащим на него из редактора ресурсов картинку ''cardback''<br />
## выделим параметр '''легкие картинки''' и перетащим из редактора ресурсов анимацию ''cardpict''<br />
## выделим параметр '''ключи''' и перетащим из редактора ресурсов анимацию ''cardkey''<br />
# сохраним проект<br />
# запустим [[Интерфейс_Viewer|вьювер]]<br />
<br />
=='''Основные свойства:'''==<br />
<br />
[[Файл:Memory1.png]]<br />
===Размер поля===<br />
*''Строки'' '''(rows)''' - число ячеек по вертикали.<br />
*''Столбцы'' '''(cols)''' - число ячеек по горизонтали.<br />
<br />
==='''Звуки'''===<br />
*''Удачный клик'' '''(sndClick)''' - клик на закрытую нерешенную ячейку.<br />
*''Неудачный клик'' '''(sndMissClick)''' - неудачный клик (картинка решенная или анимируется).<br />
*''Разбор узла'' '''(sndNode)''' - разобрали узел.<br />
*''Удачный разбор игры'' '''(sndWinGame)''' - удачный разбор игры.<br />
*''Неудачный разбор игры'' '''(sndLoseGame)''' - неудачный разбор игры.<br />
<br />
===Дополнительные настройки===<br />
*''Отступ(x)'' '''(indentX)''' - отступ между картинками по горизонтали.<br />
*''Отступ (y)'' '''(indentY)''' - отступ между картинками по вертикали.<br />
*''Время открытия'' '''(tmOpening)''' - время открытия картинки.<br />
*''Время закрытия'' '''(tmClosing)''' - время закрытия картинки.<br />
*''Анимация картинок'' '''(animType)''' тип анимирования картинок:<br />
** скалирование=0,<br />
** переворот по горизонтали=1,<br />
** переворот по вертикали=2,<br />
** проявление по альфе=3.<br />
** подлет=4<br />
<br />
==='''Файл уровней'''===<br />
*''Имя файла'' '''(lvlfile)''' - Файл-описание уровня.<br />
*''Номер уровня'' '''(lvlnum)''' - Номер уровня в файле.<br />
<br />
==='''Параметры колебаний'''===<br />
*''Амплитуда'' '''(osc_a)''' - начальная амплитуда.<br />
*''Время'' '''(osc_time)''' - время колебания ячейки после открытия.<br />
*''Количество'' '''(osc_num)''' - количество колебаний.<br />
*''Затухание'' '''(osc_beta)''', параметр beta уравнения x(t) = a0 * exp(-beta * t) * cos(omega * t + alpha) - чем больше, тем быстрее уменьшается амплитуда колебаний.<br />
<br />
==='''Параметры подлета'''===<br />
Параметры анимации картинок "подлет".<br />
*''Время подлета'' '''(takeoff_tm)'''<br />
*''Скейл подлета'' '''(takeoff_sc)'''<br />
*''Время переворота'' '''(revolution_tm)'''<br />
*''Количество переворотов'' '''(revolution_num)'''<br />
*''Скейл дальней стороны'' '''(far_side_sc)'''<br />
<br />
==='''Параметры хинта'''===<br />
*''Время открытия'' '''(hint_open)''' - время открытия картинки.<br />
*''Время закрытия'' '''(hint_close)''' - время закрытия картинки.<br />
*''Время показа'' '''(hint_show)''' - время показа пары картинок.<br />
*''Пауза между анимациями'' '''(hint_dif)''' - пауза между началом анимирования первой и второй картинки.<br />
<br />
==='''Режим игры'''===<br />
*''Режим'' '''(mod)''':<br />
**normal<br />
**blitz - сыграть за определенное время<br />
**moves - сыграть за определенное количество ходов.<br />
<br />
*''Время (в блице)'' '''(modtm)''' - время игры в режиме blitz<br />
*''Кол-во ходов'' '''(modmv)''' - количество ходов для режима moves.<br />
*''Визуализатор'' '''(modvis)''' - объект, который отображает текущее значение времени/ходов (timer/progres).<br />
<br />
===Дополнительные настройки ===<br />
<br />
*''Поведение решенного узла'' '''(snb)''':<br />
** оставлять картинки=0,<br />
** убирать с поля вместе с бекграундом=1,<br />
** устанавливать на их месте новые бекграунды=2.<br />
<br />
*''Начальная задержка'' '''(tmOpen)''' - начальная задержка перед стартом игры.<br />
*''Тип игры'' '''(memoType)''':<br />
** классическая=0,<br />
** найти свои=1,<br />
** copy=2.<br />
*''Флайер'' '''(flyer)''' - флайер при разборе узла. Нужен в двух экземплярах.<br />
<br />
==='''Препоказ'''===<br />
*''Нужен/не нужен'' '''(preShowNeeded)''' - включить/выключить препоказ картинок при старте игры.<br />
*''Время открытия'' '''(preShowOpenTm)''' - время открытия препоказа.<br />
*''Продолжительность'' '''(preShowTm)''' - продолжительность препоказа.<br />
*''Время закрытия'' '''(preShowCloseTm)''' - время закрытия препоказа.<br />
<br />
=='''Дополнительные параметры:'''==<br />
<br />
[[Файл:Memoryadd.png]]<br />
<br />
==='''Игрок'''===<br />
'''Важно!''' Должен быть как минимум один игрок.<br />
*''Игрок'' '''(player)''' - нужен/ненужен.<br />
*''Тип'' '''(pltype)''' - тип игрока: человек/компьютер.<br />
*''Ключ'' '''(key)''' - ключ игрока.<br />
*''Имя'' '''(name)''' - имя игрока<br />
*''Счетчик'' '''(counter)''' - счетчик ходов.<br />
*''Индикатор'' '''(indicator)''' - индикатор хода игрока(машина)<br />
*''Вероятность'' '''(probability)''' - вероятность правильного хода (для компьютера).<br />
*''Память'' "3" '''(plmemo)''' сколько ходов помнит компьютер.<br />
*''Время на ход'' '''(pltime)''' время на ход (для компьютера).<br />
<br />
==='''Бонус'''===<br />
*''Нужен'' '''(need)''' - нужен/ненужен.<br />
*''Ключ'' '''(key)''' - название бонуса.<br />
*''Графика'' '''(bonusImgs)''' - клип с графикой для бонусной карты.<br />
*''Картинка'' '''(bonusFrame)'' - номер фрейма в клипе, если хотим брать случайно, то -1<br />
*''Тип бонуса'' '''(bonusType)''':<br />
**открыть дополнительную карту=1<br />
**добавить ход=2<br />
<br />
==='''Удачный разбор: изменить состояние объекта'''===<br />
* объект '''(obj)''' объект, состояние которого нужно изменить.<br />
* состояние '''(st)''' новое состояние объекта.<br />
<br />
==='''Удачный разбор: изменить свойство объекта '''===<br />
* объект '''(obj)''' - объект, свойство которого нужно изменить.<br />
* свойство '''(par)''' - свойство, которое нужно изменить.<br />
* значение '''(val)''' Значение Новое значение свойства.<br />
<br />
==='''Неудачный разбор: изменить состояние объекта '''===<br />
* объект '''(obj)''' Объект Объект, состояние которого нужно изменить.<br />
* состояние '''(st)''' Состояние Новое состояние объекта.<br />
<br />
==='''Неудачный разбор: изменить свойство объекта'''===<br />
* объект '''(obj)''' - объект, свойство которого нужно изменить.<br />
* свойство '''(par)''' - свойство, которое нужно изменить.<br />
* значение '''(val)''' - новое значение свойства.<br />
<br />
Дополнительные параметры для разных типов игры:<br />
[[Файл:Memo3.png]]<br />
<br />
==='''memoClassic параметры'''===<br />
Цель игры - разобрать поле, убирая одинаковые картинки.<br />
*''Подтип'' '''(subType)''' подтип игры:<br />
** картинка-картинка - найти пары одинаковых картинок.<br />
** картинка-ключ - найти пары ассоциативных картинок.<br />
*''Сложность'' '''(level)''':<br />
** легкая<br />
** сложная - наличие картинок, которые труднее запомнить (белая/черная кошки).<br />
*''Повторения'' '''(duplication)''' повторения пар картинок:<br />
** запрещены<br />
** разрешены<br />
*''Подложки'' '''(bg)''' - анимация с картинками для подложек.<br />
*''Легкие картинки'' '''(pict0)''' - анимация с картинками для легкого уровня сложности.<br />
*''Сложные картинки'' '''(pict1)''' - анимация с картинками для сложного уровня сложности.<br />
*''Ключи'' '''(pictKey)''' - анимация с картинками для ключей (для подтипа картинка-ключ).<br />
<br />
==='''memoFindOwn параметры''' ===<br />
Цель игры - первым разобрать свои картинки.<br />
<br />
*''Подложки'' '''(bg)''' - клип с картинками для подложек.<br />
*''Нейтральные картинки'' '''(pictNeutral)''' - клип для нейтральных картинок.<br />
*''Картинки игроков'' '''(pict)''' - клип для активных картинок.<br />
*''Очки за свои ячейки'' '''(scoreOwn)''' - очки за клик на свою картинку.<br />
*''Очки за чужие ячейки'' '''(scoreOther)''' - очки за клик на чужую картинку(можно указывать отрицательное значения).<br />
*''Очки за нейтральные ячейки'' '''(scoreNeutral)''' - очки за клик на нейтральную картинку.<br />
*''Мультипликатор'' '''(scoreMultiplier)''' - за первую правильно открытую ячейку 1Х очков, за вторую - 2Х и т.д.:<br />
** нет=0,<br />
** да=1.<br />
*''Ячейки игроков'' '''(targetNum)''' - количество ячеек для каждого игрока.<br />
<br />
==='''memoCopy параметры'''===<br />
Цель игры - раскопировать изображение правильных фишек.<br />
*''Обычные картинки'' '''(imgs0)'''<br />
*''Верно нажатые'' '''(imgs1)'''<br />
*''Неверно нажатые'' '''(imgs2)'''<br />
*''Подложки'' '''(bgs)'''<br />
*''id для картинок'' '''(imgId)'''<br />
*''id для подложек'' '''(bgId)'''<br />
*''Пауза перед закрытием'' '''(endLevelPause)'''<br />
*''Итерации'' '''(numIters)'''<br />
*''Массив строк'' '''(rowsArray)'''<br />
*''Массив столбцов'' '''(colsArray)'''<br />
*''Пустые ячейки'' '''emptyArray'''<br />
<br />
=='''Файл уровней'''==<br />
Можно сделать макет уровней игры, и с помощью машины передавать memory параметр lvlnum, тем самым меняя играемый уровень. Данный параметр нужно передавать до перехода на экран с игрой.<br />
<br />
Уровень можно формировать 2 способами:<br />
* на основе постоянной прямоугольной решетки, при этом есть возможность задавать в решетке ячейки без плиток memory;<br />
* произвольным размещением плиток на сцене - путем задачи координат каждой плитки относительно объекта memory.<br />
<br />
'''Важно! При формировании уровня нужно следить, что бы количество игровых ячеек было парным'''<br />
<br />
==='''Структура уровня'''===<br />
<br />
<level><br />
id - номер уровня<br />
rows - высота сетки<br />
cols - ширина сетки<br />
time - время игры<br />
turns - количество ходов<br />
frames - количество картинок, из которых формируется поле<br />
dup - если 1, разрешены повторения пар. Если 0, повторений будет минимально возможное количество.<br />
clipBgs - id клипа с подложками // значения клипов переносятся вручную<br />
clipImgs - id клипа с картинками для матча // представляет собой id анимации<br />
clipKeys - id клипа с ключами для матче (в режиме картинка-ключ) // которая содержат нужные картинки<br />
<br />
<rules><br />
Описание правил для параметра "rules_preset"<br />
<rule><br />
id - сложность<br />
остальной список параметров такой же<br />
</rule><br />
...<br />
</rules><br />
<fakes> - ложные ячейки - ведут себя как и обычные ячейки, но ни с кем не матчатся<br />
<fake><br />
pos - позиция, она же номер в последовательности, описывающей поле<br />
frame - номер фрейма (должен быть в общей анимации)<br />
</fake><br />
</fakes><br />
<field> - прямоугольная решетка<br />
Описание ячеек поля {0,1}<br />
</field><br />
<field_pos><br />
Описание ячеек поля координатами (x0,y0),(x1,y1),...<br />
Переносы строк, пробелы и прочие табы разрешаются<br />
</field_pos><br />
</level><br />
<br />
<br />
====''Постоянная решетка''====<br />
<br />
<level id="0" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"><br />
<rules><br />
<rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /><br />
</rules><br />
<field_pos><br />
</field_pos><br />
<field> // где 0 - ячейка пустая<br />
1,1,0,1,1,1,<br />
1,1,1,1,1,1,<br />
1,1,0,1,1,1,<br />
1,1,1,0,1,1,<br />
1,1,1,1,1,0<br />
</field> <br />
</level><br />
<br />
<br />
====''Задание координат''====<br />
<br />
<level id="1" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"><br />
<rules><br />
<rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /><br />
</rules><br />
<fakes> // Нумерация ячеек начинается с верхней левой. Каждая фейковая ячейка уменьшает<br />
<fake pos="4" frame="1" /> // количество обычных ячеек. Поэтому нужно следить, что бы количество обычных<br />
<fake pos="12" frame="2" /> // ячеек всегда было парным.<br />
<fake pos="0" frame="0" /><br />
</fakes><br />
<field_pos> //координаты отсчитываются от точки пивота объекта memory<br />
(0,-250),<br />
(-50,-150),(50,-150),<br />
(-100,-50),(0,-50),(100,-50),<br />
(-150,50),(-50,50),(50,50),(150,50),<br />
(-200,150),(-100,150),(0,150),(100,150),(200,150)<br />
</field_pos><br />
</level><br />
<br />
==Хинты==<br />
<br />
У memory есть 3 вида хинтов:<br />
* показать пару ячеек - hntt=0<br />
* показать все ячейки - hntt=1<br />
* убрать пару ячеек - hntt=2<br />
<br />
Для активации хинта нужно передать memory соответствующее значение hntt и передать состояние hint.<br />
Также для memory определено состояние skip, при передаче которого игра завершается победой.<br />
<br />
== Пример ==<br />
<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample Файл: memory_sample.zip<br />
<br />
[[Category:Game mechanic]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Memory&diff=6890Memory2015-03-02T17:09:43Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
'''Memory''' - [[Object|объект]] редактора, который реализует игровую механику "memory" - поиск одинаковых объектов. Имеет основные параметры [[Object|объекта]], но в memory нельзя помещать другие объекты - они при этом некорректно работают.<br />
<br />
== Get Started ==<br />
Нам потребуется 1 картинка для "рубашки" и два набора по 6 картинок для игры<br />
;Начнём:<br />
# откроем редактор сцен и создадим новый проект,<br />
# добавим новый экран с именем ''scrMemory''<br />
# создадим в этом экране сцену ''stgMemory''<br />
# перейдём в редактор ресурсов<br />
## создаём папку ''memo''<br />
## добавим в ней картинку для "рубашки" - назовём её ''cardback''<br />
## добавим там же анимацию (6 картинок) - ''cardpict''<br />
## также добавим анимацию (6 картинок) - ''cardkey''<br />
## закроем редактор ресурсов<br />
# перейдём в редактор сцен.<br />
# создадим в сцене stgMemory объект '''Memory'''<br />
# установим в нём свойство '''время открытия''' в ''500''<br />
# установим свойство '''время закрытия''' в ''1000''<br />
# установим свойство '''анимация картинок''' в ''поворот по горизонтали''<br />
# добавим свойство '''игрок'''<br />
# добавим свойство '''memoClassic параметры'''<br />
## в свойстве '''memoClassic параметры''' изменим параметр '''подтип''' на значение ''картинка-ключ''<br />
## выделим параметр '''подложки''' и перетащим на него из редактора ресурсов картинку ''cardback''<br />
## выделим параметр '''легкие картинки''' и перетащим из редактора ресурсов анимацию ''cardpict''<br />
## выделим параметр '''ключи''' и перетащим из редактора ресурсов анимацию ''cardkey''<br />
# сохраним проект<br />
# запустим вьювер<br />
<br />
=='''Основные свойства:'''==<br />
<br />
[[Файл:Memory1.png]]<br />
===Размер поля===<br />
*''Строки'' '''(rows)''' - число ячеек по вертикали.<br />
*''Столбцы'' '''(cols)''' - число ячеек по горизонтали.<br />
<br />
==='''Звуки'''===<br />
*''Удачный клик'' '''(sndClick)''' - клик на закрытую нерешенную ячейку.<br />
*''Неудачный клик'' '''(sndMissClick)''' - неудачный клик (картинка решенная или анимируется).<br />
*''Разбор узла'' '''(sndNode)''' - разобрали узел.<br />
*''Удачный разбор игры'' '''(sndWinGame)''' - удачный разбор игры.<br />
*''Неудачный разбор игры'' '''(sndLoseGame)''' - неудачный разбор игры.<br />
<br />
===Дополнительные настройки===<br />
*''Отступ(x)'' '''(indentX)''' - отступ между картинками по горизонтали.<br />
*''Отступ (y)'' '''(indentY)''' - отступ между картинками по вертикали.<br />
*''Время открытия'' '''(tmOpening)''' - время открытия картинки.<br />
*''Время закрытия'' '''(tmClosing)''' - время закрытия картинки.<br />
*''Анимация картинок'' '''(animType)''' тип анимирования картинок:<br />
** скалирование=0,<br />
** переворот по горизонтали=1,<br />
** переворот по вертикали=2,<br />
** проявление по альфе=3.<br />
** подлет=4<br />
<br />
==='''Файл уровней'''===<br />
*''Имя файла'' '''(lvlfile)''' - Файл-описание уровня.<br />
*''Номер уровня'' '''(lvlnum)''' - Номер уровня в файле.<br />
<br />
==='''Параметры колебаний'''===<br />
*''Амплитуда'' '''(osc_a)''' - начальная амплитуда.<br />
*''Время'' '''(osc_time)''' - время колебания ячейки после открытия.<br />
*''Количество'' '''(osc_num)''' - количество колебаний.<br />
*''Затухание'' '''(osc_beta)''', параметр beta уравнения x(t) = a0 * exp(-beta * t) * cos(omega * t + alpha) - чем больше, тем быстрее уменьшается амплитуда колебаний.<br />
<br />
==='''Параметры подлета'''===<br />
Параметры анимации картинок "подлет".<br />
*''Время подлета'' '''(takeoff_tm)'''<br />
*''Скейл подлета'' '''(takeoff_sc)'''<br />
*''Время переворота'' '''(revolution_tm)'''<br />
*''Количество переворотов'' '''(revolution_num)'''<br />
*''Скейл дальней стороны'' '''(far_side_sc)'''<br />
<br />
==='''Параметры хинта'''===<br />
*''Время открытия'' '''(hint_open)''' - время открытия картинки.<br />
*''Время закрытия'' '''(hint_close)''' - время закрытия картинки.<br />
*''Время показа'' '''(hint_show)''' - время показа пары картинок.<br />
*''Пауза между анимациями'' '''(hint_dif)''' - пауза между началом анимирования первой и второй картинки.<br />
<br />
==='''Режим игры'''===<br />
*''Режим'' '''(mod)''':<br />
**normal<br />
**blitz - сыграть за определенное время<br />
**moves - сыграть за определенное количество ходов.<br />
<br />
*''Время (в блице)'' '''(modtm)''' - время игры в режиме blitz<br />
*''Кол-во ходов'' '''(modmv)''' - количество ходов для режима moves.<br />
*''Визуализатор'' '''(modvis)''' - объект, который отображает текущее значение времени/ходов (timer/progres).<br />
<br />
===Дополнительные настройки ===<br />
<br />
*''Поведение решенного узла'' '''(snb)''':<br />
** оставлять картинки=0,<br />
** убирать с поля вместе с бекграундом=1,<br />
** устанавливать на их месте новые бекграунды=2.<br />
<br />
*''Начальная задержка'' '''(tmOpen)''' - начальная задержка перед стартом игры.<br />
*''Тип игры'' '''(memoType)''':<br />
** классическая=0,<br />
** найти свои=1,<br />
** copy=2.<br />
*''Флайер'' '''(flyer)''' - флайер при разборе узла. Нужен в двух экземплярах.<br />
<br />
==='''Препоказ'''===<br />
*''Нужен/не нужен'' '''(preShowNeeded)''' - включить/выключить препоказ картинок при старте игры.<br />
*''Время открытия'' '''(preShowOpenTm)''' - время открытия препоказа.<br />
*''Продолжительность'' '''(preShowTm)''' - продолжительность препоказа.<br />
*''Время закрытия'' '''(preShowCloseTm)''' - время закрытия препоказа.<br />
<br />
=='''Дополнительные параметры:'''==<br />
<br />
[[Файл:Memoryadd.png]]<br />
<br />
==='''Игрок'''===<br />
'''Важно!''' Должен быть как минимум один игрок.<br />
*''Игрок'' '''(player)''' - нужен/ненужен.<br />
*''Тип'' '''(pltype)''' - тип игрока: человек/компьютер.<br />
*''Ключ'' '''(key)''' - ключ игрока.<br />
*''Имя'' '''(name)''' - имя игрока<br />
*''Счетчик'' '''(counter)''' - счетчик ходов.<br />
*''Индикатор'' '''(indicator)''' - индикатор хода игрока(машина)<br />
*''Вероятность'' '''(probability)''' - вероятность правильного хода (для компьютера).<br />
*''Память'' "3" '''(plmemo)''' сколько ходов помнит компьютер.<br />
*''Время на ход'' '''(pltime)''' время на ход (для компьютера).<br />
<br />
==='''Бонус'''===<br />
*''Нужен'' '''(need)''' - нужен/ненужен.<br />
*''Ключ'' '''(key)''' - название бонуса.<br />
*''Графика'' '''(bonusImgs)''' - клип с графикой для бонусной карты.<br />
*''Картинка'' '''(bonusFrame)'' - номер фрейма в клипе, если хотим брать случайно, то -1<br />
*''Тип бонуса'' '''(bonusType)''':<br />
**открыть дополнительную карту=1<br />
**добавить ход=2<br />
<br />
==='''Удачный разбор: изменить состояние объекта'''===<br />
* объект '''(obj)''' объект, состояние которого нужно изменить.<br />
* состояние '''(st)''' новое состояние объекта.<br />
<br />
==='''Удачный разбор: изменить свойство объекта '''===<br />
* объект '''(obj)''' - объект, свойство которого нужно изменить.<br />
* свойство '''(par)''' - свойство, которое нужно изменить.<br />
* значение '''(val)''' Значение Новое значение свойства.<br />
<br />
==='''Неудачный разбор: изменить состояние объекта '''===<br />
* объект '''(obj)''' Объект Объект, состояние которого нужно изменить.<br />
* состояние '''(st)''' Состояние Новое состояние объекта.<br />
<br />
==='''Неудачный разбор: изменить свойство объекта'''===<br />
* объект '''(obj)''' - объект, свойство которого нужно изменить.<br />
* свойство '''(par)''' - свойство, которое нужно изменить.<br />
* значение '''(val)''' - новое значение свойства.<br />
<br />
Дополнительные параметры для разных типов игры:<br />
[[Файл:Memo3.png]]<br />
<br />
==='''memoClassic параметры'''===<br />
Цель игры - разобрать поле, убирая одинаковые картинки.<br />
*''Подтип'' '''(subType)''' подтип игры:<br />
** картинка-картинка - найти пары одинаковых картинок.<br />
** картинка-ключ - найти пары ассоциативных картинок.<br />
*''Сложность'' '''(level)''':<br />
** легкая<br />
** сложная - наличие картинок, которые труднее запомнить (белая/черная кошки).<br />
*''Повторения'' '''(duplication)''' повторения пар картинок:<br />
** запрещены<br />
** разрешены<br />
*''Подложки'' '''(bg)''' - анимация с картинками для подложек.<br />
*''Легкие картинки'' '''(pict0)''' - анимация с картинками для легкого уровня сложности.<br />
*''Сложные картинки'' '''(pict1)''' - анимация с картинками для сложного уровня сложности.<br />
*''Ключи'' '''(pictKey)''' - анимация с картинками для ключей (для подтипа картинка-ключ).<br />
<br />
==='''memoFindOwn параметры''' ===<br />
Цель игры - первым разобрать свои картинки.<br />
<br />
*''Подложки'' '''(bg)''' - клип с картинками для подложек.<br />
*''Нейтральные картинки'' '''(pictNeutral)''' - клип для нейтральных картинок.<br />
*''Картинки игроков'' '''(pict)''' - клип для активных картинок.<br />
*''Очки за свои ячейки'' '''(scoreOwn)''' - очки за клик на свою картинку.<br />
*''Очки за чужие ячейки'' '''(scoreOther)''' - очки за клик на чужую картинку(можно указывать отрицательное значения).<br />
*''Очки за нейтральные ячейки'' '''(scoreNeutral)''' - очки за клик на нейтральную картинку.<br />
*''Мультипликатор'' '''(scoreMultiplier)''' - за первую правильно открытую ячейку 1Х очков, за вторую - 2Х и т.д.:<br />
** нет=0,<br />
** да=1.<br />
*''Ячейки игроков'' '''(targetNum)''' - количество ячеек для каждого игрока.<br />
<br />
==='''memoCopy параметры'''===<br />
Цель игры - раскопировать изображение правильных фишек.<br />
*''Обычные картинки'' '''(imgs0)'''<br />
*''Верно нажатые'' '''(imgs1)'''<br />
*''Неверно нажатые'' '''(imgs2)'''<br />
*''Подложки'' '''(bgs)'''<br />
*''id для картинок'' '''(imgId)'''<br />
*''id для подложек'' '''(bgId)'''<br />
*''Пауза перед закрытием'' '''(endLevelPause)'''<br />
*''Итерации'' '''(numIters)'''<br />
*''Массив строк'' '''(rowsArray)'''<br />
*''Массив столбцов'' '''(colsArray)'''<br />
*''Пустые ячейки'' '''emptyArray'''<br />
<br />
=='''Файл уровней'''==<br />
Можно сделать макет уровней игры, и с помощью машины передавать memory параметр lvlnum, тем самым меняя играемый уровень. Данный параметр нужно передавать до перехода на экран с игрой.<br />
<br />
Уровень можно формировать 2 способами:<br />
* на основе постоянной прямоугольной решетки, при этом есть возможность задавать в решетке ячейки без плиток memory;<br />
* произвольным размещением плиток на сцене - путем задачи координат каждой плитки относительно объекта memory.<br />
<br />
'''Важно! При формировании уровня нужно следить, что бы количество игровых ячеек было парным'''<br />
<br />
==='''Структура уровня'''===<br />
<br />
<level><br />
id - номер уровня<br />
rows - высота сетки<br />
cols - ширина сетки<br />
time - время игры<br />
turns - количество ходов<br />
frames - количество картинок, из которых формируется поле<br />
dup - если 1, разрешены повторения пар. Если 0, повторений будет минимально возможное количество.<br />
clipBgs - id клипа с подложками // значения клипов переносятся вручную<br />
clipImgs - id клипа с картинками для матча // представляет собой id анимации<br />
clipKeys - id клипа с ключами для матче (в режиме картинка-ключ) // которая содержат нужные картинки<br />
<br />
<rules><br />
Описание правил для параметра "rules_preset"<br />
<rule><br />
id - сложность<br />
остальной список параметров такой же<br />
</rule><br />
...<br />
</rules><br />
<fakes> - ложные ячейки - ведут себя как и обычные ячейки, но ни с кем не матчатся<br />
<fake><br />
pos - позиция, она же номер в последовательности, описывающей поле<br />
frame - номер фрейма (должен быть в общей анимации)<br />
</fake><br />
</fakes><br />
<field> - прямоугольная решетка<br />
Описание ячеек поля {0,1}<br />
</field><br />
<field_pos><br />
Описание ячеек поля координатами (x0,y0),(x1,y1),...<br />
Переносы строк, пробелы и прочие табы разрешаются<br />
</field_pos><br />
</level><br />
<br />
<br />
====''Постоянная решетка''====<br />
<br />
<level id="0" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"><br />
<rules><br />
<rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /><br />
</rules><br />
<field_pos><br />
</field_pos><br />
<field> // где 0 - ячейка пустая<br />
1,1,0,1,1,1,<br />
1,1,1,1,1,1,<br />
1,1,0,1,1,1,<br />
1,1,1,0,1,1,<br />
1,1,1,1,1,0<br />
</field> <br />
</level><br />
<br />
<br />
====''Задание координат''====<br />
<br />
<level id="1" rows="5" cols="6" time="60000" turns="6" frames="3" dup="0" clipBgs="231" clipImgs="232" clipKeys="232"><br />
<rules><br />
<rule id="0" rows="4" cols="3" time="0" turns="6" frames="1" dup="0" clipBgs="231" clipImgs="232" clipKeys="232" /><br />
</rules><br />
<fakes> // Нумерация ячеек начинается с верхней левой. Каждая фейковая ячейка уменьшает<br />
<fake pos="4" frame="1" /> // количество обычных ячеек. Поэтому нужно следить, что бы количество обычных<br />
<fake pos="12" frame="2" /> // ячеек всегда было парным.<br />
<fake pos="0" frame="0" /><br />
</fakes><br />
<field_pos> //координаты отсчитываются от точки пивота объекта memory<br />
(0,-250),<br />
(-50,-150),(50,-150),<br />
(-100,-50),(0,-50),(100,-50),<br />
(-150,50),(-50,50),(50,50),(150,50),<br />
(-200,150),(-100,150),(0,150),(100,150),(200,150)<br />
</field_pos><br />
</level><br />
<br />
==Хинты==<br />
<br />
У memory есть 3 вида хинтов:<br />
* показать пару ячеек - hntt=0<br />
* показать все ячейки - hntt=1<br />
* убрать пару ячеек - hntt=2<br />
<br />
Для активации хинта нужно передать memory соответствующее значение hntt и передать состояние hint.<br />
Также для memory определено состояние skip, при передаче которого игра завершается победой.<br />
<br />
== Пример ==<br />
<br />
S:\!MOBILE\!!!EditorGames\Wiki_sample Файл: memory_sample.zip<br />
<br />
[[Category:Game mechanic]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Slotmachine&diff=6889Slotmachine2015-03-02T15:38:18Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
'''Slotmachine''' является объектом для реализации игр с механикой игровых автоматов. Slotmachine не просто управляет движением иконок на барабанах - он отвечает за анимацию выигранных линий и добавления новых линий для подсчета очков.<br />
<br />
==Общие параметры==<br />
(см. описание [[Object|Object]])<br />
<br />
[[Файл:Slot 1.PNG|right]]<br />
* '''тип''' - тип объекта<br />
* '''имя''' - имя объекта<br />
* '''синхронизация''' - синхронизация между лейаутами<br />
* '''положение'''<br />
** '''x''' - положение объекта по оси х<br />
** '''y''' - положение объекта по оси y<br />
* '''размер'''<br />
** '''w''' - ширина объекта в пикслях<br />
** '''h''' - высота объекта в пикселях<br />
* '''модификаторы'''<br />
** '''alpha''' - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен)<br />
** '''angle''' - угол поворота в градусах. 0 - не повернут. Отсчитывается от оси х вниз. Вверх идут отрицательные углы.<br />
** '''scale x''' - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
** '''scale y''' - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
* '''вычислять размер''' (''calcsize'') - Вычислять размер исходя из ширины и высоты объекта или использовать размер картинок" ''calcsize'': размер графики = 0, размер объекта = 1<br />
* '''эффект ячейки''' (''effect_obj'') - Объект, который склонируем для выиграшной ячейки. Флаер или машина с состоянием beg без подобъектов<br />
* '''эффект линии''' (''line_obj'') - Машина, обеспечивающая анимацию выигравших линий. Должна иметь состояния line_0 ... line_N (N от 4 до 24)<br />
[[Файл:Slot_2.PNG|200px|thumb|right|пример машины для анимации линий]]<br />
* '''рельсы''' - пять полей с номерами иконок. '''ВАЖНО:''' Появление в рельсе иконки с порядковым номером выше, чем максимальное кол-во иконок - вызовет падение viewer с ошибкой в log. <br />
** '''рельса N''' (''r1..r5'') - Рельса N - номера иконок (начиная с 0) через запятую. Пустая строка - игнорировать рельсу<br />
* '''параметры вращения''':<br />
** '''time''' (''spin_t'') - Время вращения левого барабана.<br />
** '''time step''' (''spin_t_step'') - Время на которое каждый последующий барабан крутится дольше предыдущего. (''таким образом был реализован эффект последовательной остановки барабанов, как в механической версии данного автомата'')<br />
** '''time delta''' - Случайная погрешность для времени вращения барабана. Нужна для исключения появления устойчивых наборов иконок. Составляет обычно 10% от времени вращения барабана.<br />
** '''vel min''' (''min_vel'') - Минимальная скорость вращения (левый барабан)<br />
** '''vel max''' (''max_vel'') - Максимальная скорость вращения (правый барабан).<br />
<br />
* '''звуки''': <br />
** барабан вращается (''sndspin'') - барабан вращается. <br />
** запуск барабанов (''sndstart'') - запуск барабанов. <br />
** остановка барабана (''sndstop'') - остановка барабана. <br />
** выигрыш (''sndwin'') - выигрыш. <br />
** проигрыш (''sndfail'') - проигрыш. <br />
** особая комбинация (''sndspecial'') - особая комбинация.<br />
<br />
* '''иконка''' (''slotico'') - добавляемый параметр с настройками иконки:<br />
** '''графика''' (''icores'') - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
** '''тип''' (''icotype'') - Тип иконки. 0 - обычная, 1 - Bonus, 2 - Wild, 3 - Scatter.<br />
0 - обычная иконка. 1 - при выпадении 3 и больше иконок на барабанах не зависимо от их расположения - запускается бонусная игра (пока не реализовано). 2- бонусная иконка, при попадании ее в линию - может заменить любую иконку и даёт возможность продолжить/начать/закончить игровую линию. 3 - механика схожа с бонусной иконкой, но вызывает уже бесплатные спины (пока не реализовано).<br />
** '''выигрыш''' (''icowin'') - Выигрыш по иконке. За 1, 2, 3 и т.д. иконку в линии.<br />
Пример:<br />
0, 1, 0, 0 - за строку начисляется выигрыш (1), если подряд попадается одна такая иконка. <br />
0, 0, 10, 0 - за строку начисляется выигрыш (10 очков), если подряд попадаются две таких иконки. <br />
0, 0, 0, 5 - за строку начисляется выигрыш (5 очков), если подряд попадаются три таких иконки.<br />
[[Файл:Slot_3.gif|thumb|right|пример расположения линий]]<br />
<br />
'''Важно! Иконки в линии считаются слева направо. На изображении линии 6 и 7 перепутаны.'''<br />
<br />
Текущий выигрыш можно узнать считав параметр '''current_win''' у объекта.<br />
Количество линий, эффект для которых нужно показать отображает параметр '''lines_num'''. Считывается у объекта. Обновляется каждый раз при выполнении '''next_line_effect'''.<br />
<br />
* '''состояния''':<br />
** '''spin''' - запустить барабаны<br />
** '''add_line''' - добавить еще одну линию как игровую<br />
** '''remove_line''' - убирает одну линию. Одна линия для проверки - минимум, убрать её нельзя.<br />
** '''clear''' - убрать все строки (кроме первой) для проверки выигрыша<br />
** '''next_line_effect''' - вызывает эффект для следующей линии. Одновременно с этим вызывается эффект для ячейки.<br />
** '''stop''' - остановить барабаны. Вызывается с параметром param от 0 до 4 для остановки конкретного барабана. Примечание: перевод объекта в состояния add_line и clear во время вращения барабана - приводит к его остановке.<br />
<br />
== Добавляемые параметры ==<br />
<br />
Меню выбора ''Добавляемые параметры'' к объектам активируется по правой кнопки мыши. <br />
<br />
[[Файл:+.png]] '''изменить состояние объекта - бросок завершен проигрыш''' - При current_win=0 по завершению вращения перевести слушателя в состояние.<br />
*'''объект'''- объект - состояние которого меняем.<br />
*'''состояние'''- состояние - значение нового состояния<br />
<br />
<br />
[[Файл:+.png]] '''изменить состояние объекта - бросок завершен выигрыш''' - При current_win!=0 по завершению вращения перевести слушателя в состояние.<br />
*'''объект'''- объект - состояние которого меняем.<br />
*'''состояние'''- состояние - значение нового состояния<br />
<br />
[[Файл:+.png]] '''эффект ячейки''' - При current_win!=0 по завершению вращения заменяет из набора ресурсов таких дополнительных свойств графику для клонируемого эффекта ячейки.<br />
*'''клип'''- ресурс. Перетаскивается из базы ресурсов.<br />
[[Категория:Game mechanic]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=App.icf&diff=6888App.icf2015-03-02T15:36:09Z<p>Aslav: </p>
<hr />
<div>[S3E]<br> <br />
'''MemSize'''=32000000 - ''Размер "кучи" для основного приложения в байтах. По-умолчанию 3Mб.''<br><br />
:'''MemSize''' должен быть больше чем '''MB_GRAFICS'''<br />
'''MemSize1'''=15000000 - ''Размер "кучи" для звуков приложения в байтах. По-умолчанию 0Mб.''<br><br />
'''WinWidth'''=960 - ''Ширина окна''<br><br />
'''WinHeight'''=640 - ''Высота окна''<br><br />
'''DispFixRot'''="Free" - ориентация приложения (Free/Landscape/Portrait/FixedLandscape/FixedPortrait)<br><br />
SysStackSize=65536<br><br />
MemSizeDebug=200000000<br><br />
'''WindowAllowResize'''=1 - ''Разрешить изменение размера окна''<br><br />
'''WinResizable'''=1 ''0 или 1. На устройствах с оконным мэнеджером даёт возможность изменять размеры окна.''<br><br />
SoundOutputFreq=44100 - ''Частота звука''<br><br />
IOSDispScaleFactor=200 <br><br />
<br />
[GX]<br><br />
NumTPages=64<br><br />
<br />
[Util]<br><br />
MemMgrMaxAllocWarning=0 <br><br />
<br />
[GL]<br><br />
AllowTextureAllocInBind=0<br><br />
<br />
[GX]<br><br />
DataCacheSize=136384 <br><br />
<br />
[GxFont]<br><br />
'''CacheTextureMaxSize=1024''' - кэш для текстовой текстуры<br> <br />
<br />
[s3e]<br><br />
SysAppVersion=0.0.1<br><br />
SysAppCaption="Viewer"<br><br />
<br />
[Banners]<br><br />
'''url'''="http://global.absolutist.com" - ''Ссылка на банеры''<br><br />
'''image_ur'''l="http://global.absolutist.com" - ''Ссылка на банеры''<br><br />
'''file'''="games.dat"<br><br />
'''def_file'''="games.xml" - ''файл настроек отображения банеров(куда по тапу на банер переходить, как часто показывать тот или иной банер)''<br><br />
'''game_id'''="32" - ''ID игры по которому определяется какие банеры показывать''<br><br />
'''locale'''="en-US" - ''Локализация банерной системы''<br><br />
<br />
[Flurry]<br><br />
'''game_id'''="17" - ''id игры в flurry, может быть вынесено в viewer.xml''<br><br />
<br />
[Default]<br><br />
'''save'''="0" - ''сохранять экран на котором были перед выходом из приложения. необходимо для книжек(1), для пазлов и прочего отключить(0). Может быть вынесено в viewer.xml''<br><br />
'''cut'''="0" - ''обрезать изображение по размеру layout-а. В случае если предполагается что отмасштабированое изображение будет мало по отношению к окну(окно больше, а картинка меньше) ставим "0" и изображение не будет обрезано а будет выходить за рамки окна. Может быть вынесено в viewer.xml''<br><br />
<br />
[GlobalTop] — ''настройки глобального рейтинга''<br><br />
'''game_id'''="3" - ''id игры в глобальном рейтинге''<br><br />
'''platform_id'''="0" - ''id платформы(andriod/ios/и т.д.)''<br><br />
'''test'''="false" — ''тестовая ли база рейтинга''<br><br />
'''url'''="http://" - ''адрес базы рейтинга''<br><br />
<br />
[Fonts]<br><br />
'''font_1'''="1_arial_16" - ''шрифт и его номер который используется''<br><br />
'''size_1=16''' - размер шрифта для формирования текстуры (чем больше значение, тем меньше знаков поместятся на текстуре. Необходимо будет увеличивать значение CacheTextureMaxSize=1024 что приведет к излишнему использованию памяти) <br><br />
'''chars_1=256''' - Число знаков помещенных в кеш для отрисовки в единицу времени на экране. Иначе говоря - максимальное количество разных знаков, которое может отображаться на отдельных экранах. <br><br />
'''koef_6=1''' - масштаб шрифта<br><br />
'''koef_6_de=1.3''' - масштаб шрифта для определённого языка<br><br />
<br />
<br />
[Twitter] - ''настройки для твиттера''<br><br />
'''CustomerKey'''=<br><br />
'''CustomerSecret'''=<br><br />
<br />
[Tapjoy] - ''настройки для TapJoy''<br><br />
'''game_id='''<br><br />
'''game_secret='''<br><br />
<br />
[Game]<br><br />
'''Market'''="amazon" - ''задаёт какие будут использованы инапы, если они есть, и ссылки в текстовой базе. возможны варианты: samsung, amazon, ios, wildtangent, android, blackberry, fortumo, google, mac, windows, phone8''<br><br />
'''debug="Absolutist-2253"''' - режим отладки, если ненужен, или для выгрузки в магазин - удалить.<br><br />
'''show_build_date=1''' - показывать дату билда вьювера<br><br />
'''DispFixRot'''='''"Landscape"''' програмная ориентация приложения. Не путать с параметром в [S3E] <br><br />
'''alignType'''='''1''' позиционирование объектов, если указано в объекте. 1 - по логическому экрану, 0 - по физическому. 1 - по умолчанию. <br><br />
<br />
[GameTrace] <br><br />
'''flurry=1''' - заносить в логи активность flurry <br><br />
'''memorymanager=1''' - заносить в логи количество памяти затраченной приложением <br><br />
<br />
[GameMemory] <br><br />
'''MB_GRAFICS=18000000''' - размер буфера для загрузки изображений. Сначала изображение помещается в этот буфер, потом из него в видеопамять. По умолчанию - 9 мб. Память для буфера входит в '''MemSize''' - тоесть для объектов выделяется объём памяти равный '''MemSize''' - '''MB_GRAFICS'''.<br><br />
<br />
[AndroidLVL]<br><br />
'''base64_public_key_1=""''' - 1-я часть лицензионного ключа приложения для google play, должна быть не более 100 символов<br><br />
'''base64_public_key_2=""''' - 2-я часть лицензионного ключа приложения для google play, должна быть не более 100 символов<br><br />
'''base64_public_key_3=""''' - 3-я часть лицензионного ключа приложения для google play, должна быть не более 100 символов<br><br />
'''base64_public_key_4=""''' - 4-я часть лицензионного ключа приложения для google play, должна быть не более 100 символов<br><br />
'''free_app=1''' - если приложение для google play бесплатное, должно стоять 1, 0 - если платное<br><br />
<br />
[ISCHARTBOOST]<br><br />
'''DisableChartboost=0''' - включено или выключен модуль ChartBoost<br><br />
'''AndroidAppID=""''' - AppID приложения для android сборки<br> <br />
'''AndroidAppSecret=""''' - AppSecret приложения для android сборки<br><br />
'''IOSAppID="" - AppID приложения для ios сборки'''<br><br />
'''IOSAppSecret=""''' - AppSecret приложения для android сборки<br><br />
<br />
[s3ePlayhaven] - настройки для Playhaven<br><br />
'''token=""'''<br><br />
'''secret=""'''<br><br />
<br />
[s3eAndroidAppirater]<br><br />
'''title="App name"''' - название приложения<br><br />
'''app_name="market://id?=com.your_company.application"''' - package id приложения<br><br />
'''days=0'''<br><br />
'''launches=0'''<br><br />
'''events=0'''<br><br />
'''need_email_button=1''' - нужна ли кнопка "отправить письмо"<br><br />
'''email_addr="user@yourcompany.com"''' - email на который будет отправлено письмо<br><br />
'''email_subj="Subject of email"''' - тема письма<br><br />
'''email_text="Hello!"''' - текст письма<br><br />
<br><br />
<br />
Добавляет в options параметр и значение при запуске приложения. Параметры этой секции будут установлены в опции; нумерация должна быть последовательной от 1 до бесконечности <br><br />
'''[Parameters]'''<br><br />
'''param1_name="param1.param"''' - имя параметра<br><br />
'''param1_value="12"''' - значение параметра<br><br />
'''param1_overwrite="0"''' - перезаписывать параметр, если был ранее 1 - по умолчанию. 1 - перезаписывать, 0 - неперезаписывать <br><br />
'''param2_name="param2"'''<br><br />
'''param2_value="13"'''<br><br />
<br />
Также для android устройств необходимо добавить следующие параметры для улучшения отображения графики<br />
<pre><br />
<br />
[GL]<br />
AndroidSurfaceHolder=1<br />
EGL_RED_SIZE=8<br />
EGL_GREEN_SIZE=8<br />
EGL_BLUE_SIZE=8<br />
EGL_ALPHA_SIZE=8<br />
<br />
</pre><br />
<br />
[[Category:Projects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Viewer&diff=6865Viewer2015-02-18T13:05:37Z<p>Aslav: Отмена правки 6864, сделанной участником Aslav (обс.)</p>
<hr />
<div>#REDIRECT [[Интерфейс_Viewer]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Viewer&diff=6864Viewer2015-02-18T13:03:49Z<p>Aslav: </p>
<hr />
<div>#REDIRECT [http://ge.absolutist.com/index.php/App.icf]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=ResourcesEditor&diff=6861ResourcesEditor2015-02-13T09:22:50Z<p>Aslav: Aslav переименовал страницу RecurseEditor в ResourcesEditor без оставления перенаправления</p>
<hr />
<div>#REDIRECT [[Интерфейс_ResourceEditor]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_ResourceEditor&diff=6860Интерфейс ResourceEditor2015-02-13T09:06:36Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
== [[Файл:Ico_base.png]]Редактор ресурсов ==<br />
<br />
===Общее описание===<br />
[[Файл:Ico_base.png|40px]]'''[[Редактор ресурсов]]''' - приложение, которое управляет базой графических, анимационных, видео и звуковых ресурсов проекта. <br>[[Файл:New resource editor look.jpg|500px|right]]<br />
Ресурсы проекта могут быть внесены и модифицированы только через Редактор ресурсов.<br><br />
Как и в редакторе сцен, вверху окна редактора ресурсов расположено меню и кнопки быстрого доступа: создать базу ресурсов, открыть уже существующую, добавить картинку (png, jpeg), анимацию, мелодию (mp3, ogg), видео (mp4).<br><br />
Ниже, в левой панели находятся папки, внутри которых можно найти различные графические ресурсы:<br />
*Если в дереве папок активна данная папка, то на правой панели мы видим список графических ресурсов в виде иконок. <br />
*Если же в дереве кликнуть на имя конкретной картинки, то в правой панели она будет представлена в натуральную величину. <br />
*При клике на ресурс в левой нижней части окна редактора ресурсов появится панель с настройками ресурса в зависимости от его типа<br />
<br />
===Меню Редактора ресурсов===<br />
Некоторые инструменты также вызываются горячими клавишами (комбинация клавиш приведена в скобках )<br />
<br />
====Меню File====<br />
*New Project ('''Ctrl'''+'''N''') – создать новый проект с новой базой ресурсов. Возможно в качестве базы ресурсов выбрать уже существующий каталог ресурсов.<br />
*Open Project ('''Ctrl'''+'''O''') - открыть базу ресурсов ранее созданного проекта<br />
*Создать проект по папке — создать базу ресурсов по каталогу с ресурсами<br />
<br />
====Меню View====<br />
*Always on top - всегда отображать Редактор Ресурсов поверх всех окон<br />
*Image Viewer - отобразить панель Image Viewer для просмотра ресурсов<br />
<br />
====Меню Project====<br />
*Add Root Base - создать еще одну базу ресурсов в текущем проекте<br />
*Add images — добавить изображения в проект<br />
*Add Animations — добавить анимацию в проект<br />
*Add Sounds - добавить звук в проект<br />
*AddVideos - добавить видео в проект<br />
*Delete Resource — удалить ресурс<br />
*Options — вызов окна настройки отображения изображений в редакторе<br />
*Обрезать images в старом проекте — вызов функции удаления бордера изображения (у всех ресурсов) на указанную величину в параметре Transparent Border Size вкладки Cropping Settings из Options меню Project<br><br />
<br />
Кнопки Add images, Add Animations, Add Sounds , AddVideos, Delete Resource вызывается по клику правой кнопки мыши в дереве базы ресурсов<br />
<br />
====Область визуализации ресурсов Image Viewer====<br />
В данной области визуализируется ресурс. Все виды ресурсов визуализируются как изображение.<br />
По клику правой кнопкой мыши внутри области визуализации выпадает меню:<br><br />
''Center image by'' Предположим мы изменили точку пивота ресурса.<br><br />
*Если выберем Image Center to Center, то в центре Image Viewer отобразится ресурс.<br />
* Если выберем Image Pivot to Center, то в центре Image Viewer отобразится точка пивота. (См. рисунок справа)<br><br />
[[Файл:RR_Pivot_1_.JPG|300px]] [[Файл:RR_Pivot_2.JPG|350px]]<br><br />
''Directory View Mode'' — Если мы выберем режим Full Source Image , то мы будем видеть изображение и пустую область вокруг него, равную размерам сцены, а если Cropped Images — то только изображение<br><br />
<br />
====Shape====<br />
Для работы с объектами физического мира иногда требуется создать дополнительный контур вокруг объекта.<br />
Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом в Shape editor.<br />
Количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами. <br />
<br />
[[Файл:Физика5.PNG|500px]]<br><br />
<br />
Центр круга, которым задается шейп, совпадает с точкой пивота. Радиус круга устанавливается путем отдаления/приближения кликов от точки пивота.<br><br />
<br />
[[Файл:Circle shape.jpg|500px]]<br><br />
<br />
Для удаления нарисованного шейпа нажимаем Delete<br><br />
<br />
=== Создание базы графических ресурсов === <br />
1. Запустить редактор ресурсов ResourcesEditor.exe. В меню File выбрать New Project.<br><br />
2. В окне базы создания ресурсов в строке "Папка проекта" указать путь на ранее созданную пустую папку Resources, затем в строке "Имя базы ресурсов" вписать имя корневой базы Learning_Base.<br><br />
[[Файл:00_26.PNG]]<br><br />
3. В корневой базе создать папку Create New Folder (например, папка Lesson_01).<br><br />
4.Загрузить исходники графики из папки Sources → Lesson_01. <br><br />
[[Файл:00 27.png]] [[Файл:00 28.png]] [[Файл:00_29.PNG]]<br><br />
В папке ресурсов Resources автоматически создается папка с корневой базой (в нашем случае Learning_Base), в которой автоматически появляются папка с графическими ресурсами Lesson_01 (для урока 1) и файл Learning_Base.sirx<br><br />
[[Файл:00 30.png]]<br><br />
'''Внимание! Прямое изменение структуры файлов в папке Resources запрещено. Допускается работа только через редактор ресурсов.'''<br />
<br />
=== Автоматическое создание базы ===<br />
<br />
В случае, если имеется уже готовый набор графических ресурсов (а именно, структурированная папка), то можно использовать ее. Для этого нужно при создании новой базы в строке "Папка с графическими ресурсами" указать путь, где находится готовая база ресурсов.<br />
<br />
[[Файл:00_30a.PNG]] [[Файл:00_30b.PNG]]<br />
<br />
=== Действия с ресурсами в Resources Editor ===<br />
==== Общие свойства и действия с ресурсами====<br />
'''После любых действий в редакторе ресурсов необходимо обновить базу ресурсов в Редакторе сцен!'''<br />
*каждому ресурсу присваивается уникальный номер.<br />
*при добавлении ресурса - присваивается следующий по порядку уникальный номер<br />
*при экспорте экранов в текущий проект ресурсы добавляются автоматически в базу текущего проекта и присваиваются им следующие по порядку уникальные номера<br />
*может существовать несколько ресурсов с одинаковыми именами<br />
*ресурсы могут быть автоматически добавлены в текущий проект или добавлены из другой базы ресурсов<br />
*ресурсы могут быть удалены, модифицированы<br><br />
<br />
==== Графические ресурсы====<br />
В редактор ресурсов подгружаются графические форматы: <br />
*JPEG - изображение, не имеющее прозрачности. Может использоваться для "облегчения веса", в качестве фонового изображения или для паззла;<br />
*PNG - может поддерживать прозрачность, произвольные границы изображения. Сохраняет высокое качество изображения. <br />
=====Создание бордера изображения=====<br />
[[Файл:00_37.PNG|right]]<br />
Для уменьшения вероятности появления графических артефактов вокруг изображений рекомендуется создавать прозрачную область вокруг изображения. Размеры бордера задаются в пикселях.<br><br />
Для создания прозрачной области кликаем по изображению и меняем параметр BorderSize на панели настройки ресурса(см. рисунок справа). После этого обязательно нажимаем '''Аpply''', иначе выбранное значение для бордера не сохранится.<br><br />
Для создания бордеров у всех ресурсов выбираем меню Projects – Options и на вкладке Cropping Settings параметру Transparent Border Size присваиваем нужное значение.<br><br />
[[Файл:00_46.PNG|00_46.PNG]] [[Файл:00_47.PNG]]<br><br />
<br />
=====Точка пивота=====<br />
Иногда возникает необходимость сместить точку вращения объекта вокруг своей оси (точку пивота).<br><br />
Для этого в редакторе ресурсов выбираем редактируемый объект и в панели настроек ресурса изменим значения параметров Pivot.<br><br />
Если мы хотим произвольно задать координаты точки пивота, то ставим галочку Edit Pivot и после этого «таскаем» редактируемый ресурс по области визуализации ресурсов. Точка пивота находится в центре экрана (красный крестик)<br />
<br />
=====Заменить изображение, существующие в базе ресурсов=====<br />
Предположим, нам необходимо подменить изображение загруженное в базу ресурсов, но при этом не удаляя его из базы.<br><br />
Для это кликаем правой кнопкой мыши по изображению и выбираем в меню "заменить изображение"<br />
<br />
=====Настройки текстур=====<br />
Параметр texture mode [[Файл:Resource editor texture.png]] определяет принадлежность картинки к текстуре.<br />
*Если стоит -1, то картинка которая используется только на одном экране вместе с такими же картинками(которые используются только на том же экране что и выбранная) на этом экране будут упакованы в текстуру, если все картинки не поместятся в текстуру размером 1024х1024, то те картинки, которые не поместились попадут в 2-й файл текстуры. <br />
*Если картинка используется на нескольких экранах, то в текстуру она не попадёт. Также она не попадет в текстуру, если используется в одном экране, но на нескольких принадлежащих ему сценах.<br />
*Если стоит 1, 2, 3 и т.д до 100, то данная картинка объединится в текстуру вместе с картинками у которых стоит такое же значение в texture mode. Если все не поместятся в одну текстуру размером 1024х1024, то не поместившиеся изображения попадут в 2-ю текстуру и т.д..<br />
В процессе упаковки ресурсов в текстуры картинки могут быть развернуты. Отказаться от этого можно, выбрав '''Do not rotate'''.<br />
<br />
<br />
== Создание контейнеров ==<br />
<br />
Контейнеры - это папки, содержащие ресурсы. Отличие от обычных папок состоит в том, что все попавшие в один контейнер файлы будут упакованы в одну текстуру. Причем текстура эта будет квадратной, а также будет дотягиваться до степени двойки.<br />
<br />
====Настройка параметров контейнера====<br />
<br />
Если принадлежащий контейнеру ресурс нигде не используется, то он никуда не попадёт: что не в текстуру контейнера, что не в ресурсы экспортированного проекта вообще.<br><br />
<br />
[[Файл:Container params.jpg]]<br />
<br />
'''Размер текстуры'''<br />
<br />
Для контейнера есть возможность выбирать размер текстуры, в которую упакуются его ресурсы: 1024*1024, 2048*2048. В случае, когда в одну текстуру не вместятся все ресурсы контейнера, будет создана еще одна текстура с таким же размером. <br><br />
Например, была создана текстура размера 1024*1024 с именем container_0000. Но остался один ресурс, который в нее не вместился. Независимо от размера этого ресурса будет создана еще одна текстура размера 1024*1024 с именем container_0001.<br><br />
Но если для контейнера был, допустим, выбран размер текстуры 1024*1024, а его ресурсы могут смело вместится в текстуре 512*512 (256*256, 128*128 и т.д), то будет создана текстура соответствующего размера.<br />
<br />
'''Настройки качества и оптимизации'''<br />
<br />
Можно настроить качество графики после экспорта и оптимизацию для скорости загрузки проекта или для уменьшения распакованного дистрибутива.<br />
Также графику контейнера можно не упаковывать в текстуры, но при этом настройки качества графики и оптимизации всё равно будут применены.<br />
<br />
'''Тип текстуры'''<br />
<br />
Тип текстуры определяется автоматически на основе платформы, необходимого качества графики и приоритета(скорость или размер распакованного дистрибутива) <br><br />
<br />
[[Файл:Scene editor export window.jpg]]<br><br />
<br />
Но приоритетней считаются настройки, сделанные для контейнера.<br />
<br />
<br />
'''Пример'''<br />
<br />
Был создан проект, в котором ресурсы некоторого экрана находились в контейнере. Размер текстуре был задан 1024*1024. Поочередно для контейнера выбирались все возможные типы текстур. Результаты представлены ниже.<br><br />
1) None - текстура согласно настройкам экспорта.<br />
<br />
2) Compressed (RGB) + Png (A)<br><br />
container_0000.png - 1,28 Mb, <br><br />
container_0000_а.png - 48,7 Kb <br><br />
[[Файл:Texture_type_2.png]]<br />
<br />
3) Jpg (RGB) + Png (A)<br><br />
container_0000.jpg - 277 Kb, <br><br />
container_0000_а.png - 48,7 Kb <br><br />
[[Файл:Texture_type_3.png]]<br />
<br />
4) Compressed (RGBA)+Hitmask<br><br />
container_0000.png - 1,51 Mb, <br><br />
container_0000.msk - 128 Kb <br><br />
[[Файл:Texture_type_4.png]]<br />
<br />
5) Png (RGBA)<br><br />
container_0000.png - 1,51 Mb <br><br />
[[Файл:Texture_type_5.png]]<br />
<br />
6) Jpg (RGB)<br><br />
container_0000.jpg - 266 Kb <br><br />
[[Файл:Texture_type_6.png]]<br />
<br />
====Анимация====<br />
Анимация создается путем вызова кнопки add_animations и выбором нескольких графических файлов из любой папки <br> <br />
[[Файл:00_40.PNG]][[Файл:00_41.PNG|300px]]<br><br />
После загрузки анимации можно изменить ее параметры. Например, изменить скорость анимации (смены кадров) и зациклить, поставив галочку напротив Looped.<br><br />
В левой части нижнего окна анимации находится список загруженных изображений, в правой - последовательность изображений (кадров), которые можно менять местами, добавлять/удалять, загружать в прямом/обратном порядке. Таким образом, можно "уменьшить вес" анимации за счет использования меньшего количества исходных изображений.<br><br />
[[Файл:00_43.PNG]][[Файл:00_44.PNG]] [[Файл:00_45.PNG]]<br />
<br />
====Звуковые файлы==== <br />
Звуковые файлы нам нужны для озвучки персонажей и не только. Используются файлы в форматах:<br><br />
*mp3 - используется как ресурс для длинного звука mus. Звуки такого формата могут воспроизводиться только последовательно.<br />
*ogg - используется как ресурс для короткого звука snd (snd-звуки могут воспроизводиться параллельно) и для подключения голоса voice (если voice подключен к тексту, то воспроизводится последовательно). Имеет меньший объем, чем формат mp3.<br />
Воспроизведение звуковых файлов устанавливают через различные объекты. Например, через состояния объекта Machine<br />
[[Файл:00_48.PNG]]<br><br />
<br />
<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Slotmachine&diff=6818Slotmachine2014-11-20T20:48:14Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
Slotmachine является объектом для реализации игр с механикой игровых автоматов. Slotmachine не просто управляет движением иконок на барабанах - он отвечает за анимацию выигранных линий и добавления новых линий для подсчета очков.<br />
<br />
==Общие параметры==<br />
(см. описание [[Object|Object]])<br />
<br />
[[Файл:Slot 1.PNG|right]]<br />
* '''тип''' - тип объекта<br />
* '''имя''' - имя объекта<br />
* '''синхронизация''' - синхронизация между лейаутами<br />
* '''положение'''<br />
** '''x''' - положение объекта по оси х<br />
** '''y''' - положение объекта по оси y<br />
* '''размер'''<br />
** '''w''' - ширина объекта в пикслях<br />
** '''h''' - высота объекта в пикселях<br />
* '''модификаторы'''<br />
** '''alpha''' - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен)<br />
** '''angle''' - угол поворота в градусах. 0 - не повернут. Отсчитывается от оси х вниз. Вверх идут отрицательные углы.<br />
** '''scale x''' - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
** '''scale y''' - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
* '''вычислять размер''' (''calcsize'') - Вычислять размер исходя из ширины и высоты объекта или использовать размер картинок" ''calcsize'': размер графики = 0, размер объекта = 1<br />
* '''эффект ячейки''' (''effect_obj'') - Объект, который склонируем для выиграшной ячейки. Флаер или машина с состоянием beg без подобъектов<br />
* '''эффект линии''' (''line_obj'') - Машина, обеспечивающая анимацию выигравших линий. Должна иметь состояния line_0 ... line_N (N от 4 до 24)<br />
[[Файл:Slot_2.PNG|200px|thumb|right|пример машины для анимации линий]]<br />
* '''рельсы''' - пять полей с номерами иконок<br />
** '''рельса N''' (''r1..r5'') - Рельса N - номера иконок (начиная с 0) через запятую. Пустая строка - игнорировать рельсу<br />
* '''параметры вращения''':<br />
** '''time''' (''spin_t'') - Время вращения всех барабанов.<br />
** '''vel min''' (''min_vel'') - Минимальная скорость вращения (левый барабан)<br />
** '''vel max''' (''max_vel'') - Максимальная скорость вращения (правый барабан).<br />
* '''иконка''' (''slotico'') - добавляемый параметр с настройками иконки:<br />
** '''графика''' (''icores'') - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
** '''тип''' (''icotype'') - Тип иконки. 0 - обычная, 1 - Wild, 2 - Bonus, 3- Scatter.<br />
0 - обычная иконка. 1 - заменяет любую случайную иконку (нужно уточнение). 3- бонусная иконка, при попадании ее в линию - линия становится выигрышной и начисляются бонусные очки. 3 - нужно уточнение.<br />
** '''выигрыш''' (''icowin'') - Выигрыш по иконке. За 1, 2, 3 и т.д. иконку в линии.<br />
Пример:<br />
0, 1, 0, 0 - за строку начисляется выигрыш (1), если подряд попадается одна такая иконка. <br />
0, 0, 10, 0 - за строку начисляется выигрыш (10 очков), если подряд попадаются две таких иконки. <br />
0, 0, 0, 5 - за строку начисляется выигрыш (5 очков), если подряд попадаются три таких иконки.<br />
[[Файл:Slot_3.gif|thumb|right|пример расположения линий]]<br />
<br />
'''Важно! Иконки в линии считаются слева направо. На изображении линии 6 и 7 перепутаны.'''<br />
<br />
Текущий выигрыш можно узнать считав параметр '''current_win''' у объекта.<br />
<br />
* '''состояния''':<br />
** '''spin''' - запустить барабаны<br />
** '''add_line''' - добавить еще одну линию как игровую<br />
** '''clear''' - убрать все строки (кроме первой) для проверки выигрыша<br />
** '''stop''' - остановить барабаны. Примечание: перевод объекта в состояния add_line и clear во время вращения барабана - приводит к его остановке.<br />
<br />
[[Категория:Game mechanic]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Globaltimer&diff=6817Globaltimer2014-11-20T20:45:52Z<p>Aslav: </p>
<hr />
<div>'''Globaltimer''' - таймер, работающий в режиме "реального времени". После запуска работает даже если приложение не запущено. По окончанию времени переводит указанный объект в указанное состояние. <br />
<br><br />
== Основные параметры ==<br />
[[Файл:Glob tm 1.PNG|right]]<br />
*'''id-объекта'''(id) - уникальный номер объекта<br />
*'''тип''' (type) - Выбранный тип объекта определяет его функциональное назначение и его свойства<br />
*'''имя'''(name) - Имя графического объекта в дереве проекта. Может быть произвольным. По умолчанию соответствует имени файла из базы ресурсов.<br />
*'''синхронизация''' (sync)- Применяется для синхронизации между лейаутами, если указан параметр ''нет'' то объект будет активен только на текущем лейауте<br />
<br />
== Таймер ==<br />
<br />
*'''задержка''' (time)- Время в секундах, через которое сработает таймер.<br />
*'''объект''' (obj)- Объект, которому будем менять состояние.<br />
*'''состояние''' (st)- Состояние для объекта из предыдущего поля.<br />
*'''параметр''' (paramName)- параметр слушателя, который будем менять по окончанию времени таймера.<br />
*'''значение параметра''' (paramValue)- значение параметра из предыдущего поля. ''Параметр и его значение пока нельзя добавить через поля в свойствах, их нужно задавать машиной.''<br />
<br />
== Состояния ==<br />
<br />
*'''add''' - Запускает таймер с заданными параметрами.<br />
*'''clear''' - очищает очередь таймеров.<br />
<br />
== Возможности и примеры использования ==<br />
<br />
Данный таймер особенно удобно использовать, когда стоит задача выдать игроку некий бонус, который действует определенное (не игровое) время или возможность использовать бонус, которая так же существует только определенный промежуток реального времени. Подразумевается использование данного объекта вместо использования экономики не по назначению.<br />
<br />
Пример использования: На главном экране игры появляется некий персонаж, который предлагает игроку приобрести бонус (дополнительное время игры, дополнительные подсказки и т.д). Предложение действительно только определенный промежуток времени. Даже если приложение было закрыто или отсутствует соединение - время предложения должно уменьшаться, а по его истечению - персонаж и предложение пропадают.<br />
<br />
[[Файл:Glob tm 2.PNG|right]]<br />
После инициализации таймера в опции записывается ряд параметров, которые могут понадобиться для создания интерфейса:<br />
<br />
* доступ к ним можно получить по адресу globaltimer''(id объекта таймера)''.i''(порядковый номер таймера в очереди)''.<br />
* .tm - время до окончания таймера<br />
* .obj - id слушателя окончания<br />
* .st - состояние, в которое переведет слушателя таймер<br />
<br />
Пример: globaltimer1604.i0.tm - используя такой ключ можно визуализировать время, через которое произойдет событие с помощью объекта [[Timer|Timer]]<br />
<br />
Обращаться к настройкам таймера можно из машины состояний. См. пример справа.<br />
После добавления нескольких таймеров у одного объекта globaltimer - они выстраиваются в очередь (iN, где N - порядковый номер таймера, начиная с 0). При этом увеличивается параметр globaltimer''(id)''.num. По окончанию действия всех таймеров - num=0.<br />
<br />
== Особенности работы ==<br />
<br />
* Следует отметить, что запись в опции указанных выше параметров проходит не "мгновенно". Оценить время инициализации таймера можно открыв options.xml и сравнив параметры r_lastlaunch и время указанное в поле time в опциях объекта. Таким образом проверка параметров в init'ном состоянии машины может привести к трудно вычисляемой ошибке, т.к объект еще не записал обновленные значения.<br />
<br />
* После передачи параметров объекту следует обязательно его про'init'ить. Или через машину состояний или в таймере, указав в поле st - init.<br />
<br />
[[Категория:Common objects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D1%81%D1%86%D0%B5%D0%BD&diff=6422Редактор сцен2014-09-19T14:26:34Z<p>Aslav: </p>
<hr />
<div>'''§7. Создание проекта'''<br />
<br />
1. Для создания нового игрового проекта необходимо запустить редактор сцен SceneEditor.<br />
<br />
[[Файл:00_31.PNG]]<br />
<br />
2. В верхнем меню Проект выбрать Новый (т.е. создать новый проект).<br />
<br />
[[Файл:00 32.png]]<br />
<br />
3. В появившемся окне указать имя проекта и имя базы.<br />
<br />
[[Файл:019.JPG]]<br />
<br />
4. В этом окне выбираем устройство для которого создаётся проект.<br />
<br />
[[Файл:020.JPG]]<br />
<br />
<br />
[[Файл:021.JPG]]<br />
<br />
5. В редакторе сцен в меню Проект → Сохранить → проект Learning. Эту методику действий можно брать за шаблон для создания других проектов.<br />
<br />
Результат: Создана база ресурсов и проект для выполнения Уроков. <br />
<br />
[[Файл:00 36.png]]<br />
<br />
<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2&diff=6421Редактор ресурсов2014-09-19T14:26:19Z<p>Aslav: </p>
<hr />
<div>Редактор ресурсов - отдельное приложение, которое необходимо для создания и управления базой графических, анимационных, видео и звуковых ресурсов. <br />
<br />
<br />
Создать папку с названием проекта (например, Learning) → загрузить из ''Y:\!MOBILE\Hidden Object Editor\_All_Last_Builds'' редактор сцен SceneEditor, проигрыватель сцен Viewer, редактор ресурсов ResourcesEditor и папку Sources с исходниками графики для формирования базы графическмх ресурсов. Для ускорения работы редактора копируем все содержимое папки на локальный диск.<br />
<br />
<br />
== Создание базы графических ресурсов ==<br />
<br />
<br />
#. Запустить редактор ресурсов ResourcesEditor.exe. <br><br />
В меню File выбрать New Project.<br />
<br />
[[Файл:00_25.PNG]]<br />
<br />
#. В окне базы создания ресурсов в строке "Папка проекта" указать путь на ранее созданную пустую папку Resources, затем в строке "Имя базы ресурсов" вписать имя корневой базы Learning_Base.<br />
<br />
[[Файл:00_26.PNG]]<br />
<br />
3. В корневой базе создать папку Create New Folder (например, папка Lesson_01).<br />
<br />
[[Файл:00 27.png]]<br />
<br />
4. Загрузить исходники графики из папки Sources → Lesson_01. <br />
<br />
[[Файл:00 28.png]] [[Файл:00_29.PNG]]<br />
<br />
В папке ресурсов Resources автоматически создается папка с корневой базой (в нашем случае Learning_Base), в которой автоматически появляются папка с графическими ресурсами Lesson_01 (для урока 1) и файл Learning_Base.sirx<br />
<br />
[[Файл:00 30.png]]<br />
<br />
'''Внимание!''' ''- прямое изменение структуры файлов в папке Resources запрещено. Допускается работа только через редактор ресурсов (ResourcesEditor).''<br />
<br />
== Автоматическое создание базы ==<br />
<br />
. В случае, если имеется уже готовый набор графических ресурсов (а именно, структурированная папка), то можно использовать ее. Для этого нужно при создании новой базы в строке "Папка с графическими ресурсами" указать путь, где находится готовая база ресурсов.<br />
<br />
[[Файл:00_30a.PNG]] [[Файл:00_30b.PNG]]<br />
<br />
== Работа в Resources Editor ==<br />
<br />
<br />
* Графические ресурсы, которые можно загружать в ResourcesEditor, могут быть двух типов:<br />
<br />
JPEG - изображение, не имеющее прозрачности. Может использоваться для "облегчения веса", в качестве фонового изображения или для паззла;<br />
<br />
PNG - может поддерживать прозрачность, произвольные границы изображения. Сохраняет высокое качество изображения. <br />
<br />
Использование бордеров исключает появление артефактов вокруг png-изображений за счет добавления прозрачной области (в пикселях) по контуру. Это можно сделать, как локально, так для всех изображений:<br />
<br />
Для одного изображения: [[Файл:00_37.PNG]]<br />
<br />
Для всех изображений: [[Файл:00_46.PNG]] [[Файл:00_47.PNG]]<br />
<br />
* Анимация загружается из любой папки с некоторым количеством файлов изображений. <br />
<br />
[[Файл:00_40.PNG]] [[Файл:00_41.PNG]]<br />
<br />
После загрузки анимации можно изменить ее параметры. Например, изменить скорость анимации (смены кадров) и зациклить, поставив галочку напротив Looped.<br />
<br />
[[Файл:00_42.PNG]] <br />
<br />
В левой части нижнего окна анимации находится список загруженных изображений, в правой - последовательность изображений (кадров), которые можно менять местами, добавлять/удалять, загружать в прямом/обратном порядке. Таким образом, можно "уменьшить вес" анимации за счет использования меньшего количества исходных изображений.<br />
<br />
[[Файл:00_43.PNG]] [[Файл:00_44.PNG]] [[Файл:00_45.PNG]]<br />
<br />
* Звуковые файлы, подгружаемые в ResourcesEditor, могут быть двух форматов:<br />
<br />
mp3 - используется как ресурс для длинного звука mus. Звуки такого формата могут воспроизводиться только последовательно.<br />
<br />
ogg - используется как ресурс для короткого звука snd (snd-звуки могут воспроизводиться параллельно) и для подключения голоса voice (если voice подключен к тексту, то воспроизводится последовательно). Имеет меньший объем, чем формат mp3.<br />
<br />
[[Файл:00_48.PNG]]<br />
<br />
<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8_%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%BE%D0%B2_%D0%B2_%D0%B8%D0%B3%D1%80%D0%B5&diff=6420Профили игроков в игре2014-09-19T14:25:54Z<p>Aslav: </p>
<hr />
<div>Если вы решили добавить в нашу игру профили, тогда нам понадобятся такие типы объектов как [[Edit]], [[Options]], [[Table]] и другие.<br />
<br />
==Как это работает==<br />
<br />
Имя игрока вводиться в поле объекта [[Edit]] после чего сохраняется в [[Options]] и там живет, если у нас много пользователей и мы хотим сменить одного на другого у нас есть таблица где отображены все пользователи.<br><br />
Что мы должны знать об этих объектах при создании системы профилей:<br><br />
<br />
У нас должен быть объект [[Options]] который должен находится на глобальном экране!!!<br />
у нас должны быть созданы таблица [[Table]] и объект [[Edit]] находятся также на глобальном экране!!! для того чтоб эти объекты были видны нашим опциям.<br><br />
<br />
===Опции===<br />
В опциях есть два поля ввода, там мы указывает таблицу и объект Edit, см. ниже на скрине.<br><br />
[[Файл:player01.jpg]]<br />
<br />
===Поле ввода Edit===<br />
<br />
Все параметры и настройки этого объекта см. [[Edit]]<br />
<br />
При открытии этого объекта на сцене нам понадобиться кнопка для записи текста из поля эдит в опции, назовем ее create.<br><br />
<br />
[[Файл:player02.jpg]]<br><br />
<br />
На скрине мы видим поле эдит выделено прямоугольником синего цвета, кнопка "back" - закрывает окно(экран) с полем эдит.<br><br />
<br />
Кнопка "create" записывает игрока(текст из поля) в опции.<br><br />
При нажатии на кнопку она должна изменить состояние опциям сначала на add а потом на update, как показано на скрине ниже.<br> <br />
'''Последовательность изменения: сначала add потом update!!!'''<br />
<br />
[[Файл:player04.jpg]]<br><br />
<br />
После этого "Player 1" как мы видим на скрине запишется в опции.<br />
<br />
===Таблица===<br />
<br />
Все параметры и настройки этого объекта см. [[Table]]<br><br />
<br />
Количество профилей ограничено только кол-ом ячеек таблицы.<br><br />
По-этому ячеек должно быть очень много. Или можно создать какую-то систему блокировки создания профилей если их кол-во достигло определенного N.<br><br />
<br />
При открытии на сцене таблице нам понадобятся такие кнопки как:<br><br />
<br />
При каждом открытии экрана, либо сцены, либо поп-ап окна где находится таблица, мы должны вызывать состояние опциям "update".<br><br />
<br />
[[Файл:player07.jpg]]<br />
<br />
На скрине ниже кнопка "choose" - выбирает пользователя, на котором стоит курсор таблицы, как текущего.<br><br />
кнопка "delete" - удаляет пользователя на котором установлен курсор таблицы.<br><br />
<br />
[[Файл:player03.jpg]]<br />
<br />
Для отображения курсора на игроке в таблицу, в поле под названием cursor, мы должны указать графический ресурс.<br><br />
На скрине курсор выставлен на "Player 1".<br><br />
<br />
Что бы изменить текущего игрока в кнопка "choose" при нажатии должна изменить состояние опциям сначала на "change" потом на "update" см. скрин ниже:<br />
<br />
[[Файл:player06.jpg]]<br><br />
<br />
Что бы удалить текущего игрока в кнопка "delete" при нажатии должна изменить состояние опциям сначала на "delete" потом на "update" см. скрин ниже:<br />
<br />
[[Файл:player05.jpg]]<br><br />
<br />
'''Очередность вызова состояний такая как показано на скрине!!! Если начала вызвать "update" а потом "delete" ничего не сработает!!!'''<br />
<br />
<br />
[[Category:Learning]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9F%D1%80%D0%BE%D0%BA%D0%BB%D0%B8%D0%BA%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D0%B0%D1%8F&diff=6419Прокликиваемая2014-09-19T14:25:30Z<p>Aslav: </p>
<hr />
<div>Параметр прокликиваемости относится ко всем видимым объектам. <br />
Обработка клика осуществляется объектом с графическим ресурсом, при этом альфа канал ресурса и параметр '''alpha''' в группе модификаторы должен быть больше 1%.(точнее альфа 1 из 255) <br />
<br />
Если указать значение равное 1, то объект (кнопка) прозрачна для клика и пропускает клик объектам под ней. <br />
Если указать 2, то объект сам обрабатывает клик, но и пропускает его дальнейшей обработки.<br />
Значение по умолчанию для всех объектов указано нулевое, что соответствует обработки клика только видимой областью данного объекта. <br />
<br />
[[Файл:Clicpar.png]]<br />
<br />
<br />
<br />
[[Файл:Clickarea.png]]<br />
<br />
<br />
[[Category:Learning]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9F%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&diff=6418Позиционирование2014-09-19T14:25:16Z<p>Aslav: </p>
<hr />
<div>При позиционировании — отступ от края экрана, который отрегулирован в редакторе. Рассчитывается от точки пивота объекта до "физического" края экрана.<br />
<br />
*'''горизонтальное''' - выравнивание по горизонтали <br />
**0 - нет выравнивания; <br />
**1 - прижать к левому краю; <br />
**2- центр; <br />
**3 - прижать к правому краю.<br />
<br />
*'''вертикальное''' - выравнивание по вертикали <br />
**0 - нет выравнивания; <br />
**1 - прижать к верхнему краю; <br />
**2- центр; <br />
**3 - прижать к нижнему краю.<br />
<br />
Параметры определяют к какой стороне экрана будет пересчитываться расстояния координаты, относительно расположенного объекта на экране.<br />
По умолчанию всем объектам устанавливается значение параметра = 0.<br />
<br />
На примере показан объект которому которому присвоены параметры выравнивания<br />
:''горизонтальное ='''1'''''<br />
:''вертикальное ='''''3'''<br />
<br />
[[Файл:Pivotalign.png|300px]]<br />
[[Файл:Pivotalign2.png|300px]]<br />
<br />
<br />
На разных устройствах разные разрешения и если от края экрана должны позиционироваться две кнопки то могут возникнуть неприятности в виде наложения кнопок друг на друга (на устройствах с большим разрешение) или большие отступы между кнопками (устройства с маленьким разрешением)<br />
Как вариант избежания таких ситуаций : можно закидывать кнопки в группу без ресурсного объекта, маленького размера и позиционировать этот объект. Таким образом регулировку расстояния от края экрана обеспечит от позиционированный объект, а расстояния между кнопками положение их внутри объекта.<br />
<br />
[[Файл:Pivotalign3.png|300px]]<br />
<br />
<br />
[[Category:Learning]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%B2_%D0%B8%D0%B3%D1%80%D0%B0%D1%85&diff=6417Примеры реализации в играх2014-09-19T14:23:25Z<p>Aslav: </p>
<hr />
<div>* [[Навигация по экранам]]<br />
* [[Миниигры на машинах состояний]]<br />
* [[Использование Progress в игре]]<br />
* [[Взаимодействие объектов Counter и Puzzle]]<br />
* [[Отображение результатов уровня в хидденах]]<br />
* [[Профили игроков в игре]]<br />
<br />
<br />
[[Category:Мини игры]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_Viewer&diff=6416Интерфейс Viewer2014-09-19T14:22:35Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
=Начало работы со вьювером =<br />
'''Вьювер''' — приложение, визуализирующие созданную игру, и дающее возможность выявить ошибки и артефакты до начала тестирования. <br><br />
Вьювер предназначен для отладки и тестирования созданной игры самим гейм- дизайнером.<br><br />
Вьювер запускается непосредственно из ScenceEditor двумя способами из меню Вьювер - Открыть вьювер или кликом по кнопке [[Файл:00_9.png]]<br><br />
Для закрытия вьювера нажимаем «Закрыть» или клавишу Esc <br><br />
Перед запуском вьювера необходимо выбрать экран или сцену на экране, который начнёт проигрываться, и сохранить проект. <br />
Может быть запущено несколько вюверов.<br><br />
При визуализации игры размеры окна вьювера можно изменять (растягивать / сжимать)<br><br />
==Особенности работы двух вьюверов одновременно==<br />
Последний запущенный вьювер отображает внесенные и сохраненные изменения перед его запуском. Предыдущий запущенный вьювер — не будет отображать изменения в проекте, внесенные после его запуска<br><br />
<br />
=Вывод сообщений об ошибках в окне вьювера=<br />
<br />
В ходе создания приложения возникают ошибки, которые вьювер отлеживает и отображает в своем окне.<br><br />
На примере ниже рассмотрим структуру сообщений об ошибках.<br><br />
Предположим, по клику на кнопку А пользователь должен прочитать сообщение, нажать на кнопку Б и уйти на другой экран.<br><br />
Алгоритм программы без ошибок:<br><br />
1. при клике на кнопку А, изменяется состояние машины MASH на see.<br><br />
2. Состояние see машины MASH показывает обьект TEXT c фразой и проявляет кнопку Б.<br><br />
3. При клике на кнопку Б переходим на другой экран<br><br />
<br />
Одноко гейм-дизайнер допустил ряд ошибок:<br><br />
1) при клике на кнопку А изменил состояние машина MASH на не существующее (asd)<br><br />
2) В свойстве обьекта TEXT не указал фразу персонажа<br><br />
3) Случайно удалил кнопку Б с экрана, а ссылка на нее осталась в машине MASH<br><br />
<br />
'''Вьювер отобразит ошибки:'''<br><br />
''При обращении к несуществующему состоянию обьекта.'' На экране будет отображен номер и тип обьекта, состояние которого пытаются вызвать,а также имя несуществующего состояния обьекта.<br> <br />
[[Файл:Ошибка_тип_1.JPG|300px]] <br> <br />
''При создании обьекта, которому не установили обязательные параметры, или при удалении обьекта из дерева проекта могут оставаться ссылки на него в других обьектах''. В таком случае вьювер вероятнее всего проигнорирует написанный Вами код и ничего не отобразит в своем окне.<br />
<br />
=Клавиша F1=<br />
[[Файл:Вьювер_1.JPG|right|200px]] Список команд, доступных во вьювере, вызываемых по нажатию клавиши F1: <br />
*F2 (help) — открывается панель отладки приложения<br />
*S (states) – при вызове команды на экране отображаются состояния объектов, у которых включена отладка<br />
*F(frames) — отображаются границы обьектов<br />
*V(verbose) – в браузере, установленном по умолчанию, откоется xml — код визуализируемой сцены<br />
*T(fps) — отобразится информация о загрузке операционной памяти ПК<br />
*M(mouse) – при клике по обьекту отобразятся координаты мыши <br />
*D(device) - параметры экрана устройства, под которое разрабатвается приложение<br />
*R(reload) — перезагружает во вьювер весь проект и визуализирует первый по списку экран проекта, но при этом считывает все параметры, записанные в опции<br />
*space – останавливает все процессы игры на данном экране. Для повторного запуска нажимаем space.<br />
Список команд закрывается при повторном нажатии клавиши F1<br />
<br />
=Клавиша F2=<br />
При клике на клавишу F2 вызвается панель отладки, позволяющая осуществить :[[Файл:Вювер_3.JPG|500px|right]]<br><br />
*переходы между экранами<br />
*вызов других команд вювера<br />
*отслеживать запись параметров в опции (в файл options)<br />
*переключение между локализациями на разные языки<br />
*настройка цвета текста, отображаемого на экране<br />
На рисунке справа приведен вид экрана с включеной панелью отладки. <br><br />
Панель отладки закрывается при повторном нажатии клавиши F2<br><br />
'''Замечания:'''<br />
*Для перехода на другой экран кликните по названию экрана левой кнопкой мыши.<br />
*Для выбора оптимального цвета шрифта информации,отображаемой на экране поставьте галочки на панели выбора цвета шрифта или кликаем по клавише С<br />
*Для выбора языка локализации игры кликните левой кнопкой мыши по аббревиатуре языка.<br />
*При клике на кнопку Reload во вьювер перезагружается весь проект и визуализируется первый экран в дереве экранов проекта<br />
*При клике на кнопку Save записываются текущие параметры игры (обьектов) и отображаются по порядку в области записи параметров прохождения игры. При клике на запись в области записи параметров прохождения игры игра возвращается в то состояние, после которого были записаны параметры игры.<br />
*При вызове команды time отобразится информация о загрузке операционной памяти ПК/<br />
*При клике на кнопку log записываются текущие статусы обьектов во viewer.log<br />
*При вызове команды log откроется меню в панели отладки (отобразятся кнопоки hystory и pause) и одновременно на экране отобразится информация об изменении состояний и свойств обьектов во время прохождения игры в режиме реального времени. При клике на pause информация перестанет изменяться при клике на любые обьекты.<br><br />
*При вызове команды flyers показывается состояние всех флаеров<br />
<br />
В нашем проекте может быть создано несколько лэйаутов под разные магазины, платформы и устройства. Для переключения между лэйатуами кликнем по его названию в правом верхнем углу. Для визуализации приложения на разных типах устройствах кликнем по списку устройств, расположенному чуть выше области записи параметров прохождения игры.<br><br />
'''Примечание:'''<br />
Для того, чтобы была возможность визуализации игры на разных устройствах, необходимо в файле viewer.xml , расположенному в Application Data\Absolutist\Viewer, в параметрах <br />
autoScX и autoScY прописать значения, подобранные относительно выбраного разрешения и устройства, моделью которого будет являться окно вьювера при визуализации игры.<br><br />
<br />
=Клавиши F7 и F8=<br />
Нажатие клавиш ''F7'' и ''F8'' позволяет симулировать горячие кнопки девайсов работающих на платформе Android - Home и Back<br />
<br />
=Клавиша S (states)=<br />
Для отслеживания перехода обьекта в различные состояния в процессе проигрывания игры необходимо свойству обьекта Отладка присвоить вкл и при визуализации экрана нажать клавишу S.<br><br />
Ниже приведен пример отображения информации в окне вьювера при включенной функции states.<br />
На экране отображена следующая информация:<br />
*имя экрана <br />
*уникальный номер и имя обьекта<br />
*имя состояния, в котором обьект находится в данную секунду<br />
[[Файл:States.JPG |500px|right]]<br><br />
'''Замечание:'''<br />
*Не все обьекты имееют свойство Отладка.<br />
*Для некоторых обьектов отображается дополнительная служебная информация (например, для обьектов типа mashine)<br />
*Для получения более детальной информации о смене состояний и параметров обьектов в течении нескольких секунд рекомендуется воспользоваться кнопкой pause панели Отладка<br />
<br />
==Включение отслеживания обьектов в процессе визуализации игры==<br />
Существует возможность включения отслеживания перехода обьекта в другое состояние при визуализации игры. При включении функции states в левом верхнем углу появляется:<br><br />
*поле ID, куда необходимо вписать уникальный номер объекта,<br />
*кнопка ADD – добавить обьект в / в список обьектов, изменение состояния которых отслеживается на экране<br />
*кнопка DEL – удалить объект из списка бьектов, изменение состояния которых отслеживается на экране<br><br />
[[Файл:Frames_F.JPG|right|400px]]<br><br />
<br />
=Кнопка F (frames)=<br />
В процессе размещения на сцене различных обьектов возникает необходимость отслеживать:<br><br />
*обьекты, которые прокликиваются,не должны перекрываться другими<br />
*обьекты должны находится в точно заданных границах (например, при создании хидден-игр)<br />
*обьекты, расположенные на разных сценах, не должны перекрываться другими<br />
Во вьювере при клике на клавишу F отобразятся границы всех обьектов, расположенных на экране.<br><br />
'''Замечание:''' Границы обьектов выделяются разными цветами. <br><br />
<br />
<br />
<br />
<br />
=Кнопка V (verbose)=<br />
[[Файл:verbose.JPG|right|500px]]<br />
При визуализации может возникнуть необходимость просмотреть параметры обьектов, расположенных на визуализируемой сцене, не переходя в ScenceEditor и не открывая xml-файл проекта.<br><br />
Нажимаем кливишу V и в браузере установленном по умолчанию отобразится файл viewer_info.html, в котором описаны объекты, расположенные на визуализируемой сцене.<br><br />
<br />
'''Замечание.''' Файл viewer_info.html расположен в \Application Data\Absolutist\Viewer<br><br />
<br />
= Клавиша T (fps,time)=<br />
<br />
В процессе визуализации экрана полезно отслеживать такие параметры:<br><br />
*как использование памяти<br />
*какие экраны одновременно подгружены в память в месте с экраном, воспроизводимым в данную минуту<br />
*количество обьектов, расположенных на экране<br />
*количество кадров в минуту<br />
*количество ошибок<br />
Для получения всей этой информации мы нажимаем клавишу T.<br><br />
[[Файл:Time.JPG|800px]]<br><br />
Отображаемые параметры:<br><br />
*f: - количество кадров в секунду. (должно быть больше 30)<br />
*loading screen – имя экрана, загружаемого перед этим (если включена функция предзагрузки экрана)<br />
*img – количество загруженых обьектов<br />
*ram+vram - суммарное количество занимаемой памяти . Значение параметра max – максимальное суммарное количество занимаемой памяти в какой-то момент визуализации игры<br />
*RAM — группа параметров:<br />
#первый параметр — количество памяти, указанное в файле app.icf<br />
# need - количество памяти необходимое для игры<br><br />
# used – количество памяти используемое игрой<br><br />
# max – максимальное количество памяти, требуемой для игры<br><br />
#free – количество свободной памяти<br><br />
*VRAM – количество занимаемой памяти приложением и максимальное занимаемая память<br><br />
*OS free mem -количество свободной памяти на устройстве<br><br />
Render:<br />
*textures: количество загруженых картинок<br />
*imPerLastFrame: картинок в последнем кадре<br />
*imBatchPerLastFrame: упакованных картинок, если значение совпадает с значением в max для этого параметра - значит графика не была упакована в текстуры.<br />
<br />
=Клавиша М (mouse)=<br />
[[Файл:Mouse.JPG|right|300px]]<br><br />
Иногда бывает ситуация, когда по клику в некоторой заданой области должно производиться некоторое действие. Для уточнения границы такой области воспользуемся функцией Mouse (клавиша М).<br><br />
На экране отобразится координата последнего выполненного клика.<br />
<br />
=Клавиша D (device)=<br />
Для получения информации о масштабе визуализации игры в окне вьювера необходимо нажать клавишу D в окне вьювера. <br />
На экране отобразится информация:[[Файл:Device.JPG|right|400px]]<br><br />
*W – размеры окна вьювера<br />
*L – размеры лэйаута<br />
*D - размеры устройства.<br />
*S – масштаб окна вьювера (относительно размеров лэйаута)<br><br />
Примечание. Значения параметра D забираются из файла viewer.xml , который расположен в Application Data\Absolutist\Viewer<br />
<br />
=Клавиша С=<br />
Нажатие клавиши ''С'' в тот момент когда на вьювере отображена какая-либо информация, позволяет менять цвет шрифта. Удобно если цвет текста сливается с бекграуном.<br />
<br />
<br />
<br />
=Клавиша SPACE=<br />
Нажатие клавиши SPACE "ставит на паузу" отображаемый во вьювере проект..<br />
<br />
<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_TextEditor&diff=6415Интерфейс TextEditor2014-09-19T14:22:19Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
== [[Файл:Ico_text.png]]Редактор текстов ==<br />
<br />
[[Файл:Ico_text.png|40px]] '''Text Editor''' - хранилище всех текстовых ресурсов (надписей) на различных языках. <br><br />
Аналогично графике и звукам при помощи мышки они перетаскиваются в соответствующие свойства объектов, находящихся в Scene Editor.<br> <br />
;См. также: [[Редактор_текстовых_ресурсов|Урок 6]]<br />
<br />
Окно редактора имеет следующий вид:<br><br />
<br />
[[Файл:Text baze main.jpg]]<br />
<br />
===Общие свойства и действия с текстом===<br />
<br />
'''После любых действий в текстовом редакторе необходимо обновить текстовую базу в Редакторе сцен!''' <br />
*элемент текстовой базы - строка текста, которая может хранить в себе несколько различных фраз,записанных в разные поля<br />
*фраза персонажа на разных языках записывается в один элемент текстовой базы<br />
*в текстовой базе может храниться voice<br />
*элемент текстовой базы может хранить в себе несколько иконок, для которых можно выбрать одну из 4-х категорий (mainPicture, icon1, icon2,icon3)<br />
*каждому элементу текстовой базы присваивается уникальный номер. <br />
*при добавлении элемента - присваивается следующий по порядку уникальный номер <br />
*при экспорте экранов в текущий проект элементы текстовой базы добавляются автоматически в базу текущего проекта и присваиваются им следующие по порядку уникальные номера <br />
*может существовать несколько элементов с одинаковыми именами <br />
*текст может быть автоматически добавлен в текущий проект или добавлен из другой текстовой базы <br />
*элемент текстовой базы может быть удален, модифицирован, категоризирован<br />
<br />
=== Кнопки быстрого запуска ===<br />
Вверху окна приложения расположены кнопки общего меню:<br />
*[[Файл:00 6.png]] — команда создать Новый файл; <br />
*[[Файл:00 7.png]] — команда открыть уже созданный проект;<br />
*[[Файл:00 8.png]] — сохранить изменения в файле;<br />
*[[Файл:00 18.png]] — создать новую папку в корневой базе;<br />
*[[Файл:New record.jpg]] — добавить новую текстовую запись; <br />
*[[Файл:Add new rec fr.jpg]] — добавить новую текстовую запись из базы ресурсов; <br />
*[[Файл:Add url.jpg]] — добавить новую url запись; <br />
*[[Файл:00 19.png]] — удалить текстовую запись;<br />
*[[Файл:Text base find.png]] — найти необходимую текстовую запись в текстовой базе.<br />
<br />
=== Меню редактора ===<br />
1. Если нажать в меню кнопку '''File''', выпадет список команд, с помощью которых можно создать новый или загрузить уже созданный файл, сохранить файл с указанием места сохранения и т.д.<br><br />
2.Для импорта фраз на другом языке необходимо воспользоваться Функцией Ипортировать меню File и выбрать .xml-файл с текстом и выбрать язык<br><br />
3. Если нажать в меню кнопку '''Resource''', выпадет список команд:<br><br />
* Open Resource - позволяет создать базу по ранее подготовленной графической базе ресурсов с точным совпадением структуры и названием папок и файлов. Используется для Hidden Objects;<br />
* Choose Resource File - позволяет подгрузить базу графических ресурсов для перетаскивания изображений из ResourcesEditor на иконку;<br />
* Choose Categories Config - помогает классифицировать текстовые файлы по категориям.<br />
[[Файл:00_51.PNG]] [[Файл:00_52.PNG]]<br />
<br />
<br />
=== Создание и заполнение текстовой базы проекта ===<br />
Текстовая база не создается автоматически при создании проекта. <br><br />
Для создания и заполнения текстовой базы: <br><br />
1. Заходите в пункт меню '''file -> New'''. Появляется пустая база ресурсов, по умолчанию названная '''Untitled'''. <br><br />
2. Слева в дереве текстовых объектов кликаем правой кнопкой мыши и выбираем '''Add record'''. Каждый раз при добавлении новой текстовой записи редактор просит нас написать ее имя. Это имя можно будет изменить в любой момент. Запишем имя '''arrow_If_down'''. <br><br />
3. Выделить запись и в окне приложения TextEditor справа в столбце Word запишем слово, в столбце Sentence1,Sentence2 - указать подсказку для текстовой записи, в столбце voice - подключить звуковой файл для текстовой записи из ResourcesEditor.<br><br />
[[Файл:00_54.PNG]]<br />
<br />
'''Необходимо обязательно сохранять любые изменения с текстом в редакторе TextEditor.'''<br><br />
Для вызова текстового редактора можно воспользоваться меню '''Инструменты -> Редактор текстов''', либо кнопкой быстрого запуска [[Файл:Text base.png]].<br />
<br />
'''Замечание.''' Букву Ё заменяем на Е<br />
<br />
=== Слияние нескольких текстовых баз ===<br />
<br />
Используется для слияния нескольких тектовых баз одного проекта выполненых для разных локализаций. <br />
<br />
Импорт текстовой базы<br />
<br />
[[Файл:Textimport.jpg]]<br />
<br />
=== Экспорт текстовой базы ===<br />
<br />
Существует два варианта экспорта текстовой базы:<br />
*'''Export into txt . . .''' - в файл с расширением .txt (текстовый файл)<br />
*'''Export into xml . . .''' - в файл с расширением .xml (текстовая база)<br />
<br />
[[Файл:text_baza_export_1.png]] <br><br />
<br />
1) При выборе первого варианта появится окошко, в котором нужно будет указать путь текстового файла для экспорта. <br><br />
<br />
[[Файл:text_baza_export_2.jpg]] <br><br />
<br />
В результате создатся файл такой структуры<br />
<br />
[[Файл:text_baza_export_5.jpg]] <br><br />
<br />
<br />
2) Аналогично для второго варианта также необходимо будет указать путь файла с расширением .xml в появившемся окне. Но помимо этого есть возможность выбора языка экспортируемых данных. Пусть, например, нас интересуют данные только на английском языке. <br><br />
<br />
[[Файл:text_baza_export_4.jpg]] <br><br />
<br />
Тогда созданная таким образом база будет содержать записи только на английском языке. <br><br />
<br />
[[Файл:text_baza_export_6.jpg]] <br><br />
<br />
=== Добавление иконок в текстовый элемент ===<br />
<br />
Необходимость добавления изображения в текстовый элемент, может возникнуть, например, при формировании элементов hiddenObject, или при работе с элементами economics.<br />
Изображение перетаскивается в текстовый элемент из редактора ресурсов мышкой. Но, в случае необходимости создать множество элементов за один раз, есть более эффективный способ:<br />
*На панели с кнопками быстрого запуска нажимаем ''Add new text records from resource...''. <br />
[[Файл:Add new rec from.jpg|300px|]]<br />
*Открылось окошко ''choose resource file'' в нем следует выбрать необходимый sirx файл.<br />
[[Файл:Choose resource file.jpg]]<br />
*В открывшемся дереве ресурсов выбираем нужную папку<br />
[[Файл:Tree resources.jpg|400px|]]<br />
*Из отмеченной папки файлы преобразуются в текстовые элементы, содержащие строку ''word'' и соответствующее изображение. Причем добавятся они в тектовый редактор в папку, которая создастся в соответствии с папкой, содержащей эти иконки в редакторе ресурсов.<br />
<br />
=== Поиск записи в текстовой базе ===<br />
<br />
Окно поиска текстовой записи активируется при нажатии кнопки быстрого запуска [[Файл:Text base find.png]].<br><br />
[[Файл:Text base find wind.jpg]] <br><br />
Поиск проходит по непосредственно содержимому текстового поля.<br><br />
Поиск по дереву базы может проходить сверху вниз и снизу вверх, если выбрать один из пунктов группы '''Find direction''': <br><br />
*'''down''' - искать сверху вниз;<br />
*'''up''' - искать снизу вверх.<br><br />
Для оптимизации процесса поиска можно выбрать в группе '''Find mode''' один из следующих пунктов:<br />
*'''in the whole tree''' - искать во всем дереве;<br />
*'''from the current item''' - искать от текущего элемента.<br><br />
Строка, которая вводится в строку поиска может быть подстрокой интересующей нас записи либо же полностью с ней совпадать. Это можно регулировать с помощью пункта '''Only the whole text'''.<br />
<br />
<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_ResourceEditor&diff=6414Интерфейс ResourceEditor2014-09-19T14:22:04Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
== [[Файл:Ico_base.png]]Редактор ресурсов ==<br />
<br />
===Общее описание===<br />
[[Файл:Ico_base.png|40px]]'''Редактор ресурсов''' - приложение, которое управляет базой графических, анимационных, видео и звуковых ресурсов проекта. <br>[[Файл:New resource editor look.jpg|500px|right]]<br />
Ресурсы проекта могут быть внесены и модифицированы только через Редактор ресурсов.<br><br />
Как и в редакторе сцен, вверху окна редактора ресурсов расположено меню и кнопки быстрого доступа: создать базу ресурсов, открыть уже существующую, добавить картинку (png, jpeg), анимацию, мелодию (mp3, ogg), видео (mp4).<br><br />
Ниже, в левой панели находятся папки, внутри которых можно найти различные графические ресурсы:<br />
*Если в дереве папок активна данная папка, то на правой панели мы видим список графических ресурсов в виде иконок. <br />
*Если же в дереве кликнуть на имя конкретной картинки, то в правой панели она будет представлена в натуральную величину. <br />
*При клике на ресурс в левой нижней части окна редактора ресурсов появится панель с настройками ресурса в зависимости от его типа<br />
<br />
===Меню Редактора ресурсов===<br />
Некоторые инструменты также вызываются горячими клавишами (комбинация клавиш приведена в скобках )<br />
<br />
====Меню File====<br />
*New Project ('''Ctrl'''+'''N''') – создать новый проект с новой базой ресурсов. Возможно в качестве базы ресурсов выбрать уже существующий каталог ресурсов.<br />
*Open Project ('''Ctrl'''+'''O''') - открыть базу ресурсов ранее созданного проекта<br />
*Создать проект по папке — создать базу ресурсов по каталогу с ресурсами<br />
<br />
====Меню View====<br />
*Always on top - всегда отображать Редактор Ресурсов поверх всех окон<br />
*Image Viewer - отобразить панель Image Viewer для просмотра ресурсов<br />
<br />
====Меню Project====<br />
*Add Root Base - создать еще одну базу ресурсов в текущем проекте<br />
*Add images — добавить изображения в проект<br />
*Add Animations — добавить анимацию в проект<br />
*Add Sounds - добавить звук в проект<br />
*AddVideos - добавить видео в проект<br />
*Delete Resource — удалить ресурс<br />
*Options — вызов окна настройки отображения изображений в редакторе<br />
*Обрезать images в старом проекте — вызов функции удаления бордера изображения (у всех ресурсов) на указанную величину в параметре Transparent Border Size вкладки Cropping Settings из Options меню Project<br><br />
<br />
Кнопки Add images, Add Animations, Add Sounds , AddVideos, Delete Resource вызвается по клику правой кнопки мыши в дереве базы ресурсов<br />
<br />
====Область визуализации ресурсов Image Viewer====<br />
В данной области визуализируется ресурс. Все виды ресурсов визуализируется как изображение.<br />
По клику правой кнопкой мыши внутри области визуализации выпадает меню:<br><br />
''Center image by'' Предположим мы изменили точку пивота ресурса.<br><br />
*Если выберем Image Center to Center, то в центре Image Viewer отобразится ресурс.<br />
* Если выберем Image Pivot to Center, то в центре Image Viewer отобразится точка пивота. (См. рисунок справа)<br><br />
[[Файл:RR_Pivot_1_.JPG|300px]] [[Файл:RR_Pivot_2.JPG|350px]]<br><br />
''Directory View Mode'' — Если мы выберем режим Full Source Image , то мы будем видеть изображение и пустую область вокруг него, равную размерам сцены, а если Cropped Images — то только изображение<br><br />
<br />
====Shape====<br />
Для работы с обьектами физического мира иногда требуется создать дополнительный конутр вокруг обьекта.<br />
Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом в Shape editor.<br />
Количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами. <br />
<br />
[[Файл:Физика5.PNG|500px]]<br><br />
<br />
Центр круга, которым задается шейп, совпадает с точкой пивота. Радиус круга установливается путем отдаления/приближения кликов от точки пивота.<br><br />
<br />
[[Файл:Circle shape.jpg|500px]]<br><br />
<br />
Для удаления нарисованного шейпа нажимаем Delete<br><br />
<br />
=== Создание базы графических ресурсов === <br />
1. Запустить редактор ресурсов ResourcesEditor.exe. В меню File выбрать New Project.<br><br />
2. В окне базы создания ресурсов в строке "Папка проекта" указать путь на ранее созданную пустую папку Resources, затем в строке "Имя базы ресурсов" вписать имя корневой базы Learning_Base.<br><br />
[[Файл:00_26.PNG]]<br><br />
3. В корневой базе создать папку Create New Folder (например, папка Lesson_01).<br><br />
4.Загрузить исходники графики из папки Sources → Lesson_01. <br><br />
[[Файл:00 27.png]] [[Файл:00 28.png]] [[Файл:00_29.PNG]]<br><br />
В папке ресурсов Resources автоматически создается папка с корневой базой (в нашем случае Learning_Base), в которой автоматически появляются папка с графическими ресурсами Lesson_01 (для урока 1) и файл Learning_Base.sirx<br><br />
[[Файл:00 30.png]]<br><br />
'''Внимание! Прямое изменение структуры файлов в папке Resources запрещено. Допускается работа только через редактор ресурсов.'''<br />
<br />
=== Автоматическое создание базы ===<br />
<br />
В случае, если имеется уже готовый набор графических ресурсов (а именно, структурированная папка), то можно использовать ее. Для этого нужно при создании новой базы в строке "Папка с графическими ресурсами" указать путь, где находится готовая база ресурсов.<br />
<br />
[[Файл:00_30a.PNG]] [[Файл:00_30b.PNG]]<br />
<br />
=== Действия с ресурсами в Resources Editor ===<br />
==== Общие свойства и действия с ресурсами====<br />
'''После любых действий в редакторе ресурсов необходимо обновить базу ресурсов в Редакторе сцен!'''<br />
*каждому ресурсу присваивается уникальный номер.<br />
*при добавлении ресурса - присваивается следующий по порядку уникальный номер<br />
*при экспорте экранов в текущий проект ресурсы добавляются автоматически в базу текущего проекта и присваиваются им следующие по порядку уникальные номера<br />
*может существовать несколько ресурсов с одинаковыми именами<br />
*ресурсы могут быть автоматически добавлены в текущий проект или добавлены из другой базы ресурсов<br />
*ресурсы могут быть удалены, модифицированы<br><br />
<br />
==== Графические ресурсы====<br />
В редактор ресурсов подгружаются графические форматы: <br />
*JPEG - изображение, не имеющее прозрачности. Может использоваться для "облегчения веса", в качестве фонового изображения или для паззла;<br />
*PNG - может поддерживать прозрачность, произвольные границы изображения. Сохраняет высокое качество изображения. <br />
=====Cоздание бордера изображения=====<br />
[[Файл:00_37.PNG|right]]<br />
Для уменьшения вероятности появления графических артефатов вокруг изображений рекомендуется создавать прозрачную область вокруг изображения. Размеры бордера задаются в пикселях.<br><br />
Для создания прозрачной области кликаем по изображению и меняем параметр BorderSize на панели настройки ресурса(см. рисунок справа). После этого обязательно нажимаем '''Аpply''', иначе выбранное значение для бордера не сохранится.<br><br />
Для создания бордеров у всех ресурсов выбираем меню Projects – Options и на вкладке Cropping Settings параметру Transparent Border Size присваиваем нужное значение.<br><br />
[[Файл:00_46.PNG|00_46.PNG]] [[Файл:00_47.PNG]]<br><br />
<br />
=====Точка пивота=====<br />
Иногда возникает необходимость сместить точку вращения обьекта вокруг своей оси (точку пивота).<br><br />
Для этого в редакторе ресурсов выбирем редактируемый обьект и в панели настроек ресурса изменим значения параметров Pivot.<br><br />
Если мы хотим произвольно задать координаты точки пивота, то ставим галочку Edit Pivot и после этого «таскаем» редактируемый ресурс по области визуализации ресурсов. Точка пивота находится в центре экрана (красный крестик)<br />
<br />
=====Заменить изображение, существующие в базе ресурсов=====<br />
Предположим, нам необходимо подменить изображение загруженное в базу ресурсов, но при этом не удаляя его из базы.<br><br />
Для это кликаем правой кнопкой мыши по изображению и выбираем в меню "заменить изображение"<br />
<br />
=====Настройки текстур=====<br />
Параметр texture mode [[Файл:Resource editor texture.png]] определяет принадлежность картинки к текстуре.<br />
*Если стоит -1, то картинка которая используется только на одном экране вместе с такими же картинками(которые используются только на том же экране что и выбранная) на этом экране будут упакованы в текстуру, если все картинки не поместятся в текстуру размером 1024х1024, то те картинки, которые не поместились попадут в 2-й файл текстуры. <br />
*Если картинка используется на нескольких экранах, то в текстуру она не попадёт. Также она не попадет в текстуру, если используется в одном экране, но на нескольких принадлежащих ему сценах.<br />
*Если стоит 1, 2, 3 и т.д до 100, то данная картинка объединится в текстуру вместе с картинками у которых стоит такое же значение в texture mode. Если все не поместятся в одну текстуру размером 1024х1024, то не поместившиеся изображения попадут в 2-ю текстуру и т.д..<br />
В процессе упаковки ресурсов в текстуры картинки могут быть развернуты. Отказаться от этого можно, выбрав '''Do not rotate'''.<br />
<br />
<br />
== Создание контейнеров ==<br />
<br />
Контейнеры - это папки, содержащие ресурсы. Отличие от обычных папок состоит в том, что все попавшие в один контейнер файлы будут упакованы в одну текстуру. Причем текстура эта будет квадратной, а также будет дотягиваться до степени двойки.<br />
<br />
====Настройка параметров контейнера====<br />
<br />
Если принадлежащий контейнеру ресурс нигде не используется, то он никуда не попадёт: что не в текстуру контейнера, что не в ресурсы экспортированного проекта вообще.<br><br />
<br />
[[Файл:Container params.jpg]]<br />
<br />
'''Размер текстуры'''<br />
<br />
Для контейнера есть возможность выбирать размер текстуры, в которую упакуются его ресурсы: 1024*1024, 2048*2048. В случае, когда в одну текстуру не вместятся все ресурсы контейнера, будет создана еще одна текстура с таким же размером. <br><br />
Например, была создана текстура размера 1024*1024 с именем container_0000. Но остался один ресурс, который в нее не вместился. Независимо от размера этого ресурса будет создана еще одна текстура размера 1024*1024 с именем container_0001.<br><br />
Но если для контейнера был, допустим, выбран размер текстуры 1024*1024, а его ресурсы могут смело вместится в текстуре 512*512 (256*256, 128*128 и т.д), то будет создана текстура соответствующего размера.<br />
<br />
'''Настройки качества и оптимизации'''<br />
<br />
Можно настроить качество графики после экспорта и оптимизацию для скорости загрузки проекта или для уменьшения распакованного дистрибутива.<br />
Также графику контейнера можно не упаковывать в текстуры, но при этом настройки качества графики и оптимизации всё равно будут применены.<br />
<br />
'''Тип текстуры'''<br />
<br />
Тип текстуры определяется автоматически на основе платформы, необходимого качества графики и приоритета(скорость или размер распакованного дистрибутива) <br><br />
<br />
[[Файл:Scene editor export window.jpg]]<br><br />
<br />
Но приоритетней считаются настройки, сделанные для контейнера.<br />
<br />
<br />
'''Пример'''<br />
<br />
Был создан проект, в котором ресурсы некоторого экрана находились в контейнере. Размер текстуре был задан 1024*1024. Поочередно для контейнера выбирались все возможные типы текстур. Результаты представлены ниже.<br><br />
1) None - текстура согласно найстройкам экспорта.<br />
<br />
2) Compressed (RGB) + Png (A)<br><br />
container_0000.png - 1,28 Mb, <br><br />
container_0000_а.png - 48,7 Kb <br><br />
[[Файл:Texture_type_2.png]]<br />
<br />
3) Jpg (RGB) + Png (A)<br><br />
container_0000.jpg - 277 Kb, <br><br />
container_0000_а.png - 48,7 Kb <br><br />
[[Файл:Texture_type_3.png]]<br />
<br />
4) Compressed (RGBA)+Hitmask<br><br />
container_0000.png - 1,51 Mb, <br><br />
container_0000.msk - 128 Kb <br><br />
[[Файл:Texture_type_4.png]]<br />
<br />
5) Png (RGBA)<br><br />
container_0000.png - 1,51 Mb <br><br />
[[Файл:Texture_type_5.png]]<br />
<br />
6) Jpg (RGB)<br><br />
container_0000.jpg - 266 Kb <br><br />
[[Файл:Texture_type_6.png]]<br />
<br />
====Анимация====<br />
Анимация создается путем вызова кнопки add_animations и выбором нескольких графических файлов из любой папки <br> <br />
[[Файл:00_40.PNG]][[Файл:00_41.PNG|300px]]<br><br />
После загрузки анимации можно изменить ее параметры. Например, изменить скорость анимации (смены кадров) и зациклить, поставив галочку напротив Looped.<br><br />
В левой части нижнего окна анимации находится список загруженных изображений, в правой - последовательность изображений (кадров), которые можно менять местами, добавлять/удалять, загружать в прямом/обратном порядке. Таким образом, можно "уменьшить вес" анимации за счет использования меньшего количества исходных изображений.<br><br />
[[Файл:00_43.PNG]][[Файл:00_44.PNG]] [[Файл:00_45.PNG]]<br />
<br />
====Звуковые файлы==== <br />
Звуковые файлы нам нужны для озвучки персонажей и не только. Используются файлы в форматах:<br><br />
*mp3 - используется как ресурс для длинного звука mus. Звуки такого формата могут воспроизводиться только последовательно.<br />
*ogg - используется как ресурс для короткого звука snd (snd-звуки могут воспроизводиться параллельно) и для подключения голоса voice (если voice подключен к тексту, то воспроизводится последовательно). Имеет меньший объем, чем формат mp3.<br />
Воспроизведение звуковых файлов устанавливают через различные обьекты. Например, через состояния обьекта Machine<br />
[[Файл:00_48.PNG]]<br><br />
<br />
<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_ScenceEditor&diff=6413Интерфейс ScenceEditor2014-09-19T14:21:52Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
== [[Файл:Ico_main.png]]Редактор сцен ==<br />
<br />
'''Редактор сцен''' — программа, предназначенная для создания, редактирования и экспорта игровых экранов, в котором происходит настройка свойств объектов и игровой логики. <br><br />
<br />
'''Окно редактора сцен состоит из:'''<br />
*меню редактора;<br />
*рабочей области, в которой размещен обьект сцена, на котором размещают другие обьекты;<br />
*панель Лэйаут, в которой размещено иерархическое дерево проекта, которое состоит из экранов, на которых находятся игровые объекты;<br />
*панель Свойства, которая отображает свойства объекта, который выбран в дереве проекта;<br />
*панель для построения сплайна;<br />
*панель инструментов;<br />
*строка Координаты, отображающая координаты курсора в текущий момент времени<br><br />
<br />
Для включения или отключения панели кликаем правой кнопкой мыши по серой области меню редактора и ставим галочку. Панели можно расположить на экране в любом порядке.<br> <br />
<br />
[[Файл:Головна2.PNG|700px]]<br />
<br />
=== Меню редактора ===<br />
<br />
==== Project (Проект)====<br />
меню, которое содержит список команд, с помощью которых можно создать новый или загрузить уже созданный проект, сохранить проект с указанием места сохранения и т.д.<br />
*'''New project''' - создать новый проект; <br />
*'''Open''' - открыть уже созданный проект (проект обязательно должен находится в подкаталоге редактора); <br />
*'''Recent project...''' - показывает список последних открывавшихся проектов; <br />
*'''Close''' - закрытие проекта (редактор при этом не закрывается); <br />
*'''New project''' - создать новый проект; <br />
*'''Save''' - сохранение проекта; <br />
*'''Save as...''' - сохранение проекта под новым именем или в новом каталоге; <br />
*'''Export...''' - экспорт проекта; <br />
*'''Project options...''' - опции проекта; <br />
*'''Exit''' - закрытие редактора. <br />
<br />
==== Edit (Редактирование)====<br />
меню редактирования проекта:<br />
*'''Copy''' - копирование объекта; <br />
*'''Paste into current object''' - вставка объекта в выбранный объект; <br />
*'''Paste after current object''' - вставка объекта после выбранного объекта;<br />
*'''Delete...''' - удаление объекта;<br />
*'''Delete temp data''' - удаление опций; <br />
*'''Find object...''' - поиск объекта по id или по имени;<br />
*'''Setup Editor...''' - настройки редактора.<br />
<br />
==== View (Просмотр)====<br />
меню запуска Вьювера (Viewer)- проигрывателя созданного экрана проекта:<br />
*'''Start Viewer''' - запуск вьювера;<br />
*'''Setup Viewer...''' - настройки окна вьювера для выбранного проекта.<br />
<br />
====Layouts (Лейаут, Макеты)====<br />
меню работа с лейаутами проекта (выбор макета устройства для проекта, редактирование экранов):<br />
*'''Add new layout...''' - создание нового лейаута;<br />
*'''Delete layout...''' - удаление лейаута;<br />
*'''Layout settings...''' - настройки лейаута;<br />
*'''Add folder...''' - создание папки в текущем лейаута;<br />
*'''Add screen...''' - создание нового экрана.<br />
==== Tools (Инструменты)====<br />
меню дополнительных редакторов и инструментов для проекта (вызов редактора ресурсов, текстового редактора, анализ проекта). Список этого меню вынесен на панель с кнопками быстрого запуска:<br />
*'''Resources Editor''' - редактор ресурсов;<br />
*'''Texts Editor''' - текстовый редактор;<br />
*'''Analyzer''' - анализатор ресурсов (показывает колличество объектов проекта, их размер занимаемой памяти, сведения о ресурсах каждого объекта (размер, ID номер, название (имя), местонахождение в базе ресурсов));<br />
*'''Object info...''' - общие свойства объекта (показывает размер памяти занимаемой текстурами);<br />
*'''Options info...''' - информация об опциях.<br />
<br />
==== Help (Помощь)====<br />
меню вызова справки.<br />
<br />
=== Кнопки панели Инструменты ===<br />
Некоторые инструменты также вызываются горячими клавишами (комбинация клавиш приведена в скобках )<br />
<br />
[[Файл:00 6.png]] (Ctrl+N) — создать новый проект; <br><br />
[[Файл:00 7.png]](Ctrl+O) — загрузить уже созданный проект;<br><br />
[[Файл:00 8.png]](Ctrl+S) — сохранить изменения в проекте;<br><br />
[[Файл:00 9.png]] — запустить Viewer;<br><br />
[[Файл:009.JPG]] — нормальный вид; <br><br />
[[Файл:Ico_text.png|25px]] - вызов текстового редактора; <br><br />
[[Файл:Ico_base.png|25px]] — вызов редактора ресурсов;<br><br />
[[Файл:013.JPG]] — анализатор ресурсов (показывает колличество объектов проекта, их размер занимаемой памяти, сведения о ресурсах каждого объекта (размер, ID номер, название (имя), местонахождение в базе ресурсов)); <br><br />
[[Файл:014.JPG]]— поиск объекта по id или по имени.<br><br />
<br />
===Функции рабочей области===<br />
<br />
'''1) Масштабирование рабочей области<br>'''<br />
Ctrl + колесико мышки крутим вперед - увеличиваем обьекты , назад - уменьшаем обьекты.<br><br />
<br />
'''2)Перемещение по рабочей области<br>'''<br />
После масштабирования возникает необходимость переместиться с левого уголка экрана в далекий правый, переместиться к выбраному обьекту, вверх или вниз.<br><br />
<br />
Кликаем правой кнопкой мыши по горизонтальному scroll и выпадает меню: <br />
*scroll here — функция перемещает экран к обьекту, который выделен в Лэйауте;<br />
*scroll left / right - функция перемещает экран на маленькое расстояние вправо / влево;<br />
*left / right edge — функция перемещает экран в левый / правый угол экрана;<br />
*page left / right - функция показывает левую/правую часть экрана<br><br />
<br />
Кликаем правой кнопкой мыши по вертикальному scroll и выпадает меню: <br />
*scroll here — функция перемещает экран к обьекту, который выделен в Лэйауте;<br />
*scroll up / down - функция перемещает экран на маленькое расстояние вверх / вниз;<br />
*top/bottom - функция перемещает экран вверх / вниз;<br />
*page up / down - функция перемещает экран верхнюю / нижнюю часть экрана.<br><br />
<br />
Меню прокрутки скрывается по нажатию клавиши Alt<br><br />
<br />
===Функции панели Лэйаут===<br />
[[Файл:Лэйаут_1.JPG|right]] <br />
При клике правой кнопкой мыши по выбраному лэйауту (см. рисунок справа)<br />
*Создать папку в текущем обьекте;<br />
*Создать экран в текущем обьекте - создание обьекта в текущем лэйауте;<br />
*Импорт/экспорт экранов — импорт/экспорт одного или нескольких экранов;<br />
*Развернуть / Свернуть обьекты с подобъектами — сворачивает / разворачивает дерево обьектов всех экранов<br><br />
<br />
При клике правой кнопкой мыши по выбраному экрану, сцене или обьекту возможно:<br />
*Lock (Unlock) screen - золочивание (разлочивание) экрана: нельзя перемещать, удалять и изменять объекты (сцены) экрана, причем, если сцена расшариная, то она становиться золочиной и на остальных экранах; на золочиных экранах в панели проекта появляется замочек; <br />
*Lock (Unlock) scene - золочивание (разлочивание) сцены: нельзя перемещать, удалять и изменять объекты (машины, картинки и др.) сцены, причем, если сцена расшариная, то она становиться золочиной и на остальных экранах; на золочиных сценах также появляется замочек; <br />
*Создать сцену в текущем обьекте - создание экран в текущем экране;<br />
*Создать экран в текущем обьекте - создание экран в текущем лэйауте;<br />
*Создать обьект сцены в текущем обьекте - создание обьекта в текущем обьекте;<br />
*Удалить обьект - удаление обьекта из проекта;<br />
*Копировать обьект — копирование обьекта;<br />
*Вставить в текущий обьект — вставка обьекта в текущий обьект верхнего уровня ;<br />
*Вставить как ссылку в текущий обьект — вставка обьекта в текущий обьект для создания расшариной сцены;<br />
*Вставить как ссылку после текущего обьекта — вставка обьекта после текущего обьекта для создания расшариной сцены;<br />
*Вставить после текущего обьекта - вставка обьекта после текущего обьекта;<br />
*Импорт/экспорт экранов — импорт/экспорт одного или нескольких экранов;<br />
*Развернуть / Свернуть обьекты с подобъектами — сворачивает /разворачивает дерево обьектов экрана или сцены; <br />
<br />
====Функция Расположить сцену в соответствии с изображением ====<br />
Пусть на сцене будет находится очень много картинок, которые должны находиться в строго определенных местах. Переместим нашу картинку в нужную точку на сцене. Но у нас картинок очень много и мы потратим много времени на их расстановку. Для уменьшения времени на расстановку картинок воспользуемся функцией расположить сцену в соответствии с изображением.<br><br />
Функция расположить сцену в соответветствии с изображнием перемещает картинку в заданную точку художниками. Художник решил, что клубма должна быть в правом нижнем углу, после применения функции расположить сцену в соответветствии с изображнием, картинка станет именно на указанное художником место. <br><br />
Данная функция вызвается кликом правой кнопкой мыши по обьекту<br> [[Файл:панель_свойства_1.JPG|right]]<br />
<br />
===Функции панели Свойства===<br />
<br />
*При клике на тип или имя некоторых обьектов вызываются дополнительные окна.Например, при клике на тип Machine открывается окно, где прописываются функции обьекта типа Machine.<br />
*При наведении на поле тип выпдает подсказка с уникальным номером обьекта.<br />
*При клике правой мышкой по названию свойства обьекта выпадает меню с дополнительными свойствами обьекта<br />
*Некоторые свойства обьектов объединены в группы (см. рисунок справа)<br />
<br />
=== Создание проекта ===<br />
<br />
1. Для создания нового игрового проекта необходимо запустить редактор сцен SceneEditor.<br><br />
2. В верхнем меню Проект выбрать Новый (т.е. создать новый проект).<br><br />
3. В появившемся окне указываем имя проекта и имя базы ресурсов.Выбираем папку для сохранения проекта<br><br />
4. В этом окне выбираем устройство для которого создаётся проект, а затем выбираем тип магазина и вариант версии игры<br><br />
[[Файл:020.JPG]] [[Файл:021.JPG]]<br />
<br />
5. В редакторе сцен в меню Проект → Сохранить → проект с именем Learning.<br> <br />
Эту методику действий можно брать за шаблон для создания других проектов.<br><br />
Результат: Создана база ресурсов и проект для выполнения Уроков. <br />
<br />
====Важное замечание по созданию проекта====<br />
[[Файл:2_лэйаута.JPG|right]]<br><br />
Предположим нам необходимо создать игру для магазина А и магазина Б. Игра будет отличаться только 10 функциями. Мы можем создать игру для магазина А., а потом скопировать папку с проектом, проект переименовать, внести изменения и получить игру для магазина Б. Результат: 2 игры и 2 папки с ресурсами. Такой подход не приветствуется.<br><br />
Для уменьшения времени на создание проекта, подключение ресурсов, внесения одинаковых объектов и удобства отслеживания багов и прочего в Редакторе Сцен существует возможность создания двух лэйаутов в одном проекте.<br />
При создании проекта мы выбираем оба магазина, после чего в панели Лэйаут появится два лэйаута для магазина А и магазина Б(см. рисунок справа. При этом текстовая база проекта и база ресурсов у них будут идентичны. При создании новых объектов в одном лэйауте они же будут создаваться и в другом, при этом можно изменять свойства объекта каждого лэйаута независимо от второго.<br><br />
За применение изменений между лэйаутами отвечает параметр "синхронизация", который есть у каждого объекта. Если стоит "синхронизировать", то объект будет одинаков в каждом из лэйаутов. Если стоит "не синхронизировать", то объект будет уникальным для каждого экрана, его изменения не будут применены на других лэйаутах, не синхронизируемые объекты можно даже удалять, т.к. они уникальны для лэйаута.<br />
<br />
===Экспорт проекта===<br />
<br />
'''Этапы экспорта проекта'''<br />
*Выполняется сжатие графики при необходимости <br />
*Очистка базы ресурсов от неиспользуемой графики<br />
*Запаковка графики в текстуры и контейнер<br />
*При необходимости конвертирование файлов в pvr форматы<br><br />
С целью экономии оперативной памяти на устройстве возможно сжатие графики, упаковка графики в текстуры, создаение нескольких исполняемых файлов, проекта, содержащих в себе несколько сцен проекта, и загружаемых в оперативную память устройства по мере прохождения игры.<br><br />
<br />
Процедура экспорта проекта вызывается через меню редактора Проект - Экспортировать проекта<br><br />
<br />
[[Файл:Scene editor export window.jpg|right]]<br />
'''Параметры экспорта проекта:'''<br><br />
''Настройки параметров графики''<br />
*Ось Х, ось У — параметры сжатия графики по оси Х,У. Значения параметра от 0 до 1. При<br />
*При выполнении сжатия рекомендуется обращать внимания на размер лэйаута<br />
*Сжатие графики возможно и непропорциональное . Используется редко<br />
<br />
''Параметры запаковки графики''<br />
*Common textures size - максимальный размер графической текстуры для графики, которая не находится в контейнерах и попадает в одну текстуру, или максимальный размер графического файла, если он не в контейнере и не попадает в текстуру.<br />
*Create dat container - упаковка ресурсов в фаил с типом DAT. Обеспечиваем защиту ресурсов проекта от несанкционированного доступа. Увеличиваем производительность при операциях чтения файлов ресурсов с твердотельного носителя.<br />
*Quality - Качество графики, которая не находится в контейнерах<br />
*Optimization - оптимизация графики для лучшего быстродействия(speed) или для занимаемого дискового пространства в распакованом виде(size)<br />
<br />
''Тип экспорта'' <br />
*One project file - формируется один XML файл описывающий проект. <br />
*Split project on screens, load partly' - проект будет разбит на отдельные файлы описывающие экраны, загружаться файлы будут в порядке использования (вызова) в проекте. В результате получаем увеличение начальной загрузки проекта и использование меньшего объема оперативной памяти.<br />
*Release build - оптимизация по размеру файла базы ресурсов и основного файла проекта.<br />
<br />
''Export to folder'' - Путь для экспорта. Если указан путь экспорта проекта - производится экспорт согласно настройкам для выбранной платформы. Если не указан - проект экспортируеются под выбранную платформу и автоматически запускается сборка проекта.<br />
Структура папки:<br />
[[Файл:TreeFolder.png|TreeFolder.png]]<br><br />
'''Select platform''' - необходимо выбрать платформу для которой будем собирать проект. При экспорте на все платформы необходимо установить Marmalade SDK [[Установка и настройка|см. инструкцию]] при этом не нужно указывать путь для экспорта (оставить поле пустым). В результате запустится скрипт сборки исполняемого пакета, это будет видно по черным экранам с ходом выполнения процесса сборки.Процесс экспорта будет отображаться в окне.<br />
<br />
Таблица результирующих форматов для платформ<br />
{| border="1"<br />
|-<br />
|качество, оптимизация<br />
|IOS<br />
|Android<br />
|Windows Phone8<br />
|BlackBerry<br />
|Windows<br />
|-<br />
|Best, size<br />
|png(RGBA)<br />
|png(RGBA)<br />
|png(RGBA)<br />
|png(RGBA)<br />
|png(RGBA)<br />
|-<br />
|Best, speed<br />
|PVR8888<br />
|PVR8888<br />
|PVR8888<br />
|PVR8888<br />
|PVR8888<br />
|-<br />
|Medium, size<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|-<br />
|Medium, speed<br />
|PVRTC + PVRA8<br />
|ETC1 + PVRA8<br />
|BC3 + hitmask<br />
|PVR8888<br />
|BC3 + hitmask<br />
|-<br />
|Low, size<br />
|PVRTC + png(a)<br />
|ETC1 + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|jpg + png(a)<br />
|-<br />
|Low, speed<br />
|PVRTC(RGBA) + hitmask<br />
|ETC + PVRA8<br />
|BC3 + hitmask<br />
|PVR8888<br />
|BC3 + hitmask<br />
|}<br />
<br />
*'''ETC''' - Ericsson Texture Compression : для устройств Android<br />
*'''PVR''' - PowerVR Texture Compression : для устройств IOS<br />
*'''bc3(dxt)''' - DirectX Texture : Windows, Windows Phone 8<br><br />
<br />
<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=6412Установка и настройка2014-09-19T14:21:10Z<p>Aslav: </p>
<hr />
<div>==Загрузка и настройка редактора для обучения==<br />
<br />
Переходим на сайт Appsalute Creator [http://appsalutecreator.com http://appsalutecreator.com], находим справа кнопку "Download PC version beta 2.0" или аналогичную, жмём на неё. После этого начинается загрузка установочного пакета. Размер инсталятора больше 70Mb, так что прийдётся немного подождать.<br />
<div class="tleft" style="clear:none"> [[Файл:Install (13).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Запускаем инсталятор. (Если у вас не установлен Marmalade, то Вы увидите правую картинку [[#Настройка пакета для сборки под все платформы|чтобы устранить]] )<br />
:Жмём "далее"<br />
<br />
<gallery widths="490px" heights="370px" perrow="4" ><br />
File:Install (33).jpg<br />
File:NotMarmalade.png<br />
</gallery><br />
<br />
Внимательно читаем лицензионное соглашение, соглашаемся и жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (34).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Выбираем путь для установки редактора и снова "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (35).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Выбираем необходимые пункты, лучше всего отметить все 3 пункта, и снова "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (36).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Выбираем название папки в меню "пуск" и снова "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (37).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Подтверждаем настройки нажатием на кнопку "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (38).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Начинается установка<br />
<div class="tleft" style="clear:none"> [[Файл:Install (39).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
По окончании жмём "Finish"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (40).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Редактор установлен. Можно [[Learning|выполнять уроки]].<br />
<br />
==Настройка пакета для сборки под все платформы==<br />
Для правильной работы(работа редактора и сборка проектов на ios и android) необходимо:<br />
* JDK 1.6 (последняя версия ''Java SE 6 Update 39'')<br />
* Marmalade SDK<br />
* Appsalute creator<br />
=== Загрузка и установка JDK 1.6 ===<br />
Загрузить JDK можно по адресу [http://www.oracle.com/technetwork/java/index-jsp-138363.html http://www.oracle.com/technetwork/java/index-jsp-138363.html], или ввести в поисковой системе запрос "JDK" Вероятно первая ссылка будет с названием "Java SE Downloads" и ссылаться на сайт Oracle.<br />
<br />
Перейдя на страницу загрузки видим:<br />
<div class="tleft" style="clear:none"> [[Файл:Install (11).jpg | мини |500пкс ]] </div><br />
<br />
<br clear="all" /><br />
<br />
Под Java 7 находится Java 6 и под надписью JDK находится кнопка Download (выделена красным). Жмём её и попадаем на следующую страницу:<br />
<br />
<br />
<div class="tleft" style="clear:none"> [[Файл:Install (12).jpg | мини |500пкс ]] </div><br />
<br />
<br clear="all" /><br />
<br />
Читаем лицензионное соглашение, соглашаемся и выбираем ссылку в платформе windows x86 (выделена красным).<br />
После этого начинается загрузка инсталятора.<br />
<br />
Запускаем установочный пакет.<br />
Жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (14).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
снова "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (15).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
когда предложит поставить JRE - соглашаемся, и жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (16).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
После окончания установки жмём "finish"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (17).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
<br />
<br />
<br />
<br />
<br />
===Загрузка и установка Marmalade SDK===<br />
<br />
Переходим на сайт Marmalade [http://www.madewithmarmalade.com/ http://www.madewithmarmalade.com/].<br />
<br />
Здесь необходимо:<br />
* зарегистрироваться, если ещё не зарегистрированы<br />
* получить лицензию<br />
* после получения лицензии можно будет скачать установочный пакет<br />
<br />
====Регистрация====<br />
Или сразу жмём зарегистрироваться, или выбираем "trial/buy/download" затем выбираем подходящую версию и выбираем покупаем или trial получить, нас перекинет на страницу где предложат войти в систему, если ещё не зарегистрировались - жмём зарегистрироваться.<br />
<br />
<div class="tleft" style="clear:none"> [[Файл:Install (1).jpg | мини |500пкс ]] </div><br />
<div class="tleft" style="clear:none"> [[Файл:Install (2).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<div class="tleft" style="clear:none"> [[Файл:Install (3).jpg | мини |500пкс ]] </div><br />
<br />
<br clear="all" /><br />
<br />
Далее заполняем регистрационную форму и жмём "зарегестрироваться"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (4).jpg | мини |500пкс ]] </div><br />
<br />
<br clear="all" /><br />
После этого придёт на указанный электронный ящик письмо в котором будет ссылка по которой надо перейти чтобы подтвердить регистрацию.<br />
<br />
Переходим по ссылке и можем логиниться.<br />
<br />
<div class="tleft" style="clear:none"> [[Файл:Install (5).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
====Получние лицензии и загрузка установочного пакета====<br />
<br />
Когда залогинились система попросит уточнить данные о пользователе - вводим все данные, которые необходимо ввести и нажимаем save.<br />
<div class="tleft" style="clear:none"> [[Файл:Install (7).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Далее снова попадаем на главную страницу и снова выбираем "trial/buy/download" и выбираем необходимую версию.<br />
После этого попадаем на страницу:<br />
<div class="tleft" style="clear:none"> [[Файл:Install (8).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
и выбираем "Get PC Release".<br />
Лицензия попадает в "корзину" и система просит уточнить данные для получения лицензии:<br />
<div class="tleft" style="clear:none"> [[Файл:Install (9).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
Заполняем необходимые поля. На снимке пример для trial лицензии - при покупке вид страницы может отличаться.<br />
Жмём Next и попадаем на предыдущую страницу, но сверху написано, что мы получили лицензию.<br />
Снова выбираем "Get PC Release" - теперь начнётся загрузка установочного пакета.<br />
<div class="tleft" style="clear:none"> [[Файл:Install (10).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
====Установка====<br />
Запускаем инсталятор, жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (18).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Внимательно читаем лицензию, соглашаемся и снова "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (19).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
<br />
Путь куда установится можно не менять и снова жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (20).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
<br />
По-умолчанию указана полная установка - ничего не меняем и жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (21).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Здесь предлагается выбрать плагины для установки. Для редактора ничего из списка не надо, поэтому ничего не выбирая жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (22).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Начинается установка.<br />
<div class="tleft" style="clear:none"> [[Файл:Install (23).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
После установки появитя окно настройки Marmalade SDK. Для того чтобы можно было собирать на устройства проекты необходимо активировать уже полученную лицензию, поэтому жмём "Activate license"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (24).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Вводим электронный ящик, который указывали при регистрации, и пароль. После этого жмём "OK".<br />
<div class="tleft" style="clear:none"> [[Файл:Install (25).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Выбираем лицензию и снова "OK".<br />
<div class="tleft" style="clear:none"> [[Файл:Install (26).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Снова читаем лицензионное соглашение и снова "OK"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (27).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Если всё было сделано правильно появится окно о том, что лицензия успешно активирована, жмём "OK"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (28).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Если всё успешно прошло, то под кнопкой "Activate license" будет указано какая лицения активирована. Жмём OK.<br />
<div class="tleft" style="clear:none"> [[Файл:Install (29).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Если не установлена Microsoft Visual Studio, то появится следующее сообщение:<br />
Жмём "OK"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (30).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Утилита сделает последние настройки и после этого выдаст сообщение<br />
<div class="tleft" style="clear:none"> [[Файл:Install (31).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Жмём "OK".<br />
Настройка Marmalade SDK завершена.<br />
<br />
===Загрузка и установка Appsalute Creator===<br />
Переходим на сайт Appsalute Creator [http://appsalutecreator.com http://appsalutecreator.com], находим справа кнопку "Download PC version beta 2.0" или аналогичную, жмём на неё. После этого начинается загрузка установочного пакета.<br />
<div class="tleft" style="clear:none"> [[Файл:Install (13).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
====Установка====<br />
Запускаем инсталятор.<br />
Жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (33).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Внимательно читаем лицензионное соглашение, соглашаемся и жмём "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (34).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Выбираем путь для установки редактора и снова "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (35).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Выбираем необходимые пункты, лучше всего отметить все 3 пункта, и снова "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (36).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Выбираем название папки в меню "пуск" и снова "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (37).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Подтверждаем настройки нажатием на кнопку "далее"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (38).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Начинается установка<br />
<div class="tleft" style="clear:none"> [[Файл:Install (39).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
По окончании жмём "Finish"<br />
<div class="tleft" style="clear:none"> [[Файл:Install (40).jpg | мини |500пкс ]] </div><br />
<br clear="all" /><br />
<br />
Редактор установлен.<br />
<br />
===Настройка для сборки под IOS===<br />
Для того чтобы собрать ipa и установить его на устройство необходим ключ и сертификат разработчика<br />
<br />
<pre><br />
Certificates and keys must always be placed in the following folder: <SDK Install dir>/s3e/deploy/plugins/iphone/certificates<br />
<br />
To "install" on PC, simply name and place all the .key and .cer files in this folder. The Deploy Tool will just look here and expect the files to have the specific names:<br />
<br />
developer_identity.key - development private key<br />
distribution_identity.key - distribution private key<br />
developer_identity.cer - development certificate<br />
distribution_identity.cer - distribution certificate<br />
AppleWWDRCA.cer - universal cert provided with the SDK<br />
Apple Root CA.cer - iOS WWDR intermediate certificate from the portal<br />
</pre><br />
<br />
Ключи и сертификаты должны называться именно так как требует Marmalade SDK и находиться именно там где требует Marmalade SDK. Если установлено несколько версий Marmalade SDK, ключи и сертификаты должны находиться в текущей активной версии Marmalade SDK<br />
<br />
[http://docs.madewithmarmalade.com/native/platformguides/iosguide/iossigning/iossigningassetssetup.html Инструкция по правильной установке и получению ключей разработчика]<br />
<br />
[http://www.iguides.ru/forum/showthread.php?t=43253 iOS Dev Сертификат разработчика и все, что с ним связано]- Создание сертификата и добавление устройств <br />
<br />
[http://help.adobe.com/ru_RU/air/build/WS5b3ccc516d4fbf351e63e3d118666ade46-7ff0.html#WSFAB6E5EB-316A-42b0-81A3-0BC232ACD99A Цифровая подпись файлов AIR]- есть информация по генерированию ключей и сертификатов на Windows<br />
<br />
[http://developer.apple.com/certificationauthority/AppleWWDRCA.cer] - AppleWWDRCA.cer<br />
<br />
Команды для извлечения key файла из p12 файла, который можно получить из keychain на osx<br />
<pre><br />
openssl pkcs12 -in p12_file.p12 -nocerts -out key.pem<br />
openssl rsa -in key.pem -out key.key<br />
</pre><br />
<br />
===Настройка для сборки под Blackberry===<br />
<br />
Для того чтобы собрать bar и установить его на устройство необходимы '''BlackBerry Author Name''' и '''BlackBerry Author ID''', которые можно получить на портале разработчиков Blackberry. Также для загрузки на устройство понадоится ключ debug-token, который генерируется на основе BlackBerry Author ID и других параметров. BlackBerry Author ID - это уникальный идентефикатор системы на которой будут собираться пакеты.<br />
<br />
BlackBerry Author Name и BlackBerry Author ID необходимо вписать в соответствующие поля в файл '''playbook_conf.csv''', который находится в папке '''''system\scripts\'''''<br />
<br />
Для сборки bar файла с подписью понадобятся ещё хранилище ключей разработчика, пароль к хранилищу и CSK пароль.<br />
Хранилище ключей должно называться '''key.p12''' и должно находиться в папке '''''system\temp\build_last\Viewer\platforms\marmalade\conf\playbook'''''<br />
пароли заролняются в файле playbook_conf.csv в соответствующие поля.<br />
<br />
Если хранилища нет, или оно называется не должным образом, то пакет соберётся не подписанный.<br />
<br />
Пример заполнения playbook_conf.csv:<br />
<br />
<pre><br />
# 1 - BlackBerry Author Name: Specifies the author name from the debug token requested from RIM<br />
# 2 - BlackBerry Author ID: Specifies the author id, assigned by RIM signing authority, embedded in the debug token requested from RIM<br />
# 3 - BlackBerry Keystore Password: The password for the keystore<br />
# 4 - BlackBerry CSK Password: The password to use CSK keys (used for encrypting communications with RIM Signing Authority) <br />
Super Company LTD;sdfJygsdf78sdfkh;Pa$$w0rd3;$ec0nD_Pa$$w0rd<br />
</pre><br />
<br />
'''Super Company LTD''' - BlackBerry Author Name<br />
<br />
'''sdfJygsdf78sdfkh''' - BlackBerry Author ID<br />
<br />
'''Pa$$w0rd3''' - Пароль хранилища (BlackBerry Keystore Password)<br />
<br />
'''$ec0nD_Pa$$w0rd''' - CSK пароль (BlackBerry CSK Password)<br />
<br />
<br />
===Настройка для сборки под Google===<br />
<br />
Для загрузки приложения на GooglePlay его необходимо подписать.<br />
<br />
Следующая команда позволяет сгенерировать хранилище ключей, псевдоним и указать к ним пароли<br />
<br />
<pre>"_путь к jdk_\bin\keytool.exe" -genkey -v -keystore keystore_file.keystore -storepass password -alias alias_name -keypass password -keyalg RSA -keysize 2048 -validity 10000</pre><br />
<br />
[[Category:AppSalute]]<br />
[[Category:Projects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_AppSalute_Game_%D0%A1reator&diff=6411Введение в AppSalute Game Сreator2014-09-19T14:20:00Z<p>Aslav: </p>
<hr />
<div>AppSalute Game Сreator - самый простой и в тоже время мощнейший инструмент сознания игр. Поддерживает большинство существующих платформ.<br />
<br />
*Жанровая направленность: 2D-игры, пазлы, HOG, адвенчуры и пр;<br />
*Платформа: PC (Windows), MacOS;<br />
*Платформа игр: Windows, WPH8, Mac OS, Android, iOS, Blackberry, Flash; <br />
*Лицензия: бесплатная;<br />
*Языки программирования: drag-and-drop (без программирования)<br />
*Открытый исходный код: не предоставляется, API + добавление собственных модулей (С++);<br />
*Мультиплеер: отсутствует;<br />
*Достоинства: бесплатный, прост в освоении, WYSIWYG-редактор, поддержка популярных форматов;<br />
*Недостатки: для сборки пакетов под Mac OS, Android, iOS, Blackberry требуется Marmalade SDK необходимо покупать лицензию<br />
<br />
<br />
Демонстрация создания проекта состоящего из нескольких игровых экранов всего за 15 мин. <br />
<br />
<videoflash>Qhp-Fg4tDGg</videoflash><br />
<br />
*Для создания игр в AppSalute Сreator используются четыре взаимодействующих между собой приложения:<br />
** '''SceneEditor''' - редактор игровых сцен, в котором происходит настройка свойств объектов и игровой логики. Это основной инструмент при разработке игры.<br />
** '''ResourcesEditor''' - хранилище графических и звуковых ресурсов, использующихся в игре. Эти ресурсы при помощи мышки перетаскиваются на сцену в SceneEditor.<br />
** '''TextEditor''' - хранилище всех текстовых ресурсов (надписей) на различных языках. Аналогично графике и звукам при помощи мышки они перетаскиваются в соответствующие свойства объектов, находящихся в SceneEditor.<br />
** '''Viewer''' - проигрыватель созданной игры. Обычно запускается непосредственно из SceneEditor. <br />
<br />
<br />
*Программный пакет содержит средства отладки простые для использования<br />
<br />
<br />
<videoflash>f5pPsM38KaE</videoflash><br />
<br />
*Сборка под мобильное устройство занимает несколько минут<br />
<br />
<br />
<videoflash>gu6wCoc3lgU</videoflash><br />
<br />
[[Category:Main]]<br />
[[Category:AppSalute]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9A%D0%BD%D0%B8%D0%B3%D0%B0_%D0%B6%D0%B0%D0%BB%D0%BE%D0%B1_%D0%B8_%D0%BF%D0%BE%D0%B6%D0%B5%D0%BB%D0%B0%D0%BD%D0%B8%D0%B9&diff=6410Книга жалоб и пожеланий2014-09-19T14:18:37Z<p>Aslav: </p>
<hr />
<div>Внимание !!<br />
* Перед публикацией внимательно читать ВСЕ!<br />
* Делаем при обсуждении отступы (двоеточие) и подписываемся (4 тильды).<br />
<br />
<br />
<br />
: В объекте checkbox есть у параметра '''надпись''' свойство '''цвет''', который можно задать с помощью буквенных и цифровых значений. Но какую бы комбинацию не задавал, всегда цвет текста черный.--[[Участник:Lkunica|Lkunica]] 08:27, 23 октября 2013 (CEST)<br />
<br />
: Есть возможность выделять группу объектов, чтобы задать сразу всем какое-то свойство.1.Пусть нужно задать прокликивание. Поменяется это свойство на заданное, если предварительно у всех выделенных объектов значение этого свойства было одинаковое.2.Хотелось бы сразу задавать нескольким текстовых объектам шрифт, его размер, и цвет. Пока такой возможности нет.<br />
<br />
:При экспорте сцены с объектом groupset теряются добавленные в его группу объекты (точнее заменяются другими объектами сцены), и приходится заново их переподключать. При экспорте экрана все нормально.--[[Участник:Lkunica|Lkunica]] 08:27, 23 октября 2013 (CEST)<br />
<br />
:Нельзя удалить графический ресурс в команде draw в машине состояний. Иногда это актуально,когда нужно заменить этот графический ресурс другим с таким же именем - не видно произошла замена или нет.--[[Участник:Lkunica|Lkunica]] 08:27, 23 октября 2013 (CEST)<br />
<br />
:Есть возможность выделять группу объектов, что бы задать им какое-то свойство. Но такое свойство как, например, "текстID" в "hiddenObject", по умолчанию при коллективном выделении не отображается. Его, конечно, можно добавить с помощью Сережи Шейко, но было бы удобнее добавлять и удалять нужные свойства более рациональным способом, появилось бы больше места для маневра.--[[Участник:Podkor|Podkor]] 16:17, 28 октября 2013 (CET)<br />
<br />
:В машине для каждой команды состояний предусмотрен параметр loop, который позволяет начать выполнение команд, начиная с первой. Но иногда есть необходимость начать выполнение команд (зацикливание), с некоторой отличной от первой. Было бы удобно, если бы в разделе "переходы и параметры выполнения" также присутствовала команда, для которой этот раздел активируется. Пока там присутствую все другие команды, кроме ее самой.--[[Участник:Lkunica|Lkunica]] 07:50, 8 ноября 2013 (CET)<br />
<br />
:В состоянии машины, добавляемые свойства, просто необходимо разместить в алфавитном порядке --[[Участник:Podkor|Podkor]] 16:04, 9 декабря 2013 (CET)<br />
[[Файл:Property.jpg|250px|Пояснительная подпись]]<br />
<br />
:Рассматривая редакторы игр сторонних разработчиков я нашел интересное решения для нашего редактора, которое позволит существенно расширить инструментарий по работе с изображениями в базе ресурсов. Скриншот приложен ниже. Данное окно позволяет: Обрезать изображение, отразить зеркально как вертикально так и горизонтально, вырезать(скопировать) часть рисунка и вставить его в другое место, повернуть рисунок на произвольный угол, изменить размер изображения, увеличить или уменьшить относительно оригинального изображения, а также слева есть инструменты для простейшего рисования по изображению: карандаш, кисть, стиральная резинка, линия, квадрат, заливка, пипетка для получения нужного цвета, а также установка центра картинки (как и было ранее у нас в редакторе установка точки пивота).--[[Участник:Amohov|Summer Cat]] 00:13, 4 января 2014 (CET)<br />
[[Файл:Edit image.png]]<br />
<br />
<br />
[[Category:Main]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D0%BE%D0%B2_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F_%D0%B2_%D1%85%D0%B8%D0%B4%D0%B4%D0%B5%D0%BD%D0%B0%D1%85&diff=6409Отображение результатов уровня в хидденах2014-09-19T14:17:42Z<p>Aslav: </p>
<hr />
<div>== Механизм==<br />
<br />
Для отображения результатов игры в хидденах используется механизм передачи значений через опции. В опции эти значения запишет HiddenList если у него будут заполнены поля id пака и id игры, например id пака="pk1" и id игры="pk1.scr01"<br />
<br />
==Результаты только что пройденной игры==<br />
<br />
Получить результаты только что пройденной игры (сцены) можно, создав объект типа ''counter'' и прописав ему некоторые настройки.<br />
Результаты которые мы можем отобразить отображены на скрине.<br />
<br />
[[Файл:scoreHidden.jpg]]<br />
<br />
После прохождения уровня лист запишет в опции вот такие данные. (например) <br />
<br />
<pk1 pack_score="7869"><br />
<scr01><br />
kind2 last_star_time0="1" star_time0="1" last_star_combo0="0" last_star_accuracy0="1" star_accuracy0="1" total_score="4366" normal_score="350" bonus_for_speed="2275" bonus_for_time="1741" time_spent="65" record_time_spent="65" record_total_score="4366"/><br />
</scr03><br />
</pk1><br />
<br />
В зависимости от типа игры а у нас их 3 (слова, ассоциации, иконки) есть свой индификатор = "kind"N. kind1 - слова, kind4 - иконка, kind2 - ассоциация.<br />
<br />
===Настройки каунтера===<br />
<br />
Что бы ''counter'' считал и отобразил результаты ему нужно заполнить поля "игра" и "уровень"<br />
<br />
- игра = game."kind"N, где game — идентификатор игры, прописанный в соответствующем хидден листе, N — тип игры (см. [[HiddenList]])<br />
<br />
У нас это id игры="pk1.scr01" плюс тип игры через точку. Получаем ''pk1.scr01.kind2''<br />
<br />
- уровень = key, где key — ключ, по которому вытаскивается интересующий нас параметр. Список ключей приведен ниже.<br />
<br />
===Список ключей===<br />
<br />
''total_score'' — общее количество очков, заработанных за уровень<br />
<br />
''normal_score'' — очки, заработанные только за найденные хиддены без учета бонусов<br />
<br />
''bonus_for_speed'' — бонусные очки за быстрое нахождение хидденов<br />
<br />
''bonus_for_time'' — бонусные очки, если игрок вложился во время, оставшиеся время умножиться на "х"<br />
<br />
''time_spent'' — время прохождения игры<br />
<br />
Таким образом чтобы например отобразить общие очки, нам каунтеру в поле "игра" указать ''pk1.scr01.kind2'', а в поле "уровень" ''total_score''<br />
<br />
==Глобальные результаты==<br />
<br />
В глобальные результаты входят звезды, получаемые в каждой игре, рекорды по очкам для каждой игры и суммарные очки паков.<br />
<br />
===Звезды===<br />
Вычитываются с помощью того же механизма, что и очки, только представляют собой объект типа ''progress''.<br />
<br />
Что бы ''progress' считал и отобразил результаты ему нужно заполнить поля "игра" и "уровень"<br />
<br />
- игра = game."kind"N или наш пример pk1.scr01.kind2<br />
<br />
- уровень = "ключ"<br />
<br />
===Список ключей для звезд=== <br />
Так как у нас этот параметр мы заработали либо нет, то лист у нас пишет либо "1" или "0". А в прогрессе у нас анимация из двух кадров. <br />
<br />
star_time0 - лист напишет в этот параметр "1" если мы вложимся в данное нам время <br />
<br />
star_combo0 - лист напишет в этот параметр "1" если мы выполним условия Combo(указываются в HiddenList)<br />
<br />
star_accuracy0 - лист напишет в этот параметр "1" если мы выполним условия Accuracy(указываются в HiddenList)<br />
<br />
Также в опции записываються эти параметры но за последнюю игру, считать их можно добавив приставку last_. Например last_star_time0.<br />
<br />
===Рекорды по очкам===<br />
Сделано для того чтоб например в экране субменю стоял каунтер который показыает максимальное кол-во очко когда либо заработаное за определенный уровень, а в экране со скорами очки за последнюю игру.<br />
<br />
Отображает очки каунтер со следующими параметрами:<br />
<br />
- игра = game."kind"N у нас это pk1.scr01.kind2<br />
<br />
- уровень = "record_total_score"<br />
<br />
===Суммарные очки пака===<br />
Каунтер со следующими параметрами:<br />
<br />
- игра = "pack", где pack — идентификатор пака, прописанный в соответствующем HiddenList (наш пример id пака="pk1")<br />
<br />
- уровень = "pack_score"<br />
<br />
<br />
[[Category:Мини игры]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9F%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B5_%22%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%22&diff=6408Подготовка к работе "Создание проекта"2014-09-19T14:16:24Z<p>Aslav: </p>
<hr />
<div>'''§1. Интерфейс приложения SceneEditor'''<br />
<br />
1. Вверху окна приложения расположены кнопки общего меню:<br />
<br />
[[Файл:00 1.png]]<br />
<br />
2. Если нажать в меню кнопку Проект, выпадет список команд, с помощью которых можно создать новый или загрузить уже созданный проект, сохранить проект с указанием места сохранения и т.д.<br />
<br />
[[Файл:00 2.png]]<br />
<br />
3. Если нажать в меню кнопку Дерево, выпадет список команд, с помощью которых можно добавить папку или экран в указаный луйаут, создать новый лайаут, копировать либо удалить элемент и т.д.<br />
<br />
[[Файл:00 3.png]]<br />
<br />
4. Обозначения значков:<br />
<br />
[[Файл:00 6.png]] — команда создать Новый проект; [[Файл:00 7.png]] — команда загрузить уже созданый проект;<br />
<br />
[[Файл:00 8.png]] — сохранить изменения в проекте; [[Файл:00 9.png]] — команда запуска Viewer;<br />
<br />
[[Файл:00 10.png]] — перемещение сцен мышью; [[Файл:00 11.png]] — нормальный вид; <br />
<br />
[[Файл:00 12.png]] — найти объект по имени; [[Файл:00 13.png]] — общая информация, показывает общие свойства объекта;<br />
<br />
5. Справа вверху окна приложения расположена панель Проекта, в котором показано иерархическое дерево проекта с указанием размера лайаута, расположением всех его экранов, сцен и объектов.<br />
<br />
[[Файл:00 4.png]]<br />
<br />
6. Справа внизу окна приложения расположена панель Свойства элемента с указанием всех модификаций конкретного объекта (например: тип, имя, положение, размер и т.д.)<br />
<br />
[[Файл:00 5.png]]<br />
<br />
'''§2. Интерфейс приложения ResourcesEditor'''<br />
<br />
1. Вверху окна приложения расположены кнопки общего меню:<br />
<br />
[[Файл:00 14.png]]<br />
<br />
2. Если нажать в меню кнопку File, выпадет список команд, с помощью которых можно создать новый или загрузить уже созданный проект, создать проект по папке и выход (закрытие приложения).<br />
<br />
[[Файл:00 15.png]]<br />
<br />
3. Если нажать в меню кнопку View, выпадет список команд, с помощью которых можно указать расположение окна приложения ResourcesEditor всегда поверх других окон, просмотреть графический ресурс в окне приложения.<br />
<br />
[[Файл:00 16.png]]<br />
<br />
4. Если нажать в меню кнопку Project, выпадет список команд, с помощью которых можно создавать корневую базу графических ресурсов, добавлять изображения, анимацию, звуки, удалять ресурсы и т.д.<br />
<br />
[[Файл:00 17.png]]<br />
<br />
5. Обозначения значков:<br />
<br />
[[Файл:00 6.png]] — команда создать Новый проект; [[Файл:00 7.png]] — команда загрузить уже созданный проект;<br />
<br />
[[Файл:00 21.png]] — добавить новое изображение; [[Файл:00 22.png]] — добавить новую анимацию;<br />
<br />
[[Файл:00 23.png]] — добавить новый звук; [[Файл:00 18.png]] — создать новую папку в корневой базе;<br />
<br />
[[Файл:00 19.png]] — удалить ресурс; [[Файл:00 20.png]] — создать проект по папке.<br />
<br />
'''§3. Копирование необходимых файлов'''<br />
<br />
Создать папку с названием проекта (например, Learning) → загрузить из ''Y:\!MOBILE\Hidden Object Editor\_All_Last_Builds'' редактор сцен SceneEditor, проигрыватель сцен Viewer, редактор ресурсов ResourcesEditor и папку Sources с исходниками графики для формирования базы графическмх ресурсов. Для ускорения работы редактора копируем все содержимое папки на локальный диск.<br />
<br />
'''§4. Создание базы графических ресурсов'''<br />
<br />
1. В папке проекта создать пустую папку (например, с названием Resources) → запустить редактор ресурсов ResourcesEditor. В меню File выбрать New Project и указать путь на ранее созданую пустую папку Resources.<br />
<br />
[[Файл:00 24.png]] [[Файл:00 25.png]]<br />
<br />
2. В меню Project создать корневую базу Add root base... (с названием Learning_Base). <br />
<br />
[[Файл:00 26.png]]<br />
<br />
3. В корневой базе создать папку Create New Folder (например, папка Lesson_01).<br />
<br />
[[Файл:00 27.png]]<br />
<br />
4. Загрузить исходники графики из папки Sources → Lesson_01 (аналогична загрузка исходников графики для других уроков). <br />
<br />
[[Файл:00 28.png]] [[Файл:00 29.png]]<br />
<br />
В папке ресурсов Resources автоматически создается папка с корневой базой (в нашем случае Learning_Base), в которой автоматически появляются папка с графическими ресурсами Lesson_01 (для урока 1) и файл Learning_Base.sirx<br />
<br />
[[Файл:00 30.png]]<br />
<br />
'''Внимание!''' ''- прямое изменение структуры файлов в папке Resources запрещено. Допускается работа только через редактор ресурсов (ResourcesEditor).''<br />
<br />
'''§5. Создание проекта'''<br />
<br />
1. Для создания нового игрового проекта необходимо запустить редактор сцен SceneEditor.<br />
<br />
[[Файл:00 31.png]]<br />
<br />
2. В верхнем меню Проект выбрать Новый (т.е. создать новый проект).<br />
<br />
[[Файл:00 32.png]]<br />
<br />
3. В появившемся окне выбрать размер создаваемой сцены (для уроков используем Layout800x600).<br />
<br />
[[Файл:00 33.png]]<br />
<br />
4. В этом же окне нажимаем на значок с многоточием и в папке ресурсов (в нашем случае Resources) указать путь к файлу Learning_Base.sirx.<br />
<br />
[[Файл:00 34.png]]<br />
<br />
<br />
[[Файл:00 35.png]]<br />
<br />
5. В редакторе сцен в меню Проект → Сохранить → проект Learning. Эту методику действий можно брать за шаблон для создания других проектов.<br />
<br />
Результат: Создана база ресурсов и проект для выполнения Уроков. <br />
<br />
[[Файл:00 36.png]]<br />
<br />
<br />
[[Category:Projects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_Progress_%D0%B2_%D0%B8%D0%B3%D1%80%D0%B5&diff=6407Использование Progress в игре2014-09-19T14:15:06Z<p>Aslav: </p>
<hr />
<div>Объект типа Progress предназначен для отображения ачивментов(звезд).<br />
<br />
Сейчас используеться в [http://itunes.apple.com/us/app/greatest-artists-free-jigsaw/id505397071?mt=8 Greatest Artists: Free Jigsaw Puzzle] и [http://www.example.com Bon Voyage].<br />
<br />
В Puzzle объектом который записывает значения в опции является сам пазл [[Puzzle]].<br />
В Bon Voyage в опции записывает [[HiddenList]]<br />
<br />
Прогрессу для отображения остаеться лишь правильно считать данные из опций.<br />
<br />
= Пример из игры [http://www.example.com Bon Voyage] =<br />
<br />
Звезды в игре даются за общую точность кликов в сцене, если прошли уровень за меньшее кол-во времени, и за "n" точных клипов подряд. Для них есть отдельные ключи.<br />
Все эти данные подсчитывает и записывает в опции ХиденЛист. Выглядят они примерно так.<br />
<br />
<pk1><br />
<scr03><br />
<kind1 last_star_time0="1" star_time0="1" last_star_combo0="0"<br />
star_combo0="0" last_star_accuracy0="1" star_accuracy0="1"/><br />
</scr03><br />
</pk1><br />
<br />
Эти данные означают что мы играли в игру из пака pk1 экран scr03 тип игры kind1.<br />
Значение "0" означает что мы не получили звезду и у нас будет показываться нулевой фрейм из анимации, значение "1" будет показываться след фрейм.<br />
Так как у нас в игре либо получил звезду либо нет, то анимация будет содержать всего два фрейма.<br />
<br />
Для отображения этих данных в Progress мы должны указать в поле "игра"=pk1.scr03.kind1 то есть показать откуда мы будем читать данные. А в поле "уровень" указать сами данные это: star_combo, star_accuracy, star_time.<br />
<br />
[[Файл:Progress.jpg]]<br />
<br />
В этом случае если мы получим зведу то она ни куда не денется. Если этим ключам указать префикс last, то если у нас была уже звезда но при повторной игре мы ее не получили она пропадет.<br />
<br />
Также в опции записываются данные:<br />
<last_game star_time0="1" star_combo0="0" star_accuracy0="1"/><br />
<br />
Их удобно использовать в общем окне результатов, для того чтоб не инитить объекту progress в какой уровень мы играли <br />
в поле "игра" указываем last_game, поле уровень star_time, star_combo, star_accuracy.<br />
<br />
[[Файл:Progress1.jpg]]<br />
<br />
= Пример из [http://itunes.apple.com/us/app/greatest-artists-free-jigsaw/id505397071?mt=8 Greatest Artists: Free Jigsaw Puzzle] =<br />
<br />
Звезды в пазлах даются в зависимости от количества сделаных ходов за одну игру. После прохождения уровня пазл запишет в опции:<br />
<br />
<pk7><br />
<pz01 lv1="2"/><br />
</pk7><br />
<br />
Видим что мы играли пак №7 пазл №1 уровень = 0. Для этого мы передаем пазлу значение pk7.pz01 в параметр "game" и "level" значение lv0.<br />
Эти значения могут быть произвольными, главное потом их правильно указать прогрессу. Если у нас есть к примеру 4 уровня то мы можем использовать один <br />
прогресс а в его количестве указать 4ре тогда.<br />
<br />
'''В редактрое это будет выглядеть так''' [[Файл:progress3.jpg]]<br />
<br />
'''а в игре так''' [[Файл:progress2.jpg]]<br />
<br />
<br />
<br />
При этом каждая звезда будет считывать свое сначение из опций. Первая pk7.lv0, вторая pk7.lv1, третья pk7.lv2 и т.д.<br />
В нашем случае это pk1.pz01.lv1 означает что второй звезде из прогресса присвоится 3й фрейм из анимации которая указана у неее в ресурсах.<br />
В редакторе в ключе левел мы указываем только "lv" без 0,1,3... прогресс сам считает для каждого свое значение.<br />
<br />
Ключи game.level могут быть произвольными.<br />
<br />
<br />
[[Category:Main objects|Progress]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9C%D0%B8%D0%BD%D0%B8%D0%B8%D0%B3%D1%80%D1%8B_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0%D1%85_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B9&diff=6406Миниигры на машинах состояний2014-09-19T14:12:12Z<p>Aslav: </p>
<hr />
<div>Машина состояний является очень гибким объектом для написание мини-игр, используемых в адвентюрах. С их помощью можно прописать сложную логику поведения объектов на сцене.<br />
==Примеры мини-игр==<br />
<br><br />
===Калькулятор===<br />
С появлением в редакторе математических операций, возникла необходимость написать простенький калькулятор, который выполняет простейшие арифметические действия. То есть, задача следующая: написать простой калькулятор, выполняющий четыре основные арифметические операции '''+''' '''-''' '''*''' '''/'''. При этом организовать такие функции, как очистка поля ввода, удаление последнего введеного символа!<br />
<br><br />
'''[http://fs5.absolutist.com/files/sample/Calculator.zip Калькулятор (файлы проекта)]'''<br />
<br><br />
[[Файл:Calculator.png|center]]<br />
<br />
===Логический порядок===<br />
Создать экран, который будет похож на экран ноутбука. На экране ноута показать открытую папку с 12 фотографиями внутри. Цель игры: меняя местами по две фотографии за ход, нужно выстроить логическую цепочку из этих фотографий, которые рассказывают какую-то историю. Изменение положения фотографий должно происходить следующим образом: первым кликом выбираем фотографию, которую хотим поменять, вторым кликом фотографию с которой хотим поменять. После второго клика фотографии обмениваются своими местами. Также на каждой фотографии есть иконка кнопки "увеличить фотографию", при нажатии на которую мы можем видеть увеличенное изображение этой фотографии, на увеличенном изображении иконка кнопки меняется на другую "уменьшить фотографию". При постановки фотографии на правильное место, номер позиции на которой находится фото устанавливается в зеленый свет. С этого момента фотографию нельзя выделить кликом и соответственно ее нельзя переместить.<br />
<br><br />
'''[http://fs5.absolutist.com/files/sample/Logical%20order.zip Логический порядок (файлы проекта)]'''<br />
<br><br />
[[Файл:Logical_order.png|center]]<br />
<br />
===Мультиметр===<br />
Создать экран на котором будет находится мультиметр, батарея от ноута и обычные пальчиковые батарейки (12 штук). Задача состоит в том, чтобы из 12 батареек выбрать 6 и вставить их в батарею ноута. Задача будет считаться выполненной тогда, когда общий вольтаж батареек, вставленных в батарею ноута будет равен 12 В. Можно брать любую из батареек и измерять ее вольтаж с помощью мультиметра, при этом, если батарейку не измеряли мльтиметром, то на ней нет надписи, показывающей на сколько вольт данная батарейка. Если же ее хоть раз измеряли мультиметром, то на батарейке всегда будет надпись, показывающая ее вольтаж. Также, в не зависимости от того, измеряли или не измеряли мультиметром батарейку, ее можно вставить в батарею ноута. Если игрок пытается поставить батарейку на место, в котором уже есть батарейка, то роняемая батарейка должна съехать вниз на 100 px. При установке какой-либо из батареек в батарею ноута, должен обновляться счетчик, показывающий общее напряжение в батарее ноута. На экране мультиметра также должно показываться значение батарейки, которую он измеряет.<br />
<br><br />
'''[http://fs5.absolutist.com/files/sample/Multimetr.zip Мультиметр (файлы проекта)]'''<br />
<br><br />
[[Файл:Multimetr.png|center]]<br />
<br />
<br />
== См. также ==<br />
<br />
[[Мини игра Лабиринт "мышь и сыр"]]<br />
[[Category:Мини игры|*]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%9C%D0%B8%D0%BD%D0%B8_%D0%B8%D0%B3%D1%80%D0%B0_%22%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B8%22&diff=6405Мини игра "Стрелки"2014-09-19T14:10:30Z<p>Aslav: </p>
<hr />
<div>1.'''Суть игры''' заключается в повороте стрелок на нужный угол (который мы узнаём по соединению нужных цветов с нужными символами, который мы узнаем из другой мини игры).<br />
<br />
[[Файл:Скрин1 стрелки.png|500px]]<br />
<br />
''(Оригинальность данной мини игры заключается в способе поворота "стрелок" на положительный и отрицательный угол)''<br />
<br />
2.'''Реализация''' <br />
<br />
[[Файл:Скрин2 стрелки.png|500px]]<br />
<br />
Оригинальность данной игры реализовывается с помощью трёх масок с 0,01 прозрачностью,<br />
'''1-я маска''' - это маска за которую мы таскаем стрелку,она является прямоугольником с длинной стрелки и шириной удобную для таскания.<br />
Таскаем данную маску мы с помощью drag на несколько пикселей по оси "y" (главное что-бы мы могли достать нужную 2-ую,3-ую маску)<br />
<br />
[[Файл:Скрин3 стрелки.png|500px]]<br />
<br />
В первом состоянии у нас выполняется drag , а во втором мы возвращаемся в первое <br />
<br />
'''2-я,3-я маска''' - это маска с помощью которой мы определяем сторону в которую мы потащили '''1-ю маску''', и передать на положительны или отрицательный угол нам повернуть нашу стрелку.<br />
<br />
[[Файл:Скрин4 стрелки.png|500px]]<br />
<br />
В первом состоянии 2-я ,3-я маска ждёт момента когда мы к ней перетащим 1-ю маску,и произойдёт apply , тогда 2-я,3-я маска переводит 1-ю маску во второе состояние,и саму стрелку в соответствующее 2-е( положительный угол), 3-е (отрицательный угол).<br />
<br />
Таким образом мы поворачиваем наши стрелки и выставляем на нужный угол.<br />
<br />
[[Файл:Скрин5 стрелки.png|750px]]<br />
<br />
<br />
[[Category:Мини игры]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81&diff=6404Интерфейс2014-09-19T14:07:38Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
'''Данная статья посвящена функциональным возможностям наших Редакторов: Редактору сцен, Редактору ресурсов и Редактору текстов.<br>'''<br />
<br />
<br />
== [[Файл:Ico_main.png]]Редактор сцен ==<br />
<br />
'''Редактор сцен''' — программа, предназначенная для создания, редактирования и экспорта игровых экранов, в котором происходит настройка свойств объектов и игровой логики. <br><br />
<br />
'''Окно редактора сцен состоит из:'''<br />
*меню редактора;<br />
*рабочей области, в которой размещен обьект сцена, на котором размещают другие обьекты;<br />
*панель Лэйаут, в которой размещено иерархическое дерево проекта, которое состоит из экранов, на которых находятся игровые объекты;<br />
*панель Свойства, которая отображает свойства объекта, который выбран в дереве проекта;<br />
*панель для построения сплайна;<br />
*панель инструментов;<br />
*строка Координаты, отображающая координаты курсора в текущий момент времени<br><br />
<br />
Для включения или отключения панели кликаем правой кнопкой мыши по серой области меню редактора и ставим галочку. Панели можно расположить на экране в любом порядке.<br> <br />
<br />
[[Файл:Головна2.PNG|700px]]<br />
<br />
=== Меню редактора ===<br />
<br />
==== Project (Проект)====<br />
меню, которое содержит список команд, с помощью которых можно создать новый или загрузить уже созданный проект, сохранить проект с указанием места сохранения и т.д.<br />
*'''New project''' - создать новый проект; <br />
*'''Open''' - открыть уже созданный проект (проект обязательно должен находится в подкаталоге редактора); <br />
*'''Recent project...''' - показывает список последних открывавшихся проектов; <br />
*'''Close''' - закрытие проекта (редактор при этом не закрывается); <br />
*'''New project''' - создать новый проект; <br />
*'''Save''' - сохранение проекта; <br />
*'''Save as...''' - сохранение проекта под новым именем или в новом каталоге; <br />
*'''Export...''' - экспорт проекта; <br />
*'''Project options...''' - опции проекта; <br />
*'''Exit''' - закрытие редактора. <br />
<br />
==== Edit (Редактирование)====<br />
меню редактирования проекта:<br />
*'''Copy''' - копирование объекта; <br />
*'''Paste into current object''' - вставка объекта в выбранный объект; <br />
*'''Paste after current object''' - вставка объекта после выбранного объекта;<br />
*'''Delete...''' - удаление объекта;<br />
*'''Delete temp data''' - удаление опций; <br />
*'''Find object...''' - поиск объекта по id или по имени;<br />
*'''Setup Editor...''' - настройки редактора.<br />
<br />
==== View (Просмотр)====<br />
меню запуска Вьювера (Viewer)- проигрывателя созданного экрана проекта:<br />
*'''Start Viewer''' - запуск вьювера;<br />
*'''Setup Viewer...''' - настройки окна вьювера для выбранного проекта.<br />
<br />
====Layouts (Лейаут, Макеты)====<br />
меню работа с лейаутами проекта (выбор макета устройства для проекта, редактирование экранов):<br />
*'''Add new layout...''' - создание нового лейаута;<br />
*'''Delete layout...''' - удаление лейаута;<br />
*'''Layout settings...''' - настройки лейаута;<br />
*'''Add folder...''' - создание папки в текущем лейаута;<br />
*'''Add screen...''' - создание нового экрана.<br />
==== Tools (Инструменты)====<br />
меню дополнительных редакторов и инструментов для проекта (вызов редактора ресурсов, текстового редактора, анализ проекта). Список этого меню вынесен на панель с кнопками быстрого запуска:<br />
*'''Resources Editor''' - редактор ресурсов;<br />
*'''Texts Editor''' - текстовый редактор;<br />
*'''Analyzer''' - анализатор ресурсов (показывает колличество объектов проекта, их размер занимаемой памяти, сведения о ресурсах каждого объекта (размер, ID номер, название (имя), местонахождение в базе ресурсов));<br />
*'''Object info...''' - общие свойства объекта (показывает размер памяти занимаемой текстурами);<br />
*'''Options info...''' - информация об опциях.<br />
<br />
==== Help (Помощь)====<br />
меню вызова справки.<br />
<br />
=== Кнопки панели Инструменты ===<br />
Некоторые инструменты также вызываются горячими клавишами (комбинация клавиш приведена в скобках )<br />
<br />
[[Файл:00 6.png]] (Ctrl+N) — создать новый проект; <br><br />
[[Файл:00 7.png]](Ctrl+O) — загрузить уже созданный проект;<br><br />
[[Файл:00 8.png]](Ctrl+S) — сохранить изменения в проекте;<br><br />
[[Файл:00 9.png]] — запустить Viewer;<br><br />
[[Файл:009.JPG]] — нормальный вид; <br><br />
[[Файл:Ico_text.png|25px]] - вызов текстового редактора; <br><br />
[[Файл:Ico_base.png|25px]] — вызов редактора ресурсов;<br><br />
[[Файл:013.JPG]] — анализатор ресурсов (показывает колличество объектов проекта, их размер занимаемой памяти, сведения о ресурсах каждого объекта (размер, ID номер, название (имя), местонахождение в базе ресурсов)); <br><br />
[[Файл:014.JPG]]— поиск объекта по id или по имени.<br><br />
<br />
===Функции рабочей области===<br />
<br />
'''1) Масштабирование рабочей области<br>'''<br />
Ctrl + колесико мышки крутим вперед - увеличиваем обьекты , назад - уменьшаем обьекты.<br><br />
<br />
'''2)Перемещение по рабочей области<br>'''<br />
После масштабирования возникает необходимость переместиться с левого уголка экрана в далекий правый, переместиться к выбраному обьекту, вверх или вниз.<br><br />
<br />
Кликаем правой кнопкой мыши по горизонтальному scroll и выпадает меню: <br />
*scroll here — функция перемещает экран к обьекту, который выделен в Лэйауте;<br />
*scroll left / right - функция перемещает экран на маленькое расстояние вправо / влево;<br />
*left / right edge — функция перемещает экран в левый / правый угол экрана;<br />
*page left / right - функция показывает левую/правую часть экрана<br><br />
<br />
Кликаем правой кнопкой мыши по вертикальному scroll и выпадает меню: <br />
*scroll here — функция перемещает экран к обьекту, который выделен в Лэйауте;<br />
*scroll up / down - функция перемещает экран на маленькое расстояние вверх / вниз;<br />
*top/bottom - функция перемещает экран вверх / вниз;<br />
*page up / down - функция перемещает экран верхнюю / нижнюю часть экрана.<br><br />
<br />
Меню прокрутки скрывается по нажатию клавиши Alt<br><br />
<br />
===Функции панели Лэйаут===<br />
[[Файл:Лэйаут_1.JPG|right]] <br />
При клике правой кнопкой мыши по выбраному лэйауту (см. рисунок справа)<br />
*Создать папку в текущем обьекте;<br />
*Создать экран в текущем обьекте - создание обьекта в текущем лэйауте;<br />
*Импорт/экспорт экранов — импорт/экспорт одного или нескольких экранов;<br />
*Развернуть / Свернуть обьекты с подобъектами — сворачивает / разворачивает дерево обьектов всех экранов<br><br />
<br />
При клике правой кнопкой мыши по выбраному экрану, сцене или обьекту возможно: <br />
*Создать сцену в текущем обьекте - создание экран в текущем экране;<br />
*Создать экран в текущем обьекте - создание экран в текущем лэйауте;<br />
*Создать обьект сцены в текущем обьекте - создание обьекта в текущем обьекте;<br />
*Удалить обьект - удаление обьекта из проекта;<br />
*Копировать обьект — копирование обьекта;<br />
*Вставить в текущий обьект — вставка обьекта в текущий обьект верхнего уровня ;<br />
*Вставить как ссылку в текущий обьект — вставка обьекта в текущий обьект для создания расшариной сцены;<br />
*Вставить как ссылку после текущего обьекта — вставка обьекта после текущего обьекта для создания расшариной сцены;<br />
*Вставить после текущего обьекта - вставка обьекта после текущего обьекта;<br />
*Импорт/экспорт экранов — импорт/экспорт одного или нескольких экранов;<br />
*Развернуть / Свернуть обьекты с подобъектами — сворачивает /разворачивает дерево обьектов экрана или сцены; <br />
<br />
====Важное замечание по функции Расположить сцену в соответствии с изображением ====<br />
Пусть на сцене будет находится очень много картинок, которые должны находиться в строго определенных местах. Переместим нашу картинку в нужную точку на сцене. Но у нас картинок очень много и мы потратим много времени на их расстановку. Для уменьшения времени на расстановку картинок воспользуемся функцией расположить сцену в соответствии с изображением.<br><br />
Функция расположить сцену в соответветствии с изображнием перемещает картинку в заданную точку художниками. Художник решил, что клубма должна быть в правом нижем углу, после применения функции расположить сцену в соответветствии с изображнием, картинка станет именно на указанное художником место. <br><br />
Данная функция вызвается кликом правой кнопкой мыша по обьекту<br> [[Файл:панель_свойства_1.JPG|right]]<br />
<br />
===Функции панели Свойства===<br />
<br />
*При клике на тип или имя некоторых обьектов вызываются дополнительные окна.Например, при клике на тип Machine открывается окно, где прописываются функции обьекта типа Machine.<br />
*При наведении на поле тип выпдает подсказка с уникальным номером обьекта.<br />
*При клике правой мышкой по названию свойства обьекта выпадает меню с дополнительными свойствами обьекта<br />
*Некоторые свойства обьектов объединены в группы (см. рисунок справа)<br />
<br />
=== Создание проекта ===<br />
<br />
1. Для создания нового игрового проекта необходимо запустить редактор сцен SceneEditor.<br><br />
2. В верхнем меню Проект выбрать Новый (т.е. создать новый проект).<br><br />
3. В появившемся окне указываем имя проекта и имя базы ресурсов.Выбираем папку для сохранения проекта<br><br />
4. В этом окне выбираем устройство для которого создаётся проект, а затем выбираем тип магазина и вариант версии игры<br><br />
[[Файл:020.JPG]] [[Файл:021.JPG]]<br />
<br />
5. В редакторе сцен в меню Проект → Сохранить → проект с именем Learning.<br> <br />
Эту методику действий можно брать за шаблон для создания других проектов.<br><br />
Результат: Создана база ресурсов и проект для выполнения Уроков. <br />
<br />
====Важное замечание по созданию проекта====<br />
[[Файл:2_лэйаута.JPG|right]]<br><br />
Предположим нам необходимо создать игру для магазина А и магазина Б. Игра будет отличаться только 10 функциями. Мы можем создать игру для магазина А., а потом скопировать папку с проектом, проект переименовать, внести изменения и получить игру для магазина Б. Результат: 2 игры и 2 папки с ресурсами. Такой подход не приветствуется.<br><br />
Для уменьшения времени на создание проекта, подключение ресурсов, внесения одинаковых обьектов и удобства отслеживания багов и прочего в Редакторе Сцен существует возможность создания двух лэйаутов в одном проекте.<br />
При создании проекта мы выбираем оба магазина, после чего в панели Лэйаут появится два лэйаута для магазина А и магазина Б(см. рисунок справа. При этом текстовая база проекта и база ресурсов у них будут идентичны. При создании новых объектов в одном лэйауте они же будут создаваться и в другом, при этом можно изменять свойства обьекта каждого лэйаута независимо от второго.<br><br />
<br />
===Экспорт проекта===<br />
<br />
'''Этапы экспорта проекта'''<br />
*Выполняется сжатие графики при необходимости <br />
*Очистка базы ресурсов от неиспользуемой графики<br />
*Запаковка графики в текстуры и контейнер<br><br />
С целью экономии оперативной памяти на устройстве возможно сжатие графики, упаковка графики в текстуры, создаение нескольких исполняемых файлов, проекта, содержащих в себе несколько сцен проекта, и загружаемых в оперативную память устройства по мере прохождения игры.<br><br />
<br />
Процедура экспорта проекта вызывается через меню редактора Проект - Экспортировать проекта<br><br />
<br />
[[Файл:Exp12.png|right]]<br />
'''Параметры экспорта проекта:'''<br><br />
''Настройки параметров графики''<br />
*Ось Х, ось У — параметры сжатия графики по оси Х,У. Значения параметра от 0 до 1. При<br />
*При выполнении сжатия рекомендуется обращать внимания на размер лэйаута<br />
*Сжатие графики возможно и непропорциональное . Используется редко<br />
<br />
''Параметры запаковки графики''<br />
*Packege Type - упаковка ресурсов в фаил с типом DAT. Обеспечиваем защиту ресурсов проекта от несанкционированного доступа. Увеличиваем производительность при операциях чтения файлов ресурсов с твердотельного носителя.<br />
*Texture Type - упаковка графических файлов в текстуры. Необходимо для уменьшения используемого объема оперативной памяти.<br />
<br />
''Тип экспорта'' <br />
*One project file - формируется один XML файл описывающий проект. <br />
*Split project on screens, load partly' - проект будет разбит на отдельные файлы описывающие экраны, загружаться файлы будут в порядке использования (вызова) в проекте. В результате получаем увеличение начальной загрузки проекта и использование меньшего объема оперативной памяти.<br />
<br />
''Export to folder'' - Путь для экспорта.Если указан путь экспорта проекта, то не учитывается выбранная ниже платформа. Если не указан - проект экспортируеются под выбраную платформу Структура папки:<br />
[[Файл:TreeFolder.png|TreeFolder.png]]<br><br />
'''Select platform''' - необходимо выбрать платформу для которой будем собирать проект. При экспорте на все платформы необходимо установить Marmalade SDK [[Установка и настройка|см. инструкцию]] при этом не нужно указывать путь для экспорта (оставить поле пустым). В результате запустится скрипт сборки исполняемого пакета, это будет видно по черным экранам с ходом выполнения процесса сборки.Процесс экспорта будет отображаться в окне.<br />
<br />
== [[Файл:Ico_base.png]]Редактор ресурсов ==<br />
<br />
===Общее описание===<br />
[[Файл:Ico_base.png|40px]]'''Редактор ресурсов''' - приложение, которое управляет базой графических, анимационных, видео и звуковых ресурсов проекта. <br>[[Файл:New resource editor look.jpg|500px|right]]<br />
Ресурсы проекта могут быть внесены и модифицированы только через Редактор ресурсов.<br><br />
Как и в редакторе сцен, вверху окна редактора ресурсов расположено меню и кнопки быстрого доступа: создать базу ресурсов, открыть уже существующую, добавить картинку (png, jpeg), анимацию, мелодию (mp3, ogg), видео (mp4).<br><br />
Ниже, в левой панели находятся папки, внутри которых можно найти различные графические ресурсы:<br />
*Если в дереве папок активна данная папка, то на правой панели мы видим список графических ресурсов в виде иконок. <br />
*Если же в дереве кликнуть на имя конкретной картинки, то в правой панели она будет представлена в натуральную величину. <br />
*При клике на ресурс в левой нижней части окна редактора ресурсов появится панель с настройками ресурса в зависимости от его типа<br />
<br />
===Меню Редактора ресурсов===<br />
Некоторые инструменты также вызываются горячими клавишами (комбинация клавиш приведена в скобках )<br />
<br />
====Меню File====<br />
*New Project (Ctrl+N) – создать новый проект с новой базай ресурсов. Возможно в качестве базы ресурсов выбрать уже существующий каталог ресурсов.<br />
*Open Project (Ctrl+N) - открыть базу ресурсов ранее созданного проекта<br />
*Создать проект по папке — создать базу ресурсов по каталогу с ресурсами<br />
<br />
====Меню View====<br />
*Always on top - всегда отображать Редактор Ресурсов поверх всех окон<br />
*Image Viewer - отобразить панель Image Viewer для просмотра ресурсов<br />
<br />
====Меню Project====<br />
*Add Root Base - создать еще одну базу ресурсов в текущем проекте<br />
*Add images — добавить изображения в проект<br />
*Add Animations — добавить анимацию в проект<br />
*Add Sounds - добавить звук в проект<br />
*AddVideos - добавить видео в проект<br />
*Delete Resource — удалить ресурс<br />
*Options — вызов окна настройки отображения изображений в редакторе<br />
*Обрезать images в старом проекте — вызов функции удаления бордера изображения (у всех ресурсов) на указанную величину в параметре Transparent Border Size вкладки Cropping Settings из Options меню Project<br><br />
<br />
Кнопки Add images, Add Animations, Add Sounds , AddVideos, Delete Resource вызвается по клику правой кнопки мыши в дереве базы ресурсов<br />
<br />
====Область визуализации ресурсов Image Viewer====<br />
В данной области визуализируется ресурс. Все виды ресурсов визуализируется как изображение.<br />
По клику правой кнопкой мыши внутри области визуализации выпадает меню:<br><br />
''Center image by''<br />
Предположим мы изменили точку пивота ресурса.<br><br />
*Если выберем Image Center to Center, то в центре Image Viewer отобразится ресурс.<br />
* Если выберем Image Pivot to Center, то в центре Image Viewer отобразится точка пивота. (См. рисунок справа)<br><br />
''Directory View Mode'' — . Если мы выберем режим Full Source Image , то мы будем видеть изображение и бордер, а если Cropped Images — то только изображение без бордера<br> <br />
[[Файл:RR_Pivot_1_.JPG|300px]] [[Файл:RR_Pivot_2.JPG|350px]]<br><br />
<br />
====Shape====<br />
Для работы с обьектами физического мира иногда требуется создать дополнительный конутр вокруг обьекта.<br />
Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом в Shape editor.<br />
Количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами. <br />
Для удаления нарисованного шейпа нажимаем Delete<br><br />
[[Файл:Физика5.PNG|500px]]<br />
<br />
=== Создание базы графических ресурсов === <br />
1. Запустить редактор ресурсов ResourcesEditor.exe. В меню File выбрать New Project.<br><br />
2. В окне базы создания ресурсов в строке "Папка проекта" указать путь на ранее созданную пустую папку Resources, затем в строке "Имя базы ресурсов" вписать имя корневой базы Learning_Base.<br><br />
[[Файл:00_26.PNG]]<br><br />
3. В корневой базе создать папку Create New Folder (например, папка Lesson_01).<br><br />
4.Загрузить исходники графики из папки Sources → Lesson_01. <br><br />
[[Файл:00 27.png]] [[Файл:00 28.png]] [[Файл:00_29.PNG]]<br><br />
В папке ресурсов Resources автоматически создается папка с корневой базой (в нашем случае Learning_Base), в которой автоматически появляются папка с графическими ресурсами Lesson_01 (для урока 1) и файл Learning_Base.sirx<br><br />
[[Файл:00 30.png]]<br><br />
'''Внимание! Прямое изменение структуры файлов в папке Resources запрещено. Допускается работа только через редактор ресурсов.'''<br />
<br />
=== Автоматическое создание базы ===<br />
<br />
В случае, если имеется уже готовый набор графических ресурсов (а именно, структурированная папка), то можно использовать ее. Для этого нужно при создании новой базы в строке "Папка с графическими ресурсами" указать путь, где находится готовая база ресурсов.<br />
<br />
[[Файл:00_30a.PNG]] [[Файл:00_30b.PNG]]<br />
<br />
=== Действия с ресурсами в Resources Editor ===<br />
==== Общие свойства и действия с ресурсами====<br />
'''После любых действий в редакторе ресурсов необходимо обновить базу ресурсов в Редакторе сцен!'''<br />
*каждому ресурсу присваивается уникальный номер.<br />
*при добавлении ресурса - присваивается следующий по порядку уникальный номер<br />
*при экспорте экранов в текущий проект ресурсы добавляются автоматически в базу текущего проекта и присваиваются им следующие по порядку уникальные номера<br />
*может существовать несколько ресурсов с одинаковыми именами<br />
*ресурсы могут быть автоматически добавлены в текущий проект или добавлены из другой базы ресурсов<br />
*ресурсы могут быть удалены, модифицированы<br><br />
<br />
==== Графические ресурсы====<br />
В редактор ресурсов подгружаются графические форматы: <br />
*JPEG - изображение, не имеющее прозрачности. Может использоваться для "облегчения веса", в качестве фонового изображения или для паззла;<br />
*PNG - может поддерживать прозрачность, произвольные границы изображения. Сохраняет высокое качество изображения. <br />
=====Cоздание бордера изображения=====<br />
[[Файл:00_37.PNG|right]]<br />
Для уменьшения вероятности появления графических артефатов вокруг изображений рекомендуется создавать прозрачную область вокруг изображения. Размеры бордера задаются в пикселях.<br><br />
Для создания прозрачной области кликаем по изображению и меняем параметр BorderSize на панели настройки ресурса(см. рисунок справа)<br><br />
Для создания бордеров у всех ресурсов выбираем меню Projects – Options и на вкладке Cropping Settings параметру Transparent Border Size присваиваем нужное значение.<br><br />
[[Файл:00_46.PNG|00_46.PNG]] [[Файл:00_47.PNG]]<br><br />
=====Точка пивота=====<br />
Иногда возникает необходимость сместить точку вращения обьекта вокруг своей оси (точку пивота).<br><br />
Для этого в редакторе ресурсов выбирем редактируемый обьект и в панели настроек ресурса изменим значения параметров Pivot.<br><br />
Если мы хотим произвольно задать координаты точки пивота, то ставим галочку Edit Pivot и после этого «таскаем» редактируемый ресурс по области визуализации ресурсов. Точка пивота находится в центре экрана (красный крестик)<br />
<br />
=====Заменить изображение, существующие в базе ресурсов=====<br />
Предположим, нам необходимо подменить изображение загруженное в базу ресурсов, но при этом не удаляя его из базы.<br><br />
Для это кликаем правой кнопкой мыши по изображению и выбираем в меню "заменить изображение"<br />
<br />
=====Настройки текстур=====<br />
параметр texture mode [[Файл:Texture mode resource editor.jpg]] определяет принадлежность картинки к текстуре.<br />
*Если стоит -1, то картинка которая используется только на одном экране вместе с такими же картинками(которые используются только на том же экране что и выбранная) на этом экране будут упакованы в текстуру, если все картинки не поместятся в текстуру размером 1024х1024, то те картинки, которые не поместились попадут в 2-й файл текстуры. <br />
*Если картинка используется на нескольких экранах, то в текстуру она не попадёт. <br />
*Если стоит 1, 2, 3 и т.д до 100, то данная картинка объединится в текстуру вместе с картинками у которых стоит такое же значение в texture mode. Если все не поместятся в одну текстуру размером 1024х1024, то не поместившиеся изображения попадут в 2-ю текстуру и т.д..<br />
<br />
====Анимация====<br />
Анимация создается путем вызова кнопки add_animations и выбором нескольких графических файлов из любой папки <br> <br />
[[Файл:00_40.PNG]][[Файл:00_41.PNG|300px]]<br><br />
После загрузки анимации можно изменить ее параметры. Например, изменить скорость анимации (смены кадров) и зациклить, поставив галочку напротив Looped.<br><br />
В левой части нижнего окна анимации находится список загруженных изображений, в правой - последовательность изображений (кадров), которые можно менять местами, добавлять/удалять, загружать в прямом/обратном порядке. Таким образом, можно "уменьшить вес" анимации за счет использования меньшего количества исходных изображений.<br><br />
[[Файл:00_43.PNG]][[Файл:00_44.PNG]] [[Файл:00_45.PNG]]<br />
<br />
====Звуковые файлы==== <br />
Звуковые файлы нам нужны для озвучки персонажей и не только. Используются файлы в форматах:<br><br />
*mp3 - используется как ресурс для длинного звука mus. Звуки такого формата могут воспроизводиться только последовательно.<br />
*ogg - используется как ресурс для короткого звука snd (snd-звуки могут воспроизводиться параллельно) и для подключения голоса voice (если voice подключен к тексту, то воспроизводится последовательно). Имеет меньший объем, чем формат mp3.<br />
Воспроизведение звуковых файлов устанавливают через различные обьекты. Например, через состояния обьекта Machine<br />
[[Файл:00_48.PNG]]<br><br />
<br />
== [[Файл:Ico_text.png]]Редактор текстов ==<br />
<br />
[[Файл:Ico_text.png|40px]] '''Text Editor''' - хранилище всех текстовых ресурсов (надписей) на различных языках. Аналогично графике и звукам при помощи мышки они перетаскиваются в соответствующие свойства объектов, находящихся в Scene Editor.<br><br />
Окно редактора имеет следующий вид:<br />
[[Файл:Головна4.PNG|550px|right]]<br />
<br />
===Общие свойства и действия с текстом===<br />
<br />
'''После любых действий в текстовом редакторе необходимо обновить текстовую базу в Редакторе сцен!''' <br />
*элемент текстовой базы - строка текста, которая может хранить в себе несколько различных фраз,записанных в разные поля<br />
*фраза персонажа на разных языках записывается в один элемент текстовой базы<br />
*в текстовой базе может храниться voice<br />
*каждому элементу текстовой базы присваивается уникальный номер. <br />
*при добавлении элемента - присваивается следующий по порядку уникальный номер <br />
*при экспорте экранов в текущий проект элементы текстовой базы добавляются автоматически в базу текущего проекта и присваиваются им следующие по порядку уникальные номера <br />
*может существовать несколько элементов с одинаковыми именами <br />
*текст может быть автоматически добавлен в текущий проект или добавлен из другой текстовой базы <br />
*єлемент текстовой базы может быть удален, модифицирован, категоризирован<br />
<br />
=== Кнопки быстрого запуска ===<br />
Вверху окна приложения расположены кнопки общего меню:<br />
*[[Файл:00 6.png]] — команда создать Новый файл; <br />
*[[Файл:00 7.png]] — команда открыть уже созданный проект;<br />
*[[Файл:00 8.png]] — сохранить изменения в файле;<br />
*[[Файл:00 18.png]] — создать новую папку в корневой базе;<br />
*[[Файл:00_53.PNG]] — добавить новую текстовую запись; <br />
*[[Файл:00 19.png]] — удалить текстовую запись.<br />
<br />
<br />
=== Меню редактора ===<br />
1. Если нажать в меню кнопку '''File''', выпадет список команд, с помощью которых можно создать новый или загрузить уже созданный файл, сохранить файл с указанием места сохранения и т.д.<br><br />
2.Для импорта фраз на другом языке необходимо воспользоваться Функцией Ипортировать меню File и выбрать .xml-файл с текстом и выбрать язык<br><br />
3. Если нажать в меню кнопку '''Resource''', выпадет список команд:<br><br />
* Open Resource - позволяет создать базу по ранее подготовленной графической базе ресурсов с точным совпадением структуры и названием папок и файлов. Используется для Hidden Objects;<br />
* Choose Resource File - позволяет подгрузить базу графических ресурсов для перетаскивания изображений из ResourcesEditor на иконку;<br />
* Choose Categories Config - помогает классифицировать текстовые файлы по категориям.<br />
[[Файл:00_51.PNG]] [[Файл:00_52.PNG]]<br />
<br />
<br />
=== Создание и заполнение текстовой базы проекта ===<br />
Текстовая база не создается автоматически при создании проекта. <br><br />
Для создания и заполнения текстовой базы: <br><br />
1. Заходите в пункт меню '''file -> New'''. Появляется пустая база ресурсов, по умолчанию названная '''Untitled'''. <br><br />
2. Слева в дереве текстовых объектов кликаем правой кнопкой мыши и выбираем '''Add record'''. Каждый раз при добавлении новой текстовой записи редактор просит нас написать ее имя. Это имя можно будет изменить в любой момент. Запишем имя '''arrow_If_down'''. <br><br />
3. Выделить запись и в окне приложения TextEditor справа в столбце Word запишем слово, в столбце Sentence1,Sentence2 - указать подсказку для текстовой записи, в столбце voice - подключить звуковой файл для текстовой записи из ResourcesEditor.<br><br />
[[Файл:00_54.PNG]]<br />
<br />
'''Необходимо обязательно сохранять любые изменения с текстом в редакторе TextEditor.'''<br><br />
Для вызова текстового редактора можно воспользоваться меню '''Tools -> Text Editor''', либо кнопкой быстрого запуска [[Файл:011.JPG]].<br />
<br />
<br />
[[Category:Projects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BA%D0%BE%D0%BD%D0%BA%D0%B8&diff=6403Иконки2014-09-19T14:06:39Z<p>Aslav: </p>
<hr />
<div>Требование к графике иконок:<br />
<br />
Иконки для ios находятся в папке ''not_alpha'', для остальных платформ в папке ''alpha''. Обе папки находятся в следующем месте: ''\system\temp\projects\Absolutist\project\icons''<br />
<br />
Без прозрачности:<br />
<br />
* 29x29 24-bit png - 29.png<br />
* 50x50 24-bit png - 50.png<br />
* 57x57 24-bit png - 57.png<br />
* 58x58 24-bit png - 58.png<br />
* 72x72 24-bit png - 72.png<br />
* 100x100 24-bit png - 100.png<br />
* 114x114 24-bit png - 114.png<br />
* 144x144 24-bit png - 144.png<br />
* 512x512 24-bit png - 512.png<br />
<br />
с прозрачностью:<br />
<br />
* 48x48 32-bit png - 48.png<br />
* 170x170 32-bit png - 170.png<br />
* 72x72 32-bit png - 72.png<br />
* 36x36 32-bit png - 36.png<br />
* 48x48 32-bit png - 48.png<br />
* 86x86 32-bit png - 86.png<br />
* 114x114 32-bit png - 114.png<br />
* 512x512 32-bit png - 512.png<br />
* большая квадратная картинка с прозрачностью любого размера - generic.png<br />
<br />
с прозрачностью:<br />
<br />
<br />
[[Category:Projects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BA%D0%BE%D0%BD%D0%BA%D0%B8&diff=6401Иконки2014-09-19T14:06:18Z<p>Aslav: переименовал Иконок в Иконки</p>
<hr />
<div>Требование к графике иконок:<br />
<br />
Иконки для ios находятся в папке ''not_alpha'', для остальных платформ в папке ''alpha''. Обе папки находятся в следующем месте: ''\system\temp\projects\Absolutist\project\icons''<br />
<br />
Без прозрачности:<br />
<br />
* 29x29 24-bit png - 29.png<br />
* 50x50 24-bit png - 50.png<br />
* 57x57 24-bit png - 57.png<br />
* 58x58 24-bit png - 58.png<br />
* 72x72 24-bit png - 72.png<br />
* 100x100 24-bit png - 100.png<br />
* 114x114 24-bit png - 114.png<br />
* 144x144 24-bit png - 144.png<br />
* 512x512 24-bit png - 512.png<br />
<br />
с прозрачностью:<br />
<br />
* 48x48 32-bit png - 48.png<br />
* 170x170 32-bit png - 170.png<br />
* 72x72 32-bit png - 72.png<br />
* 36x36 32-bit png - 36.png<br />
* 48x48 32-bit png - 48.png<br />
* 86x86 32-bit png - 86.png<br />
* 114x114 32-bit png - 114.png<br />
* 512x512 32-bit png - 512.png<br />
* большая квадратная картинка с прозрачностью любого размера - generic.png<br />
<br />
с прозрачностью:</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%98%D0%BA%D0%BE%D0%BD%D0%BE%D0%BA&diff=6402Иконок2014-09-19T14:06:18Z<p>Aslav: переименовал Иконок в Иконки</p>
<hr />
<div>#перенаправление [[Иконки]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D1%88%D1%80%D0%B8%D1%84%D1%82%D0%BE%D0%B2&diff=6400Генератор шрифтов2014-09-19T14:04:53Z<p>Aslav: </p>
<hr />
<div>В состав редактора входит утилита которая позволяет конвертировать ttf шрифты в формат необходимый для сборки и вьювера.<br />
<br />
<span style="background-color:yellow">'''Для работы генератора шрифтов необходимо наличие Marmalade SDK'''</span><br />
<br />
Генератор находится в папке '''''tools\FontGenerator'''''<br />
<br />
Для конвертирования шрифта необходимо поместить ttf файл в папку '''''\tools\FontGenerator\res''''' <span style="background-color:yellow">Название файла будет названием конвертированного шрифта!</span><br />
<br />
После того как ttf файлы помещены в необходимую папку надо запустить '''''FontBinaryGenerate.cmd''''' который находится в папке '''''tools\FontGenerator'''''. После того как утилита отработает файлы конвертированных шрифтов появятся в папке '''''\tools\FontGenerator\res'''''.<br />
<br />
<br />
[[Category:Projects]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_Counter_%D0%B8_Puzzle&diff=6399Взаимодействие объектов Counter и Puzzle2014-09-19T14:04:14Z<p>Aslav: </p>
<hr />
<div>[[Counter|Каунтер]] в пазлах используеться для отображения колличества ходов в игре и хинтов .<br />
<br />
В [[Puzzle]] есть счетчик, который считает кол-во ходов(поле "счетчик" на картинке). После прохождения он запишет в опции значения в [[Options]] если у нас заданы поля "игра" и "уровень"<br><br />
Для отображения этих значений в других экранах можно использовать [[Counter]] которому указываем ключи game и level, тогда он считает это значение из [[Options]].<br><br />
==В пазле есть два типа хинтов использующих Counter:==<br />
<br />
1. Показ некоторое кол-во времени исходной картинки.<br><br />
2. Перестановка пазлины на правильное место.<br><br />
<br />
На каждый из этих хинтов в пазле есть встроеный счетчик. (два нижних поля на картинки)<br><br />
[[Файл:pzl.jpg]]<br><br />
Для подключения мы создаем объект с типом "counter" который нужно подключить в соответствующие поле.<br />
<br />
Хинты запускаются вызыванием состояний "hint" и "swap" в объекте [[Puzzle]] при их вызове отнимется от соответствующего каунтера единица (если хинты у нас конечные).<br />
<br />
<br />
[[Category:Мини игры]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Viewer&diff=6398Viewer2014-09-19T14:00:21Z<p>Aslav: Перенаправление на Интерфейс Viewer</p>
<hr />
<div>#REDIRECT [[Интерфейс_Viewer]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=ResourcesEditor&diff=6397ResourcesEditor2014-09-19T13:59:09Z<p>Aslav: Перенаправление на Интерфейс ResourceEditor</p>
<hr />
<div>#REDIRECT [[Интерфейс_ResourceEditor]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=SceneEditor&diff=6396SceneEditor2014-09-19T13:57:57Z<p>Aslav: Перенаправление на Интерфейс ScenceEditor</p>
<hr />
<div>#REDIRECT [[Интерфейс_ScenceEditor]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=Flurry&diff=6395Flurry2014-09-19T13:56:20Z<p>Aslav: </p>
<hr />
<div>{{TOC right}}<br />
[[Object|Объект]] '''flurry''' используется для сбора статистики об использовании приложения. <br />
<br />
По умолчанию записывает такие параметры как время сессии, количество сессий, устройство, версия ОС, количество пользователей, и представляет эти данные в виде графиков и таблиц. Также можно записать какие кнопки нажимались, время между нажатиями определённых кнопок. Для сбора общих данных достаточно добавить в соответствующем виде flurry-id приложения в app.icf или в viewer.xml соответствующей платформы перед сборкой. Для сбора данных о нажатиях кнопок и др. необходимо кроме добавления flurry-id приложения в app.icf или в viewer.xml соответствующей платформы, также добавить в проект объект типа flurry и передавать ему интересующие события.<br />
<br />
Общая статистика на сервисе Flurry выглядит примерно так:<br />
<br />
[[Файл:Flurry sum stat.jpg]]<br />
<br />
==Параметры и состояния объекта flurry==<br />
<br />
===Параметры объекта flurry===<br />
<br />
Чтобы в игре установить сбор статистики нажатий определённых кнопок необходимо в редакторе сцен добавить объект Flurry (желательно на глобальный экран) и передать ему определённые параметры.<br />
У объекта flurry есть 3 параметра которые можно задавать. Это:<br />
* '''event''' - задаёт имя события<br />
* '''param_name''' - задаёт имя параметра<br />
* '''param_value''' - задаёт значение параметра<br />
Для корректной работы сбора статистики с нажатия кнопки все три поля должны быть обязательно заполнены.<br />
Рассмотрим принцип формирования названий событий на примере кнопки выбора пака в пазлах.<br />
<br />
Параметр '''''event''''' должен обозначить общее название группы событий, на пример ''Pack_select'';<br />
<br />
Параметр '''''param_name''''' должен указывать на конкретный параметр который будет записываться, в нашем случае его можно назвать ''pack_name'';<br />
<br />
Параметр '''''param_value''''' задаёт конкретное значение параметра, на пример ''pack_1''.<br />
<br />
===Состояния объекта flurry===<br />
<br />
* '''event''' - отправляет накопленные данные<br />
<br />
В самом объекте flurry можно задать начальные параметры, но при изменении его параметров те которые были - изменятся, а если до изменения параметров перевести объект flurry в состояние event, то на сервер статистики отправятся значения по-умолчанию, которые были записаны.<br />
<br />
==Пример применения объекта flurry==<br />
<br />
Пример того как кнопка отправляет на сервер информацию о том, что она была нажата:<br />
<br />
[[Файл:Flurry button.jpg]]<br />
<br />
В данном случае кнопка записывает событие, название параметра, значение параметра, и сразу отправляет на сервер статистики.<br />
<br />
<br />
==Настройки приложения для отправки статистики==<br />
<br />
'''Для отправки статистики также необходимо добавить flurry-id в app.icf или в viewer.xml соответствующей платформы.'''<br />
Т.к. нагляднее выглядит статистика отдельно для платформы ios и отдельно для android, а также поскольку сервис предоставляет разные flurry-sdk для каждой из платформ, то flurry-id лучше всего вставлять в viewer.xml соответствующей платформы.<br />
<br />
В app.icf необходимо добавить строки:<br />
<br />
'''''[Flurry]'''''<br />
<br />
'''''game_id="здесь указывается flurry-id приложения"'''''<br />
<br />
или добавить в viewer.xml соответствующей платформы такую строку после globaltop, если таковой имеется, если его нет, то после настроек банеров (<banners platform_id="".../>):<br />
<br />
'''''<flurry game_id="здесь указывается flurry-id приложения"/>'''''<br />
<br />
==Реклама==<br />
<br />
Управление показом рекламы идёт через объект типа [[Advertisement]].<br />
<br />
В объекте [[Advertisement]] в качестве провайдера должен быть указан объект типа flurry и должны быть указаны '''тип''', '''space''', '''size'''.<br />
<br />
Также в [[app.icf]] или [[viewer.xml]] должен быть указан flurry id приложения, согласно ему идет работа банерной системы.<br />
<br />
Кроме этого в итоговый ''AndroidManifest.xml'' должны быть добавлены следующие строки:<br />
<br />
<pre><br />
<br />
<activity android:name="com.flurry.android.FlurryFullscreenTakeoverActivity"<br />
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode" <br />
android:hardwareAccelerated="true" ><br />
</activity><br />
<br />
</pre><br />
<br />
Также должно быть следующее разрешение:<br />
<br />
<pre><br />
<br />
<uses-permission android:name="android.permission.INTERNET"/><br />
<br />
</pre><br />
<br />
<br />
<br />
==Примечания==<br />
<br />
Исходя из значений параметров будет строиться на сервисе Flurry диаграмма по параметру указанному в ''param_name''. К примеру, если для одной кнопки зададим в ''param_value'' значение ''pack_1'', второй кнопке зададим значение ''pack_2'', то в итоге, на странице сервиса в статистике приложения в раздеде Events получим список событий, которые были записаны, если выберем событие и выберем отобразить статистику по параметрам, для наглядности в круговой диаграмме, то увидим круговую диаграмму с долями которые занимает определённый параметр. Доли высчитываются исходя из количества пришедших значений параметров, то есть если 3 раза придёт значение ''pack_1'' и один раз придёт значение ''pack_2'', то доля ''pack_1'' будет 75%, а ''pack_2'' - 25% . <br />
<br />
Также можно выбрать из выпадающего списка по каким параметрам(которые указывались в '''''param_name''''' в рамках текущего имени события) необходимо отобразить статистику по значениям параметра.<br />
<br />
[[Файл:Flurry ev stat.jpg]]<br />
<br />
<br />
===Рекомендации Flurry к событиям===<br />
* Составьте цели и план действий вокруг приложения<br />
* Если Вы хотите изменять функционал - отслеживайте его<br />
* Убедитесь что Вы собираете события вокруг навигации и монетизации<br />
* Имена событий должны легко различаться и поддаваться категоризации<br />
* Используйте временные события. Flurry автоматически разобьёт их по группам и Вы получите наглядную информацию.<br />
* Не тратьте много времени на планирование. Вы можете добавить события позже.<br />
<br />
[http://support.flurry.com/index.php?title=Analytics/GettingStarted/Events Рекомендации Flurry к параметрам]<br />
<br />
=== Отправка объектом Economics Flurry событий и параметров ===<br />
<br />
Объект Economicsавтоматически оправляет следующие Flurry события и параметры:<br />
<br />
1) При достижении уровня - '''xplevel_ <i> _reached''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*xplevel - Уровень опыта<br />
*coins_spent_log - Сколько потрачено монет<br />
*coins_left_log - Сколько осталось монет<br />
*diams_spent - Сколько потрачено кристаллов<br />
*diams_left - Сколько осталось кристаллов<br />
*hints_used - Сколько хинтов использовано<br />
<br />
2) При покупке в банке - '''purchase_ok_<item>''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*price_usd - Цена в долларах<br />
*history - История покупок через запятую<br />
*total_usd - Сколько суммарно потрачено денег<br />
*last_location - Последняя локация<br />
*last_task - Последняя мода<br />
*was_discount - Была ли скидка<br />
*from_hidden - 1-из хиддена, 0 -из меню<br />
*last_anomaly - Последняя аномалия<br />
<br />
3) При первой покупке энергии - '''1st_run_buy_energy''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - Цена в кристаллах<br />
*last_task_open - Последняя открытая таска<br />
*last_loc - Последняя сыгранная локация<br />
*xp_level - Уровень пользователя<br />
*energy_left - Сколько осталось энергии<br />
<br />
4) При первом использовании энергии - '''1st_run_use_energy''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - Цена в кристаллах<br />
*last_task_open - Последняя открытая таска<br />
*last_loc - Последняя сыгранная локация<br />
*xp_level - Уровень пользователя<br />
*energy_left - Сколько осталось энергии<br />
<br />
5) При покупке энергии - '''buy_energy''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_pric - Цена в кристаллах<br />
*last_task_open - Последняя открытая таска<br />
*last_loc - Последняя сыгранная локация<br />
*xp_level - Уровень пользователя<br />
<br />
6) При покупке энергии - '''buy_energy''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_pric - Цена в кристаллах<br />
*last_task_open - Последняя открытая таска<br />
*last_loc - Последняя сыгранная локация<br />
*xp_level - Уровень пользователя<br />
<br />
7) При покупке хинтов - '''buy_hints''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - цена в кристаллах<br />
*last_task_open - Последняя открытая таска<br />
*last_loc - Последняя сыгранная локация<br />
*xp_level - Уровень пользователя<br />
*from_game - 1- да, 0 -нет<br />
*was_anomaly - 1 - да, 0 -нет<br />
<br />
8) При покупке амулетов - '''buy_amulets''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - Цена в кристаллах<br />
*last_task_open - Последняя открытая таска<br />
*last_loc - Последняя сыгранная локация<br />
*xp_level - Уровень пользователя<br />
*from_game - 1- да, 0 -нет<br />
*from_main_menu - 1 - да, 0 -нет<br />
<br />
9) При использовании амулетов - '''use_amulets''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - Цена в кристаллах<br />
*last_task_open - Последняя открытая таска<br />
*last_loc - Последняя сыгранная локация<br />
*xp_level - Уровень пользователя<br />
*from_game - 1- да, 0 -нет<br />
*from_main_menu - 1 - да, 0 -нет<br />
<br />
10) При покупке чарджеров - '''buy_chargers''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - Цена в кристаллах<br />
*coins_price - Цена в монетках<br />
*xp_level - Уровень пользователя<br />
<br />
11) При покупке доступов к локациям - '''buy_keys''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - Цена в кристаллах<br />
*coins_price - Цена в монетках<br />
*xp_level - Уровень пользователя<br />
<br />
12) При покупке ингридиентов для крафта - ''' buy_Ingridients''' (buy_parts):<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - Цена в кристаллах<br />
*coins_price - Цена в монетках<br />
*xp_level - Уровень пользователя<br />
<br />
13) При покупке ингридиентов для крафта - ''' buy_Ingridients''':<br />
*t_log_play - Время логарифмическое игровое<br />
*t_log_cal - Время логарифмическое календарное<br />
*id - Id предмета<br />
*diams_price - Цена в кристаллах<br />
*coins_price - Цена в монетках<br />
*xp_level - Уровень пользователя<br />
<br />
<br />
[[Category:Options]]<br />
[[Category:Реклама]]</div>Aslavhttps://wiki.appsalutecreator.com/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA&diff=6394Введение в фреймворк2014-09-19T13:55:18Z<p>Aslav: </p>
<hr />
<div>'''Absolutist Framework''' - представляет собой набор средств для разработки 2D игр и интерактивных приложений с использованием различных механик.<br />
<br />
<br />
== Состав в компонентов Фрейворка:==<br />
<br />
*'''[[SceneEditor]]''' - Основное приложение предназначенное для моделирование экранов (уровней)приложений или игр. <br />
*'''[[TextEditor]]''' - Необходимо для создания базы текстовых ресурсов с поддержкой нескольких языков в локализованном приложении. <br />
*'''[[RecurseEditor]]''' - Обеспечивает создание базы ресурсов необходимых для создания игр.<br />
*'''[[Viewer]]''' - Приложение необходимо для визуального отображения созданного проекта. Обеспечивает эмуляцию запускаемой игры на мобильном устройстве с различными параметрами.<br />
<br />
Дополнительно: [[Структура и состав файлов Framework-а]]<br />
<br />
[[Как стать iPhone-девелопером]]<br />
<br />
[[Category:Main]]</div>Aslav