https://wiki.appsalutecreator.com/api.php?action=feedcontributions&user=Vryabovol&feedformat=atomwiki.appsalutecreator.com - Вклад участника [ru]2024-03-29T06:56:05ZВклад участникаMediaWiki 1.31.15https://wiki.appsalutecreator.com/index.php?title=Options&diff=9814Options2019-06-18T07:47:14Z<p>Vryabovol: /* Добавляемые параметры */</p>
<hr />
<div>{{TOC right}}<br />
'''Options''' - [[Object|объект]], который используется для хранения и управления глобальными параметрами приложения. Также '''Options''' позволяет хранить и использовать параметры записанные в него другими объектами.<br />
<br />
== Общие параметры ==<br />
Смотреть описание [[Object|Object]].<br />
<br />
== Основные параметры ==<br />
[[Файл:opt2.jpg|right]]<br />
*'''язык''' ''(lang)'' - Язык, принудительно используемый приложением.<br />
*'''url обновлений''' ''(surl)'' - url, по которому ищем обновления опций.<br />
*'''sound''' ''(sound)'' - Громкость звука:<br />
:'''1''' - максимальный,<br />
:'''0''' - отключен.<br />
*'''music''' ''(music)''- Громкость музыки:<br />
:'''1''' - максимальная,<br />
:'''0''' - отключена.<br />
*'''voice''' ''(voice)'' - Голос рассказчика:<br />
:'''0''' - отключен,<br />
:'''не 0''' - включен.<br />
*'''ambient''' ''(ambient)'' - Громкость окружающих звуков (шелест листьев, шум дождя, пения птиц и т.д.):<br />
:'''0''' - отключен,<br />
:'''не 0''' - включен.<br />
*'''курсор''' ''(curs)'' - Графический ресурс курсора по умолчанию для всего проекта.<br />
*'''page''' ''(page)'' - Номер страницы для книги.<br />
*'''fullScreen''' ''(fullScreen)'' - Полноэкранный режим, используется в приложениях для PC: <br />
:'''1''' - на весь экран, <br />
:'''0''' - в окне.<br />
*'''immersive mode''' ''(immersive)'' -<br />
*'''activity''' ''(activity)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).<br />
*'''first loading bg''' ''(fl_bg)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).<br />
*'''first loading bar''' ''(fl_bar)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
*'''аниматор загрузки''' - аниматор загрузки динамических ресурсов для flash. Должен иметь состояния ''start'' и ''progress'', а также графический ресурс аниматора ('''он обязательно должен быть статическим!!!'''), который будет рисоваться в месте загружаемого динамического ресурса.<br />
*'''show progress''' ''(progr)'' - 1 - Отображать не только крутилку activity, но и прогрессбар (кастомный или беленький программный).<br />
*'''loading bg''' ''(res_bg)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).<br />
*'''loading bar''' ''(res_bar)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
*'''поле ввода''' ''(edit)'' - Объект типа edit, из которого будет браться имя при добавлении/редактировании профилей (состояние add у опций).<br />
*'''таблица''' ''(table)'' - Объект типа table, в который мы будем складывать все профиля (состояние update у опций).<br />
*'''разрешить рекламу''' ''(ad)'' - Разрешить или нет показ рекламы объектом [[Advertisement]]:<br />
:'''1''' - разрешить,<br />
:'''0''' - запретить<br />
<br />
== Добавляемые параметры ==<br />
[[Файл:opt.jpg|right]]<br />
Меню выбора ''Добавляемые параметры'' к объектам активируется по нажатию правой кнопки мыши.<br />
<br />
<br />
[[Файл:+.png]] '''ввод пустого имени''' - При попытке добавить пустое имя состоянием add будет изменено состояние заданного объекта.<br />
*'''объект''' - При попытке добавить пустое имя перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''ввод существующего имени''' - Когда будет введено существующее имя, изменить состояние заданного объекта.<br />
*'''объект''' - Когда будет введено существующее имя, перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Android - кнопка Back''' - При нажатии на кнопку перевести объект в новое состояние.<br />
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Android - кнопка Menu''' - При нажатии на кнопку перевести объект в новое состояние.<br />
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Windows - кнопка ESC''' - При нажатии на кнопку перевести объект в новое состояние.<br />
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Обновление с сервера - успех''' - При успешном обновлении опций с сервера перевести объект в новое состояние.<br />
*'''объект''' - Объект, состояние которого меняем.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Обновление с сервера - ошибка''' - При ошибочном обновлении опций с сервера перевести объект в новое состояние.<br />
*'''объект''' - Объект, состояние которого меняем.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Возврат из паузы''' - При возврате из паузы перевести объект в новое состояние.<br />
*'''объект''' - При возврате из паузы перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Переход в полноэкранный режим''' - При переходе в полноэкранный режим перевести объект в новое состояние.<br />
*'''объект''' - При переходе в полноэкранный режим перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Возврат из полноэкранного режима''' - При выходе из полноэкранного режима перевести объект в новое состояние.<br />
*'''объект''' - При выходе из полноэкранного режима перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля<br />
<br />
<br />
[[Файл:+.png]] '''Смена разрешения''' - При смене разрешения перевести объект в новое состояние.<br />
*'''объект''' - При смене разрешения перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля<br />
<br />
<pre><br />
При смене разрешения объект переведётся в новое состояние уже после записи новых resh, resw, а не как при возврате из <br />
(переходе в) полноэкранный режим.<br />
</pre><br />
<br />
<pre><br />
!!! Если в машине, которая вызывается по нажатию на Android-кнопку, есть обращение к опциям, то это обращение нужно писать в другом<br />
состоянии, через команду '''wait'''<br />
</pre><br />
<br />
<pre><br />
!!! Машину, которая вызывается по нажатию на Android-кнопку, нужно размещать на расшариной сцене, если в ней есть команда '''wait'''<br />
потому, что эта команда работает, если прописана на текущем экране, а не на фоновом (глобальном, не текущем).<br />
</pre><br />
<br />
[[Файл:+.png]] '''одинаковые имена''' - Когда будет введено существующее имя (в поле edit), перевести объект в состояние из следующего поля.<br />
*'''объект''' - Когда будет введено существующее имя, перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля<br />
<br />
[[Файл:+.png]] '''Необходим пак''' - Когда параметр в опциях совпадет тогда начнем фоновою загрузку нужного нам пака. (Пока только в бете)<br><br />
*'''поле''' - имя параметра в опциях.<br><br />
*'''значение''' - значения поля при котором начнем загрузку пака.<br><br />
*'''пак''' - Номер пака который хотим загрузить.<br><br />
<pre><br />
!!! Важно до окончания фоновой загрузки у нас не должны вызываться текстуры с того пака который хотим загрузить<br />
</pre><br />
<br />
== Дополнительные стандартные параметры ==<br />
<br />
* '''rlang''' - Текущий язык устройства, если не указан принудительно какой-либо язык (параметр ''lang'').'''При каждом запуске вьювера этот параметр будет перебиваться, в зависимости от системной локализации'''.<br />
* '''r_install''' - Дата и время установки в секундах.<br />
* '''r_hours''' - Время прошедшее с момента установки в часах.<br />
* '''r_playtime''' - Время нахождения в игре в минутах.<br />
* '''r_launches''' - Количество запусков игры.<br />
* '''r_days''' - Сколько дней подряд запускалась игра, если пропускается хотя бы день, то сбрасывается. <br />
* '''r_lastlaunch''' - Дата и время последнего запуска в секундах.<br />
* '''downloadErrCode''' - Код ошибки возвращаемый при неудачной загрузке:<br />
:'''1''' - неизвестная ошибка (возможно нет интернета),<br />
:'''2''' - отключён wi-fi,<br />
:'''3''' - недоступна карта памяти,<br />
:'''4''' - недостаточно места на карте памяти для загрузки,<br />
:'''5''' - ошибка при распаковке архива (чаще всего, не хватает места для распаковки архива).<br />
* '''reloadScrID''' - id экрана, на который мы перейдем после перегрузки лейаута. Перегрузка вызывается в команде init в машине состояний.<br />
* '''curScrID''' - id текущего экрана.<br />
* '''prevScrID''' - id предыдущего экрана.<br />
<br />
== Состояния ==<br />
Объект '''Options''' обладает рядом состояний:<br />
*'''init''' - Инициализация опций.<br />
*'''add''' - Добавить новый профиль из заданного поля ввода и сделать его текущим.<br />
*'''update''' - Заполнить заданную таблицу списком профилей.<br />
*'''change''' - Сменить профиль на выбранный на данный момент в таблице.<br />
*'''delete''' - Удалить выбранный профиль (выбранный в таблице профилей).<br />
*'''generate''' - Генерирует имя профиля по умолчанию при создании нового профиля.<br />
*'''save''' - Сохранение всех параметров в опции. Это состояние вызывается автоматически при переходе между экранами, выгрузки и закрытии приложения. При его вызове приложение физически открывает файл options.xml и записывает туда данные. Частое обращение к этому файлу снизит быстродействие нашего приложения.<br />
*'''edit''' - С текущего поля ввода считывает имя и устанавливает его для текущего профиля.<br />
*'''reset''' - Заменяет файл Options файлом Options_default, то есть сбрасываются все параметры и устанавливаются все параметры по умолчанию<br />
*'''clear_cur_player''' - Удаляет весь текущий прогресс по выбранному профилю, таким образом можно организовать прохождение игры заново для одного и того же профиля.<br />
*'''delete_node''' - Удаляет ''ноду'' в опциях, вычитав ее название из поля ''param''.<br />
*'''readCursor''' - Считать новый ресурс курсора из объекта опций. <br />
*'''updateCursor''' - Обновить курсор над объектом, который под мышкой.<br />
*'''invariantCursor''' - Курсор не изменяется при наведении над объектами с переопределенным курсором.<br />
*'''variableCursor''' - Курсор меняется при наведении над объектами с переопределенным курсором.<br />
*'''disableCursor''' - Курсор отключается полностью. <br />
*'''check_server''' - Запросить обновление опций с сервера. <br />
*'''send_options''' - Отправить опции на сервер. <br />
*'''sendExtCommand''' - Отправить внешнюю команду.<br />
*'''updateVolumes''' - Обновить уровень громкости музыки и звуков.<br />
*'''setGroupMember''' - устанавливаем группе ( id из поля '''groupID'''), единственного члена группы ( id из поля '''groupMemID'''), важно: к группе не должен быть подвязан ни один объект [[Group#Ручное управление группой|Детальнее]].<br />
*'''checkInternet''' - проверяет подключение к интернету, вызывает обработчики '''internetYES''' при наличии интернета и '''internetNO''' при его отсутствии.<br />
*'''calculateDate''' - вычисляет календарную дату времени (текущее игровое время + добавляет время из поля param (в секундах)), выводит информацию в параметры "dateDay", "dateMonth", "dateYear".<br />
<br />
== Испольозвание опций для хранения настроек ==<br />
<br />
Рассмотрим маленькие примеры, которые часто встречаются в окнах с настройками игры.<br />
<br />
[[Файл:Opt 4.jpg|right]]<br />
<br />
1. Отправить письмо <br><br />
<br />
Для объекта типа ''"button"'' следует прописать следующее:<br />
<br />
[[Файл:Opt 5.jpg]]<br />
<br />
2. Сменить язык <br><br />
Организовывается с помощью объектов типа ''"groupbox"'' и ''"checkbox"'':<br><br />
<br />
[[Файл:Opt 6.jpg]]<br />
<br />
Благодаря такой конструкции при выборе одного (в данном случае) языка снимается галочка со второго. В самом чекбоксе следует прописать следующее:<br><br />
<br />
[[Файл:Opt 7.jpg]]<br />
<br />
Изначально следует проверить язык устройства и установить соответствующий чекбокс:<br><br />
<br />
[[Файл:Opt 8.jpg]]<br />
<br />
== Использование Options ==<br />
<br />
Options могут быть использованы, чтобы записывать переменные и опции игрока, которые будут использоваться между сессиями.<br />
Чтобы записать переменную в Options, нужно сделать set с галочками obj, par и val.<br />
В obj мы заносим наш обьект Options, в par - название переменной, а в val - ее значение.<br />
<br />
[[Файл:Setopt.JPG]]<br />
<br />
Переменные хранятся в файле options.xml в папке, которая находится по пути C:\Users\agava\AppData\Roaming\Absolutist\(название игры).<br />
Можно записывать переменные через точки - они определяют вложенность переменной в xml-файле.<br />
Например, запись p0.tutorial.tutorial_all будет означать XML-атрибут tutorial_all, который лежит в XML-теге tutorial, который в свою очередь лежит в теге p0.<br />
В файле это выглядит так: <br />
<p0><br />
<tutorial tutorial_all="1"/><br />
</p0><br />
<br />
Эту переменную можно в любой момент изменить с помощью команды set, или же вытащить для использования с помощью команды var. Например, чтобы увеличить ее на некоторое значение.<br />
<br />
[[Файл:Setopt2.JPG]]<br />
<br />
Также в опции пишут свои данные некоторые обьекты, такие как economics, eitems, taskorganizer и другие в виде (название обьекта)(ID в проекте).<br />
Данные, которые они пишут, удобно использовать, например, в счетчиках, или в if-ах для проверки достижения значений.<br />
<br />
[[Файл:Setopt3.JPG]]<br />
<br />
Здесь можно понять, что счетчик берет свое значение из тега eitems22 (это автополе, создаваемое обьектом eitems c objID=22), из атрибута i10773 (автоматически созданный атрибут, который означает предмет экономики с txtID=10773).<br />
Такой счетчик будет обновлять свое значение каждый раз, когда мы будем передавать ему состояние read/read_anim.<br />
<br />
[[Category:Options|*]]<br />
<br />
== Внешние команды ==<br />
Используются для общения с Flash вьювером в web версиях приложений. Могут приходить из flash или отправляться во флеш. <br />
<br />
Реакция на внешнюю команду настраивается через объект options:<br />
<br />
[[Файл:Options cmd 1.jpeg]]<br />
<br />
<br />
Если мы хотим отправить команду, мы указываем её имя и передаём состояние sendExtCommand:<br />
<br />
[[Файл:Options cmd 2.jpg]]<br />
<br />
<br />
Список команд:<br />
<br />
* '''cmdShowMenu''' - отправляем, если хотим поднять табы ( по умолчанию табы выключены).<br />
* '''cmdLevel''' - отправляем, при повышении уровня игрока ( в extCommandParam - указываем текущий уровень).<br />
* '''cmdScore''' - отправляем, при при закрытиях окон "после монстра" и "после локации" ( в extCommandParam - указываем текущее значение общих очков - public.EconomicsTotalScore).<br />
* '''cmdFullscreenDisabled''' - команда приходит, если нужно спрятать кнопки перехода фулскрина ( в связи с багами в версии флеша и браузера), приходить один раз за сессию.<br />
* '''cmdFullscreenFailed''' - команда приходит каждый раз, при показе системного окна о том, что мы не можем перейти в полноэкранный режим ( в связи с багами в версии флеша и браузера).<br />
<br />
Общие для экономических проектов:<br />
<br />
* '''cmdShowGame''' - приходит, если нажали на таб "игра".<br />
* '''cmdShowInvite''' - приходит, если нажали на таб "Друзья". <br />
* '''cmdShowBank''' - приходит, если нажали на таб "Банк".<br />
* '''cmdShowGifts''' - приходит, если нажали на таб "Лидеры".</div>Vryabovolhttps://wiki.appsalutecreator.com/index.php?title=Options&diff=9813Options2019-06-18T07:44:07Z<p>Vryabovol: /* Добавляемые параметры */</p>
<hr />
<div>{{TOC right}}<br />
'''Options''' - [[Object|объект]], который используется для хранения и управления глобальными параметрами приложения. Также '''Options''' позволяет хранить и использовать параметры записанные в него другими объектами.<br />
<br />
== Общие параметры ==<br />
Смотреть описание [[Object|Object]].<br />
<br />
== Основные параметры ==<br />
[[Файл:opt2.jpg|right]]<br />
*'''язык''' ''(lang)'' - Язык, принудительно используемый приложением.<br />
*'''url обновлений''' ''(surl)'' - url, по которому ищем обновления опций.<br />
*'''sound''' ''(sound)'' - Громкость звука:<br />
:'''1''' - максимальный,<br />
:'''0''' - отключен.<br />
*'''music''' ''(music)''- Громкость музыки:<br />
:'''1''' - максимальная,<br />
:'''0''' - отключена.<br />
*'''voice''' ''(voice)'' - Голос рассказчика:<br />
:'''0''' - отключен,<br />
:'''не 0''' - включен.<br />
*'''ambient''' ''(ambient)'' - Громкость окружающих звуков (шелест листьев, шум дождя, пения птиц и т.д.):<br />
:'''0''' - отключен,<br />
:'''не 0''' - включен.<br />
*'''курсор''' ''(curs)'' - Графический ресурс курсора по умолчанию для всего проекта.<br />
*'''page''' ''(page)'' - Номер страницы для книги.<br />
*'''fullScreen''' ''(fullScreen)'' - Полноэкранный режим, используется в приложениях для PC: <br />
:'''1''' - на весь экран, <br />
:'''0''' - в окне.<br />
*'''immersive mode''' ''(immersive)'' -<br />
*'''activity''' ''(activity)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).<br />
*'''first loading bg''' ''(fl_bg)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).<br />
*'''first loading bar''' ''(fl_bar)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
*'''аниматор загрузки''' - аниматор загрузки динамических ресурсов для flash. Должен иметь состояния ''start'' и ''progress'', а также графический ресурс аниматора ('''он обязательно должен быть статическим!!!'''), который будет рисоваться в месте загружаемого динамического ресурса.<br />
*'''show progress''' ''(progr)'' - 1 - Отображать не только крутилку activity, но и прогрессбар (кастомный или беленький программный).<br />
*'''loading bg''' ''(res_bg)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находиться в состоянии редактирования).<br />
*'''loading bar''' ''(res_bar)'' - Графический ресурс для индикатора загрузки. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
*'''поле ввода''' ''(edit)'' - Объект типа edit, из которого будет браться имя при добавлении/редактировании профилей (состояние add у опций).<br />
*'''таблица''' ''(table)'' - Объект типа table, в который мы будем складывать все профиля (состояние update у опций).<br />
*'''разрешить рекламу''' ''(ad)'' - Разрешить или нет показ рекламы объектом [[Advertisement]]:<br />
:'''1''' - разрешить,<br />
:'''0''' - запретить<br />
<br />
== Добавляемые параметры ==<br />
[[Файл:opt.jpg|right]]<br />
Меню выбора ''Добавляемые параметры'' к объектам активируется по нажатию правой кнопки мыши.<br />
<br />
<br />
[[Файл:+.png]] '''ввод пустого имени''' - При попытке добавить пустое имя состоянием add будет изменено состояние заданного объекта.<br />
*'''объект''' - При попытке добавить пустое имя перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''ввод существующего имени''' - Когда будет введено существующее имя, изменить состояние заданного объекта.<br />
*'''объект''' - Когда будет введено существующее имя, перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Android - кнопка Back''' - При нажатии на кнопку перевести объект в новое состояние.<br />
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Android - кнопка Menu''' - При нажатии на кнопку перевести объект в новое состояние.<br />
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Windows - кнопка ESC''' - При нажатии на кнопку перевести объект в новое состояние.<br />
*'''объект''' - При клике на кнопку перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Обновление с сервера - успех''' - При успешном обновлении опций с сервера перевести объект в новое состояние.<br />
*'''объект''' - Объект, состояние которого меняем.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Обновление с сервера - ошибка''' - При ошибочном обновлении опций с сервера перевести объект в новое состояние.<br />
*'''объект''' - Объект, состояние которого меняем.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Возврат из паузы''' - При возврате из паузы перевести объект в новое состояние.<br />
*'''объект''' - При возврате из паузы перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Переход в полноэкранный режим''' - При переходе в полноэкранный режим перевести объект в новое состояние.<br />
*'''объект''' - При переходе в полноэкранный режим перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]] '''Возврат из полноэкранного режима''' - При выходе из полноэкранного режима перевести объект в новое состояние.<br />
*'''объект''' - При выходе из полноэкранного режима перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля<br />
<br />
<br />
[[Файл:+.png]] '''Смена разрешения''' - При смене разрешения перевести объект в новое состояние.<br />
*'''объект''' - При смене разрешения перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля<br />
<br />
<pre><br />
При смене разрешения объект переведётся в новое состояние уже после записи новых resh, resw, а не как при возврате из <br />
(переходе в) полноэкранный режим.<br />
</pre><br />
<br />
<pre><br />
!!! Если в машине, которая вызывается по нажатию на Android-кнопку, есть обращение к опциям, то это обращение нужно писать в другом<br />
состоянии, через команду '''wait'''<br />
</pre><br />
<br />
<pre><br />
!!! Машину, которая вызывается по нажатию на Android-кнопку, нужно размещать на расшариной сцене, если в ней есть команда '''wait'''<br />
потому, что эта команда работает, если прописана на текущем экране, а не на фоновом (глобальном, не текущем).<br />
</pre><br />
<br />
[[Файл:+.png]] '''одинаковые имена''' - Когда будет введено существующее имя (в поле edit), перевести объект в состояние из следующего поля.<br />
*'''объект''' - Когда будет введено существующее имя, перевести объект в состояние из следующего поля.<br />
*'''состояние''' - Новое состояние для объекта из предыдущего поля<br />
<br />
[[Файл:+.png]] '''Необходим пак''' - Когда параметр в опциях совпадет тогда начнем фоновою загрузку нужного нам пака. (Пока только в бете)<br><br />
*'''поле''' - имя параметра в опциях.<br><br />
*'''значение''' - значения поля при котором начнем загрузку пака.<br><br />
*'''пак''' - Номер пака который хотим загрузить.<br><br />
<br />
== Дополнительные стандартные параметры ==<br />
<br />
* '''rlang''' - Текущий язык устройства, если не указан принудительно какой-либо язык (параметр ''lang'').'''При каждом запуске вьювера этот параметр будет перебиваться, в зависимости от системной локализации'''.<br />
* '''r_install''' - Дата и время установки в секундах.<br />
* '''r_hours''' - Время прошедшее с момента установки в часах.<br />
* '''r_playtime''' - Время нахождения в игре в минутах.<br />
* '''r_launches''' - Количество запусков игры.<br />
* '''r_days''' - Сколько дней подряд запускалась игра, если пропускается хотя бы день, то сбрасывается. <br />
* '''r_lastlaunch''' - Дата и время последнего запуска в секундах.<br />
* '''downloadErrCode''' - Код ошибки возвращаемый при неудачной загрузке:<br />
:'''1''' - неизвестная ошибка (возможно нет интернета),<br />
:'''2''' - отключён wi-fi,<br />
:'''3''' - недоступна карта памяти,<br />
:'''4''' - недостаточно места на карте памяти для загрузки,<br />
:'''5''' - ошибка при распаковке архива (чаще всего, не хватает места для распаковки архива).<br />
* '''reloadScrID''' - id экрана, на который мы перейдем после перегрузки лейаута. Перегрузка вызывается в команде init в машине состояний.<br />
* '''curScrID''' - id текущего экрана.<br />
* '''prevScrID''' - id предыдущего экрана.<br />
<br />
== Состояния ==<br />
Объект '''Options''' обладает рядом состояний:<br />
*'''init''' - Инициализация опций.<br />
*'''add''' - Добавить новый профиль из заданного поля ввода и сделать его текущим.<br />
*'''update''' - Заполнить заданную таблицу списком профилей.<br />
*'''change''' - Сменить профиль на выбранный на данный момент в таблице.<br />
*'''delete''' - Удалить выбранный профиль (выбранный в таблице профилей).<br />
*'''generate''' - Генерирует имя профиля по умолчанию при создании нового профиля.<br />
*'''save''' - Сохранение всех параметров в опции. Это состояние вызывается автоматически при переходе между экранами, выгрузки и закрытии приложения. При его вызове приложение физически открывает файл options.xml и записывает туда данные. Частое обращение к этому файлу снизит быстродействие нашего приложения.<br />
*'''edit''' - С текущего поля ввода считывает имя и устанавливает его для текущего профиля.<br />
*'''reset''' - Заменяет файл Options файлом Options_default, то есть сбрасываются все параметры и устанавливаются все параметры по умолчанию<br />
*'''clear_cur_player''' - Удаляет весь текущий прогресс по выбранному профилю, таким образом можно организовать прохождение игры заново для одного и того же профиля.<br />
*'''delete_node''' - Удаляет ''ноду'' в опциях, вычитав ее название из поля ''param''.<br />
*'''readCursor''' - Считать новый ресурс курсора из объекта опций. <br />
*'''updateCursor''' - Обновить курсор над объектом, который под мышкой.<br />
*'''invariantCursor''' - Курсор не изменяется при наведении над объектами с переопределенным курсором.<br />
*'''variableCursor''' - Курсор меняется при наведении над объектами с переопределенным курсором.<br />
*'''disableCursor''' - Курсор отключается полностью. <br />
*'''check_server''' - Запросить обновление опций с сервера. <br />
*'''send_options''' - Отправить опции на сервер. <br />
*'''sendExtCommand''' - Отправить внешнюю команду.<br />
*'''updateVolumes''' - Обновить уровень громкости музыки и звуков.<br />
*'''setGroupMember''' - устанавливаем группе ( id из поля '''groupID'''), единственного члена группы ( id из поля '''groupMemID'''), важно: к группе не должен быть подвязан ни один объект [[Group#Ручное управление группой|Детальнее]].<br />
*'''checkInternet''' - проверяет подключение к интернету, вызывает обработчики '''internetYES''' при наличии интернета и '''internetNO''' при его отсутствии.<br />
*'''calculateDate''' - вычисляет календарную дату времени (текущее игровое время + добавляет время из поля param (в секундах)), выводит информацию в параметры "dateDay", "dateMonth", "dateYear".<br />
<br />
== Испольозвание опций для хранения настроек ==<br />
<br />
Рассмотрим маленькие примеры, которые часто встречаются в окнах с настройками игры.<br />
<br />
[[Файл:Opt 4.jpg|right]]<br />
<br />
1. Отправить письмо <br><br />
<br />
Для объекта типа ''"button"'' следует прописать следующее:<br />
<br />
[[Файл:Opt 5.jpg]]<br />
<br />
2. Сменить язык <br><br />
Организовывается с помощью объектов типа ''"groupbox"'' и ''"checkbox"'':<br><br />
<br />
[[Файл:Opt 6.jpg]]<br />
<br />
Благодаря такой конструкции при выборе одного (в данном случае) языка снимается галочка со второго. В самом чекбоксе следует прописать следующее:<br><br />
<br />
[[Файл:Opt 7.jpg]]<br />
<br />
Изначально следует проверить язык устройства и установить соответствующий чекбокс:<br><br />
<br />
[[Файл:Opt 8.jpg]]<br />
<br />
== Использование Options ==<br />
<br />
Options могут быть использованы, чтобы записывать переменные и опции игрока, которые будут использоваться между сессиями.<br />
Чтобы записать переменную в Options, нужно сделать set с галочками obj, par и val.<br />
В obj мы заносим наш обьект Options, в par - название переменной, а в val - ее значение.<br />
<br />
[[Файл:Setopt.JPG]]<br />
<br />
Переменные хранятся в файле options.xml в папке, которая находится по пути C:\Users\agava\AppData\Roaming\Absolutist\(название игры).<br />
Можно записывать переменные через точки - они определяют вложенность переменной в xml-файле.<br />
Например, запись p0.tutorial.tutorial_all будет означать XML-атрибут tutorial_all, который лежит в XML-теге tutorial, который в свою очередь лежит в теге p0.<br />
В файле это выглядит так: <br />
<p0><br />
<tutorial tutorial_all="1"/><br />
</p0><br />
<br />
Эту переменную можно в любой момент изменить с помощью команды set, или же вытащить для использования с помощью команды var. Например, чтобы увеличить ее на некоторое значение.<br />
<br />
[[Файл:Setopt2.JPG]]<br />
<br />
Также в опции пишут свои данные некоторые обьекты, такие как economics, eitems, taskorganizer и другие в виде (название обьекта)(ID в проекте).<br />
Данные, которые они пишут, удобно использовать, например, в счетчиках, или в if-ах для проверки достижения значений.<br />
<br />
[[Файл:Setopt3.JPG]]<br />
<br />
Здесь можно понять, что счетчик берет свое значение из тега eitems22 (это автополе, создаваемое обьектом eitems c objID=22), из атрибута i10773 (автоматически созданный атрибут, который означает предмет экономики с txtID=10773).<br />
Такой счетчик будет обновлять свое значение каждый раз, когда мы будем передавать ему состояние read/read_anim.<br />
<br />
[[Category:Options|*]]<br />
<br />
== Внешние команды ==<br />
Используются для общения с Flash вьювером в web версиях приложений. Могут приходить из flash или отправляться во флеш. <br />
<br />
Реакция на внешнюю команду настраивается через объект options:<br />
<br />
[[Файл:Options cmd 1.jpeg]]<br />
<br />
<br />
Если мы хотим отправить команду, мы указываем её имя и передаём состояние sendExtCommand:<br />
<br />
[[Файл:Options cmd 2.jpg]]<br />
<br />
<br />
Список команд:<br />
<br />
* '''cmdShowMenu''' - отправляем, если хотим поднять табы ( по умолчанию табы выключены).<br />
* '''cmdLevel''' - отправляем, при повышении уровня игрока ( в extCommandParam - указываем текущий уровень).<br />
* '''cmdScore''' - отправляем, при при закрытиях окон "после монстра" и "после локации" ( в extCommandParam - указываем текущее значение общих очков - public.EconomicsTotalScore).<br />
* '''cmdFullscreenDisabled''' - команда приходит, если нужно спрятать кнопки перехода фулскрина ( в связи с багами в версии флеша и браузера), приходить один раз за сессию.<br />
* '''cmdFullscreenFailed''' - команда приходит каждый раз, при показе системного окна о том, что мы не можем перейти в полноэкранный режим ( в связи с багами в версии флеша и браузера).<br />
<br />
Общие для экономических проектов:<br />
<br />
* '''cmdShowGame''' - приходит, если нажали на таб "игра".<br />
* '''cmdShowInvite''' - приходит, если нажали на таб "Друзья". <br />
* '''cmdShowBank''' - приходит, если нажали на таб "Банк".<br />
* '''cmdShowGifts''' - приходит, если нажали на таб "Лидеры".</div>Vryabovolhttps://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=9812Интерфейс ResourceEditor2019-06-18T07:29:44Z<p>Vryabovol: /* Настройка параметров контейнера */</p>
<hr />
<div>{{TOC right}}<br />
== [[Файл:Ico_base.png]]Редактор ресурсов ==<br />
<br />
===Общее описание===<br />
[[Файл:Ico_base.png|40px]]'''[[Редактор ресурсов]]''' - приложение, которое управляет базой графических, анимационных, видео и звуковых ресурсов проекта. <br><br />
Ресурсы проекта могут быть внесены и модифицированы только через Редактор ресурсов.<br><br />
Как и в редакторе сцен, вверху окна редактора ресурсов расположено меню и кнопки быстрого доступа: <br />
*[[Файл:Pasted_image_0.png]] создать новый проект(новую базу ресурсов),<br />
*[[Файл:Pasted_image_0_(1).png]] открыть уже существующую базу ресурсов,<br />
*[[Файл:Pasted_image_0_(2).png]] показать последние файлы экспорта,<br />
*[[Файл:Pasted_image_0_(4).png]] сохранение изменений(нужно делать после каждого добавления новой картинки, изменений точки пивота, анимации и тп),<br />
*[[Файл:Pasted_image_0_(5).png]] добавить картинку (png, jpeg),<br />
*[[Файл:Pasted_image_0_(6).png]] добавить директорию с изображениями, <br />
*[[Файл:Pasted_image_0_(7).png]] анимацию, <br />
*[[Файл:Pasted_image_0_(8).png]] мелодию (mp3, ogg), <br />
*[[Файл:Pasted_image_0_(10).png]] видео (mp4), <br />
*[[Файл:Pasted_image_0_(11).png]] добавить ttf font файлы, <br />
*[[Файл:Pasted_image_0_(12).png]] добавление моделей и объектов 3D, <br />
*[[Файл:Pasted_image_0_(13).png]] добавление новых магических частиц. <br />
<br />
<br />
В левой панели находятся папки, внутри которых можно найти различные графические ресурсы: <br />
*[[Файл:Pasted_image_0_(14).png]] создание нового контейнера,<br />
*[[Файл:Pasted_image_0_(15).png]] новой папки,<br />
*[[Файл:Pasted_image_0_(16).png]] удалить выбранный ресурс,<br />
*[[Файл:Pasted_image_0_(17).png]] поиск по ресурсам.<br />
<br />
<br />
<br />
<br />
<br />
Ниже, в левой панели находятся папки, внутри которых можно найти различные графические ресурсы:<br />
<br />
[[Файл:Pasted_image_0_(3).png]]<br />
<br />
*Если в дереве папок активна данная папка, то на правой панели мы видим список графических ресурсов в виде иконок. <br />
*Если же в дереве кликнуть на имя конкретной картинки, то в правой панели она будет представлена в натуральную величину. <br />
*При клике на ресурс в левой нижней части окна редактора ресурсов появится панель с настройками ресурса в зависимости от его типа<br />
<br />
===Меню Редактора ресурсов===<br />
Некоторые инструменты также вызываются горячими клавишами (комбинация клавиш приведена в скобках )<br />
<br />
'''Меню Project'''<br />
<br />
*New Project (Ctrl+N) – создать новый проект с новой базой ресурсов. Возможно в качестве базы ресурсов выбрать уже существующий каталог ресурсов.<br />
*Recent Project – открыть недавний проект с уже сформированной базой ресурсов. <br />
*Open Project (Ctrl+O) - открыть базу ресурсов ранее созданного проекта<br />
*Open exported project – открыть экспортированный проект<br />
*Open Last Export – открыть последний экспорт<br />
*Close Project – закрыть текущий проект<br />
*Quit (Ctrl+O) — выход из Редактора Ресурсов<br />
<br />
'''Меню Edit'''<br />
<br />
*Add Root Base - создать еще одну базу ресурсов в текущем проекте<br />
*Add Images — добавить картинки в проект<br />
*Add Images with params — добавить изображения с параметрами в проект<br />
*Add Animation — добавить анимацию в проект<br />
*Add Sounds — добавить звуки в проект<br />
*Add Videos — добавить видео в проект<br />
*Add magic particles — добавить магические частицы в проект<br />
*Delete Resource — удалить выбранный ресурс(можно использовать Del на клавиатуре)<br />
*Options — вызов окна настройки отображения изображений в редакторе<br />
<br />
'''Меню View'''<br />
<br />
*Always on top - всегда отображать Редактор Ресурсов поверх всех окон<br />
*Show Last Export Textures – показать последние экспортированные ресурсы<br />
*Show Shape Editor (F4) – редактирование форм ресурса<br />
*Show Mask Viewer(F3) — создание маски для этого ресурса<br />
*Image Viewer - отобразить панель Image Viewer для просмотра ресурсов<br />
<br />
'''Меню Resources Updates'''<br />
<br />
*Check resources use count - Проверить и обновить на ресурсах счетчик использования. На каждом ресурсе есть такой счетчик, он указывает, сколько раз в проекте использован ресурс.<br />
*Delete unused resources — удалить неиспользуемые ресурсы<br />
*Check and update img masks — Проверить и обновить маски изображений<br />
*Update img maska — Обновить маску изображения<br />
*update Fids for 3D Mdels — Обновить <br />
*Remove not added resources – убрать не добавленные ресурсы<br />
*Обрезать images компактнее в стартовом проекте <br />
*Check if resources exist — проверить существует ли ресурс<br />
*Make all imgs dynamic — сделать все изображения динамическими<br />
*Make all imgs not dynamik — сделать все изображения не динамическими<br />
<br />
'''Меню Help'''<br />
<br />
*Online help – возможность получить ответ на свой вопрос в сети Интернет<br />
*About – описание программы Редактор Ресурсов, основные принципы ее работы<br />
<br />
'''Меню Utilities'''<br />
<br />
*Update img – обновить изображения<br />
<br />
Обрезать images в старом проекте — вызов функции удаления бордера изображения (у всех ресурсов) на указанную величину в параметре Transparent Border Size вкладки Cropping Settings из Options меню Project.<br />
Кнопки Add images, Add Animations, Add Sounds , AddVideos, Delete Resource, Create Folder, Delete Resource, Cut вызываются по клику правой кнопки мыши в дереве базы ресурсов. <br />
Функция «Заменить изображение» позволяет заменить выбранный ресурс на другой, изменения автоматически применяются к редактору ресурсов и к текущему проекту, к котором подключена эта база. <br />
<br />
<br />
====Выбор платформы для настроек ресурсов и контейнеров====<br />
[[Файл:Res_pros.png|300px|right]]<br><br />
Выпадающий список платформ для настройки ресурсов позволяет внести изменения для определенной платформы сборки. Эти настройки по умолчанию заданы одинаковыми (default) для всех платформ. Чтоб изменить параметр, например, для IOS, нужно выбрать его в выпадающем списке. Измененный параметр станет синего цвета. При экспорте проекта настройки для ресурсов подтягиваются автоматически.<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 />
[[Файл:Image5.png]]<br />
<br />
''Directory View Mode'' — Если мы выберем режим Full Source Image , то мы будем видеть изображение и пустую область вокруг него, равную размерам сцены, а если Cropped Images — то только изображение<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 />
<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 />
В поле Packing Behavior можно сделать изображение динамическим Dynamic( при включении этой функции появляется еще одна - ”Do not animate” - не применять анимацию к выбранному изображению). Еще можно убрать возможность переворачивать изображение с помощью функции Do not rotate. Эту функцию можно использовать, в основном, для фреймовх анимаций. Для того, чтобы при экспорте в атлас кадры анимации попадали в исходном положении.<br />
<br />
[[Файл:Image13.png]]<br />
<br />
В поле Shapes and Masks можно создать Alpha Hitmask для выбранного изображения. С помощью функций Alpha hitmask Viewer можно увидеть сделанную маску для выбранного изображения, а с функцией Shape Editor поправить ее форму.<br />
<br />
<br />
=====Точка пивота=====<br />
Иногда возникает необходимость сместить точку вращения объекта вокруг своей оси (точку пивота).<br><br />
Для этого в редакторе ресурсов выбираем редактируемый объект и в панели настроек ресурса в разделе Pivot нажимаем кнопку Edit.<br><br />
<br />
[[Файл:ResourcesEditor_pivot1.jpg]]<br />
<br />
При включенном '''Pivot > Edit''' вы можете менять положение точки пивота различными способами:<br />
* вручную задать координаты точки в поля X и Y;<br />
* выбрать одну из 9и позиций по краям\углам\в центре объекта<br />
* если вы хотите произвольно задать координаты точки пивота, то просто «таскайте» редактируемый ресурс по области визуализации ресурсов.<br />
<br />
Для сохранения изменений нужно нажать '''Save'''.<br />
<br />
[[Файл:ResourcesEditor_pivot2.jpg]]<br />
<br />
Если вы выбрали другой объект но забыли сохранить изменения - вам будет показано окно с подтверждением сохранения изменений.<br />
<br />
[[Файл:ResourcesEditor_pivot3.jpg]]<br />
<br />
Если мы хотим произвольно задать координаты точки пивота, то ставим галочку Edit Pivot и после этого «таскаем» редактируемый ресурс по области визуализации ресурсов. Точка пивота находится в центре экрана (красный крестик)<br />
<br />
=====Динамические ресурсы=====<br />
Динамические ресурсы могут быть настроены разными способами. От способа настройки будет зависеть упаковка (или не упаковка) в текстуры.<br />
<br />
[[Файл:Res_dyn_1.png]] [[Файл:Res_dyn_2.png]] [[Файл:Res_dyn_3.png]]<br />
<br />
* Если выбрать ''Dynamic'' и ''Pack into texture'' в настройках контейнера, то все ресурсы упакуются в одну (или несколько) динамических текстур.<br />
<br />
* Если выбрать только ''Dynamic'', то ресурсы будут отдельными динамическими картинками.<br />
<br />
* Можно выбрать ''Dynamic'' для одного ресурса, тогда он так же будет отдельной динамической картинкой.<br />
<br />
* Параметр ''Dynamic'' для звуков и музыки используется только при экспорте на Flash.<br />
<br />
=====Заменить изображение, существующие в базе ресурсов=====<br />
Предположим, нам необходимо подменить изображение загруженное в базу ресурсов, но при этом не удаляя его из базы.<br><br />
Для это кликаем правой кнопкой мыши по изображению и выбираем в меню "заменить изображение"<br />
<br />
=====Настройки текстур=====<br />
Параметр Packing behavior [[Файл: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 />
== Shape Editor ==<br />
<br />
'''ВНИМАНИЕ!'''<br><br />
В изображениях формата JPG/JPEG всё оставленная на изображении альфа (прозрачные пиксели) при сохранении станут черными! Использовать с умом и осторожностью! Я вас предупредил :)<br />
<br />
С недавних пор (на момент редактирования статьи) shape editor претерпел немалых изменений и стал практически полноценным редактором изображений.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_1.jpg]]<br />
<br />
=== Редактирование пивота ===<br />
<br />
Данный инструмент позволяет изменить положение точки пивота, причем как вручную перетянув его на нужное место, так и задав его координаты в соответствующих полях.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_2_pivot.jpg]]<br />
<br />
* Раздел '''Without borders''' показывает положение пивота без учета прозрачных бордеров.<br />
* Раздел '''"With borders"''' наоборот, показывает реальное положение бордера (такое же, как будет показано в редакторе ресурсов)<br />
<br />
=== Редактирование шейпов ===<br />
<br />
Для работы с объектами физического мира иногда требуется создать дополнительный контур вокруг объекта.<br />
Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом.<br />
Количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами. <br />
<br />
Центр круга, которым задается шейп, совпадает с точкой пивота. Радиус круга устанавливается путем отдаления/приближения кликов от точки пивота.<br />
<br />
Для удаления нарисованного шейпа нажимаем Delete<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_3_poly.jpg]]<br />
<br />
=== Редактирование размера \ масштаба ===<br />
<br />
Изменять размер изображения можно следующими способами:<br />
* тягать на сцене за края и углы рамки вокруг изображения;<br />
* задать точный размер width \ height (ширина \ высота);<br />
* задать точный масштаб scale X \ scale Y.<br />
* Флаг "sync scale" позволит вам пропорционально масштабировать изображение.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_4_scale.jpg]]<br />
<br />
=== Редактирование угла поворота ===<br />
<br />
Изменять угол поворота можно двумя способами:<br />
* задать точный угол в поле angle;<br />
* тягать за изображение на сцене.<br />
<br />
'''ОСТОРОЖНО!''' частое изменение угла может привести к сильной потере качества у изображения!<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_5_rotate.jpg]]<br />
<br />
=== Обрезка изображения ===<br />
<br />
Очень полезный инструмент, если вам нужно немного подрезать кусочек картинки, но напрягать художников нет времени.<br />
<br />
Рамка для обрезки тягаема по сцене, её можно повернуть. <br />
<br />
Если установлен флаг "Save pivot position" - точка пивота останется максимально неподвижной относительно объекта при его обрезке. Если флаг снят - после обрезки точка пивота будет установлена в центр.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_6_crop1.jpg]] [[Файл:ResourcesEditor_ShapeEditor_6_crop2.jpg]]<br />
<br />
=== Ластик ===<br />
<br />
Инструмент ластика позволяет аккуратно и мягко подтереть лишние края, пиксели (которые периодически остаются от художников) или просто ненужные части изображения.<br />
<br />
Сам ластик имеет следующие настройки:<br />
* Brush size: размер кисти;<br />
* Hardness: жесткость кисти;<br />
* Opacity: общая прозрачность кисти.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_7_erase.jpg]]<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 />
<br />
[[Файл:Screen pack.png]]<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 />
[[Файл:Image20.png]]<br />
<br />
В левой части нижнего окна анимации находится список загруженных изображений, в правой - последовательность изображений (кадров), которые можно менять местами, добавлять/удалять, загружать в прямом/обратном порядке. Таким образом, можно "уменьшить вес" анимации за счет использования меньшего количества исходных изображений.<br><br />
[[Файл:00_43.PNG]][[Файл:00_44.PNG]] [[Файл:00_45.PNG]]<br />
<br />
'''!!! - Желательно использовать графические файлы одинакового разрешения.'''<br />
<br />
====Звуковые файлы==== <br />
Звуковые файлы нам нужны для озвучки персонажей и не только. Используются файлы в форматах:<br><br />
*mp3 - используется как ресурс для длинного звука mus. Звуки такого формата могут воспроизводиться только последовательно.<br />
*ogg - используется как ресурс для короткого звука snd (snd-звуки могут воспроизводиться параллельно) и для подключения голоса voice (если voice подключен к тексту, то воспроизводится последовательно). Имеет меньший объем, чем формат mp3.<br />
Воспроизведение звуковых файлов устанавливают через различные объекты. Например, через состояния объекта Machine<br />
[[Файл:Image21.png]]<br><br />
<br />
Параметр звука ambient - Громкость окружающих звуков (шелест листьев, шум дождя, пения птиц и т.д.)<br />
<br />
== Добавление шрифтов в проект ==<br />
Функция ttf дает возможность загрузить новые шрифты в проект, для этого открываем ResourceEditor, нажимаем на кнопку [[Файл:Pasted_image_0_(11).png]] , открываем доступный шрифт и сохраняем его в папку font. Если происходит ошибка, что не найден графический ресурс, когда мы меняем какому-нибудь объекту формат на Текст, то нужно просто добавить в поле шрифт любой доступный из списка.<br />
<br />
<br />
<br />
== Project Options ==<br />
[[Файл:Pasted_image_0_(19).png]]<br />
Эта функция дает возможность сделать только само изображение видимым, весь бордер после будет с альфой 0(будет прозрачным). По умолчанию этот параметр всегда должен быть равен тройке!<br />
<br />
[[Файл:Pasted_image_0_(20).png]]<br />
С помощью этой опции можно установить точку пивота при добавлении картинки. Можно центрировать точку Piwot относительно оригинальной картинки - для этого в меню Horisontal и Vertical выбираем Source Center.<br />
Можно центрировать точку Piwot относительно обрезанной картинки, для этого в меню Horisontal и Vertical выбираем Result Center. <br />
По умолчанию всегда стоит Result Center. <br />
<br />
<br />
<br />
== Функция Options в меню Edit ==<br />
<br />
В поле Edit можно открыть меню Options, в котором есть полезные функции для редактирования изображений. Параметр Directory View Mode позволяет выбрать возможность видеть картинку полноценного размера(Full Source Images) или только бордеры центрального изображения(Cropped Images) alpha границ за которым будет равна 0. <br />
<br />
[[Файл:Pasted_image_0_(21).png]]<br />
<br />
Если вы хотите изменить вид(есть цветовое меню) alpha background сзади своего изображения - это можно совершить с помощью функции Alpha BG color: White, Green, Red, Blue, Black.<br />
<br />
<br />
== Resources Updates - Export Atlasses ==<br />
<br />
Чтобы сделать экспорт файлов и увидеть все возможные текстуры, нужно нажать в меню Resources Updates на Export Atlasses. Ожидаете пока пройдет экспорт. <br />
После этого, при следующем запуске Viewer из SceneEditor, программа будет использовать экспортированные текстуры до тех пор, пока не будут внесены изменения в редакторе ресурсов. <br />
Сами текстуры находятся рядом с папкой проекта, а не в ней, <br />
и называются по типу - ИмяПроекта_ИмяПапки_exported_atlasses<br />
<br />
<br />
[[Category:AppSalute]]</div>Vryabovolhttps://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=9811Интерфейс ResourceEditor2019-06-18T07:29:04Z<p>Vryabovol: /* Создание контейнеров */</p>
<hr />
<div>{{TOC right}}<br />
== [[Файл:Ico_base.png]]Редактор ресурсов ==<br />
<br />
===Общее описание===<br />
[[Файл:Ico_base.png|40px]]'''[[Редактор ресурсов]]''' - приложение, которое управляет базой графических, анимационных, видео и звуковых ресурсов проекта. <br><br />
Ресурсы проекта могут быть внесены и модифицированы только через Редактор ресурсов.<br><br />
Как и в редакторе сцен, вверху окна редактора ресурсов расположено меню и кнопки быстрого доступа: <br />
*[[Файл:Pasted_image_0.png]] создать новый проект(новую базу ресурсов),<br />
*[[Файл:Pasted_image_0_(1).png]] открыть уже существующую базу ресурсов,<br />
*[[Файл:Pasted_image_0_(2).png]] показать последние файлы экспорта,<br />
*[[Файл:Pasted_image_0_(4).png]] сохранение изменений(нужно делать после каждого добавления новой картинки, изменений точки пивота, анимации и тп),<br />
*[[Файл:Pasted_image_0_(5).png]] добавить картинку (png, jpeg),<br />
*[[Файл:Pasted_image_0_(6).png]] добавить директорию с изображениями, <br />
*[[Файл:Pasted_image_0_(7).png]] анимацию, <br />
*[[Файл:Pasted_image_0_(8).png]] мелодию (mp3, ogg), <br />
*[[Файл:Pasted_image_0_(10).png]] видео (mp4), <br />
*[[Файл:Pasted_image_0_(11).png]] добавить ttf font файлы, <br />
*[[Файл:Pasted_image_0_(12).png]] добавление моделей и объектов 3D, <br />
*[[Файл:Pasted_image_0_(13).png]] добавление новых магических частиц. <br />
<br />
<br />
В левой панели находятся папки, внутри которых можно найти различные графические ресурсы: <br />
*[[Файл:Pasted_image_0_(14).png]] создание нового контейнера,<br />
*[[Файл:Pasted_image_0_(15).png]] новой папки,<br />
*[[Файл:Pasted_image_0_(16).png]] удалить выбранный ресурс,<br />
*[[Файл:Pasted_image_0_(17).png]] поиск по ресурсам.<br />
<br />
<br />
<br />
<br />
<br />
Ниже, в левой панели находятся папки, внутри которых можно найти различные графические ресурсы:<br />
<br />
[[Файл:Pasted_image_0_(3).png]]<br />
<br />
*Если в дереве папок активна данная папка, то на правой панели мы видим список графических ресурсов в виде иконок. <br />
*Если же в дереве кликнуть на имя конкретной картинки, то в правой панели она будет представлена в натуральную величину. <br />
*При клике на ресурс в левой нижней части окна редактора ресурсов появится панель с настройками ресурса в зависимости от его типа<br />
<br />
===Меню Редактора ресурсов===<br />
Некоторые инструменты также вызываются горячими клавишами (комбинация клавиш приведена в скобках )<br />
<br />
'''Меню Project'''<br />
<br />
*New Project (Ctrl+N) – создать новый проект с новой базой ресурсов. Возможно в качестве базы ресурсов выбрать уже существующий каталог ресурсов.<br />
*Recent Project – открыть недавний проект с уже сформированной базой ресурсов. <br />
*Open Project (Ctrl+O) - открыть базу ресурсов ранее созданного проекта<br />
*Open exported project – открыть экспортированный проект<br />
*Open Last Export – открыть последний экспорт<br />
*Close Project – закрыть текущий проект<br />
*Quit (Ctrl+O) — выход из Редактора Ресурсов<br />
<br />
'''Меню Edit'''<br />
<br />
*Add Root Base - создать еще одну базу ресурсов в текущем проекте<br />
*Add Images — добавить картинки в проект<br />
*Add Images with params — добавить изображения с параметрами в проект<br />
*Add Animation — добавить анимацию в проект<br />
*Add Sounds — добавить звуки в проект<br />
*Add Videos — добавить видео в проект<br />
*Add magic particles — добавить магические частицы в проект<br />
*Delete Resource — удалить выбранный ресурс(можно использовать Del на клавиатуре)<br />
*Options — вызов окна настройки отображения изображений в редакторе<br />
<br />
'''Меню View'''<br />
<br />
*Always on top - всегда отображать Редактор Ресурсов поверх всех окон<br />
*Show Last Export Textures – показать последние экспортированные ресурсы<br />
*Show Shape Editor (F4) – редактирование форм ресурса<br />
*Show Mask Viewer(F3) — создание маски для этого ресурса<br />
*Image Viewer - отобразить панель Image Viewer для просмотра ресурсов<br />
<br />
'''Меню Resources Updates'''<br />
<br />
*Check resources use count - Проверить и обновить на ресурсах счетчик использования. На каждом ресурсе есть такой счетчик, он указывает, сколько раз в проекте использован ресурс.<br />
*Delete unused resources — удалить неиспользуемые ресурсы<br />
*Check and update img masks — Проверить и обновить маски изображений<br />
*Update img maska — Обновить маску изображения<br />
*update Fids for 3D Mdels — Обновить <br />
*Remove not added resources – убрать не добавленные ресурсы<br />
*Обрезать images компактнее в стартовом проекте <br />
*Check if resources exist — проверить существует ли ресурс<br />
*Make all imgs dynamic — сделать все изображения динамическими<br />
*Make all imgs not dynamik — сделать все изображения не динамическими<br />
<br />
'''Меню Help'''<br />
<br />
*Online help – возможность получить ответ на свой вопрос в сети Интернет<br />
*About – описание программы Редактор Ресурсов, основные принципы ее работы<br />
<br />
'''Меню Utilities'''<br />
<br />
*Update img – обновить изображения<br />
<br />
Обрезать images в старом проекте — вызов функции удаления бордера изображения (у всех ресурсов) на указанную величину в параметре Transparent Border Size вкладки Cropping Settings из Options меню Project.<br />
Кнопки Add images, Add Animations, Add Sounds , AddVideos, Delete Resource, Create Folder, Delete Resource, Cut вызываются по клику правой кнопки мыши в дереве базы ресурсов. <br />
Функция «Заменить изображение» позволяет заменить выбранный ресурс на другой, изменения автоматически применяются к редактору ресурсов и к текущему проекту, к котором подключена эта база. <br />
<br />
<br />
====Выбор платформы для настроек ресурсов и контейнеров====<br />
[[Файл:Res_pros.png|300px|right]]<br><br />
Выпадающий список платформ для настройки ресурсов позволяет внести изменения для определенной платформы сборки. Эти настройки по умолчанию заданы одинаковыми (default) для всех платформ. Чтоб изменить параметр, например, для IOS, нужно выбрать его в выпадающем списке. Измененный параметр станет синего цвета. При экспорте проекта настройки для ресурсов подтягиваются автоматически.<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 />
[[Файл:Image5.png]]<br />
<br />
''Directory View Mode'' — Если мы выберем режим Full Source Image , то мы будем видеть изображение и пустую область вокруг него, равную размерам сцены, а если Cropped Images — то только изображение<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 />
<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 />
В поле Packing Behavior можно сделать изображение динамическим Dynamic( при включении этой функции появляется еще одна - ”Do not animate” - не применять анимацию к выбранному изображению). Еще можно убрать возможность переворачивать изображение с помощью функции Do not rotate. Эту функцию можно использовать, в основном, для фреймовх анимаций. Для того, чтобы при экспорте в атлас кадры анимации попадали в исходном положении.<br />
<br />
[[Файл:Image13.png]]<br />
<br />
В поле Shapes and Masks можно создать Alpha Hitmask для выбранного изображения. С помощью функций Alpha hitmask Viewer можно увидеть сделанную маску для выбранного изображения, а с функцией Shape Editor поправить ее форму.<br />
<br />
<br />
=====Точка пивота=====<br />
Иногда возникает необходимость сместить точку вращения объекта вокруг своей оси (точку пивота).<br><br />
Для этого в редакторе ресурсов выбираем редактируемый объект и в панели настроек ресурса в разделе Pivot нажимаем кнопку Edit.<br><br />
<br />
[[Файл:ResourcesEditor_pivot1.jpg]]<br />
<br />
При включенном '''Pivot > Edit''' вы можете менять положение точки пивота различными способами:<br />
* вручную задать координаты точки в поля X и Y;<br />
* выбрать одну из 9и позиций по краям\углам\в центре объекта<br />
* если вы хотите произвольно задать координаты точки пивота, то просто «таскайте» редактируемый ресурс по области визуализации ресурсов.<br />
<br />
Для сохранения изменений нужно нажать '''Save'''.<br />
<br />
[[Файл:ResourcesEditor_pivot2.jpg]]<br />
<br />
Если вы выбрали другой объект но забыли сохранить изменения - вам будет показано окно с подтверждением сохранения изменений.<br />
<br />
[[Файл:ResourcesEditor_pivot3.jpg]]<br />
<br />
Если мы хотим произвольно задать координаты точки пивота, то ставим галочку Edit Pivot и после этого «таскаем» редактируемый ресурс по области визуализации ресурсов. Точка пивота находится в центре экрана (красный крестик)<br />
<br />
=====Динамические ресурсы=====<br />
Динамические ресурсы могут быть настроены разными способами. От способа настройки будет зависеть упаковка (или не упаковка) в текстуры.<br />
<br />
[[Файл:Res_dyn_1.png]] [[Файл:Res_dyn_2.png]] [[Файл:Res_dyn_3.png]]<br />
<br />
* Если выбрать ''Dynamic'' и ''Pack into texture'' в настройках контейнера, то все ресурсы упакуются в одну (или несколько) динамических текстур.<br />
<br />
* Если выбрать только ''Dynamic'', то ресурсы будут отдельными динамическими картинками.<br />
<br />
* Можно выбрать ''Dynamic'' для одного ресурса, тогда он так же будет отдельной динамической картинкой.<br />
<br />
* Параметр ''Dynamic'' для звуков и музыки используется только при экспорте на Flash.<br />
<br />
=====Заменить изображение, существующие в базе ресурсов=====<br />
Предположим, нам необходимо подменить изображение загруженное в базу ресурсов, но при этом не удаляя его из базы.<br><br />
Для это кликаем правой кнопкой мыши по изображению и выбираем в меню "заменить изображение"<br />
<br />
=====Настройки текстур=====<br />
Параметр Packing behavior [[Файл: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 />
== Shape Editor ==<br />
<br />
'''ВНИМАНИЕ!'''<br><br />
В изображениях формата JPG/JPEG всё оставленная на изображении альфа (прозрачные пиксели) при сохранении станут черными! Использовать с умом и осторожностью! Я вас предупредил :)<br />
<br />
С недавних пор (на момент редактирования статьи) shape editor претерпел немалых изменений и стал практически полноценным редактором изображений.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_1.jpg]]<br />
<br />
=== Редактирование пивота ===<br />
<br />
Данный инструмент позволяет изменить положение точки пивота, причем как вручную перетянув его на нужное место, так и задав его координаты в соответствующих полях.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_2_pivot.jpg]]<br />
<br />
* Раздел '''Without borders''' показывает положение пивота без учета прозрачных бордеров.<br />
* Раздел '''"With borders"''' наоборот, показывает реальное положение бордера (такое же, как будет показано в редакторе ресурсов)<br />
<br />
=== Редактирование шейпов ===<br />
<br />
Для работы с объектами физического мира иногда требуется создать дополнительный контур вокруг объекта.<br />
Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом.<br />
Количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами. <br />
<br />
Центр круга, которым задается шейп, совпадает с точкой пивота. Радиус круга устанавливается путем отдаления/приближения кликов от точки пивота.<br />
<br />
Для удаления нарисованного шейпа нажимаем Delete<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_3_poly.jpg]]<br />
<br />
=== Редактирование размера \ масштаба ===<br />
<br />
Изменять размер изображения можно следующими способами:<br />
* тягать на сцене за края и углы рамки вокруг изображения;<br />
* задать точный размер width \ height (ширина \ высота);<br />
* задать точный масштаб scale X \ scale Y.<br />
* Флаг "sync scale" позволит вам пропорционально масштабировать изображение.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_4_scale.jpg]]<br />
<br />
=== Редактирование угла поворота ===<br />
<br />
Изменять угол поворота можно двумя способами:<br />
* задать точный угол в поле angle;<br />
* тягать за изображение на сцене.<br />
<br />
'''ОСТОРОЖНО!''' частое изменение угла может привести к сильной потере качества у изображения!<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_5_rotate.jpg]]<br />
<br />
=== Обрезка изображения ===<br />
<br />
Очень полезный инструмент, если вам нужно немного подрезать кусочек картинки, но напрягать художников нет времени.<br />
<br />
Рамка для обрезки тягаема по сцене, её можно повернуть. <br />
<br />
Если установлен флаг "Save pivot position" - точка пивота останется максимально неподвижной относительно объекта при его обрезке. Если флаг снят - после обрезки точка пивота будет установлена в центр.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_6_crop1.jpg]] [[Файл:ResourcesEditor_ShapeEditor_6_crop2.jpg]]<br />
<br />
=== Ластик ===<br />
<br />
Инструмент ластика позволяет аккуратно и мягко подтереть лишние края, пиксели (которые периодически остаются от художников) или просто ненужные части изображения.<br />
<br />
Сам ластик имеет следующие настройки:<br />
* Brush size: размер кисти;<br />
* Hardness: жесткость кисти;<br />
* Opacity: общая прозрачность кисти.<br />
<br />
[[Файл:ResourcesEditor_ShapeEditor_7_erase.jpg]]<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 />
<br />
[[Файл:Screen pack.png]]<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 />
[[Файл:Image20.png]]<br />
<br />
В левой части нижнего окна анимации находится список загруженных изображений, в правой - последовательность изображений (кадров), которые можно менять местами, добавлять/удалять, загружать в прямом/обратном порядке. Таким образом, можно "уменьшить вес" анимации за счет использования меньшего количества исходных изображений.<br><br />
[[Файл:00_43.PNG]][[Файл:00_44.PNG]] [[Файл:00_45.PNG]]<br />
<br />
'''!!! - Желательно использовать графические файлы одинакового разрешения.'''<br />
<br />
====Звуковые файлы==== <br />
Звуковые файлы нам нужны для озвучки персонажей и не только. Используются файлы в форматах:<br><br />
*mp3 - используется как ресурс для длинного звука mus. Звуки такого формата могут воспроизводиться только последовательно.<br />
*ogg - используется как ресурс для короткого звука snd (snd-звуки могут воспроизводиться параллельно) и для подключения голоса voice (если voice подключен к тексту, то воспроизводится последовательно). Имеет меньший объем, чем формат mp3.<br />
Воспроизведение звуковых файлов устанавливают через различные объекты. Например, через состояния объекта Machine<br />
[[Файл:Image21.png]]<br><br />
<br />
Параметр звука ambient - Громкость окружающих звуков (шелест листьев, шум дождя, пения птиц и т.д.)<br />
<br />
== Добавление шрифтов в проект ==<br />
Функция ttf дает возможность загрузить новые шрифты в проект, для этого открываем ResourceEditor, нажимаем на кнопку [[Файл:Pasted_image_0_(11).png]] , открываем доступный шрифт и сохраняем его в папку font. Если происходит ошибка, что не найден графический ресурс, когда мы меняем какому-нибудь объекту формат на Текст, то нужно просто добавить в поле шрифт любой доступный из списка.<br />
<br />
<br />
<br />
== Project Options ==<br />
[[Файл:Pasted_image_0_(19).png]]<br />
Эта функция дает возможность сделать только само изображение видимым, весь бордер после будет с альфой 0(будет прозрачным). По умолчанию этот параметр всегда должен быть равен тройке!<br />
<br />
[[Файл:Pasted_image_0_(20).png]]<br />
С помощью этой опции можно установить точку пивота при добавлении картинки. Можно центрировать точку Piwot относительно оригинальной картинки - для этого в меню Horisontal и Vertical выбираем Source Center.<br />
Можно центрировать точку Piwot относительно обрезанной картинки, для этого в меню Horisontal и Vertical выбираем Result Center. <br />
По умолчанию всегда стоит Result Center. <br />
<br />
<br />
<br />
== Функция Options в меню Edit ==<br />
<br />
В поле Edit можно открыть меню Options, в котором есть полезные функции для редактирования изображений. Параметр Directory View Mode позволяет выбрать возможность видеть картинку полноценного размера(Full Source Images) или только бордеры центрального изображения(Cropped Images) alpha границ за которым будет равна 0. <br />
<br />
[[Файл:Pasted_image_0_(21).png]]<br />
<br />
Если вы хотите изменить вид(есть цветовое меню) alpha background сзади своего изображения - это можно совершить с помощью функции Alpha BG color: White, Green, Red, Blue, Black.<br />
<br />
<br />
== Resources Updates - Export Atlasses ==<br />
<br />
Чтобы сделать экспорт файлов и увидеть все возможные текстуры, нужно нажать в меню Resources Updates на Export Atlasses. Ожидаете пока пройдет экспорт. <br />
После этого, при следующем запуске Viewer из SceneEditor, программа будет использовать экспортированные текстуры до тех пор, пока не будут внесены изменения в редакторе ресурсов. <br />
Сами текстуры находятся рядом с папкой проекта, а не в ней, <br />
и называются по типу - ИмяПроекта_ИмяПапки_exported_atlasses<br />
<br />
<br />
[[Category:AppSalute]]</div>Vryabovolhttps://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Screen_pack.png&diff=9810Файл:Screen pack.png2019-06-18T07:27:39Z<p>Vryabovol: </p>
<hr />
<div></div>Vryabovolhttps://wiki.appsalutecreator.com/index.php?title=HiddenObject&diff=9805HiddenObject2019-03-25T12:40:43Z<p>Vryabovol: /* Настройка теней (Пока только в бете) */</p>
<hr />
<div>HiddenObject - поисковый [[Object|объект]] на сцене в хидден-игре.<br />
Добавив из редактора ресурсов на сцену картинку поискового предмета, мы изменяем его тип на hiddenObject.<br><br />
Можно применить групповое изменение типа, выделив с помощью "Shift" или "Ctrl" группу картинок.<br />
Все хидден-объекты должны быть подключены к объекту с типом [[HiddenList]].<br />
<br />
== Общие параметры ==<br />
<br />
(см. описание [[Object|Object]])<br />
*'''имя''' ('' nm '') - Имя объекта HiddenObject в дереве проекта. Может быт произвольным.<br />
*'''id-объекта''' - Уникальный номер объекта HiddenObject, который можно увидеть в строке "имя" либо при наведении курсора на неё.<br />
*'''синхронизация''' ('' sync '') - Применяется для синхронизации между лейаутами. Если указан параметр "нет", то объект будет активен только на текущем лейауте. По умолчанию указан параметр "да". <br />
*'''сохранение параметров''' ('' sv '') - Настройка этого параметра актуальна, если приложение в дальнейшем будет сворачиваться в системную панель («трей»). Выбирается значение этого параметра из выпадающего списка. Возможны следующие варианты: "нет", "только объект", "объект с подобъектами", "только подобъекты". При выходе из трэя будут восстановлены ранее измененные/установленные (при переходе с одного экрана на другой)параметры объектов или подобъектов в зависимости от выбранного варианта для этого параметра. По умолчанию указан параметр "нет". Следует помнить, что если выбирается для объекта некоторой сцены значения этого параметра отличное от "нет", то должно и предусматриваться соответствующее значение этого параметра и для этой сцены, и для экрана, содержащего эту сцену.<br />
*'''z''' ('' z '') - Параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим.<br />
*'''память''' ('' memo ''):<br />
:'''1''' - при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана);<br />
:'''0''' - обновит свои параметры, при повторном открытии экрана.<br />
<br />
== Основные параметры ==<br />
<br />
[[Файл:hid_ob1.jpg|right]]<br />
<br />
*'''картинка''' ('' res '') - Графический ресурс хидден-объекта. Перетаскивается мышкой из редактора ресурсов (поле должно быть в состоянии редактирования). <br />
*'''текстID ''' ('' txtID '') - Название хидден-объекта, которое будет отображаться в таблице. Перетаскивается мышкой из текстового редактора (поле должно быть в состоянии редактирования).<br />
*'''связанный предмет экономики ''' ('' economicsID '') - Связанный предмет экономики, участвует в тасках и т.п. Указываем txtID предмета из экономики. Он будет виден на сцене, как хидден-объект.<br />
*'''использовать текстID для связи ''' ('' economicsMain '') - использовать текстID для связи<br />
*'''текст''' ('' txt '') - При отсутствии ТекстID в таблице будет отображаться этот текст.<br />
*'''list''' ('' lst '') - Ссылка на [[HiddenList]], к которому будет подключен объект.<br />
*''' actor''' ('' actor '') - Анимация (машина состояний), которая запустится после нахождения объекта. В этой машине состояний должно быть обязательно состояние show, в котором будет описана, например, анимация полёта актёра.<br />
*''' flayer''' ('' fl '') - Объект типа flyers, который запустится при клике на спрятанный объект. Можно указывать машину с состоянием "beg".<br />
*'''тип''' ('' kind '') - Номер типа объекта. Используется при выставленном ограничении в [[HiddenList]] (поле [одного типа]).<br />
*'''обязательный''' ('' forced ''):<br />
:'''1''' - объект всегда будет в списке на поиск;<br />
:'''0''' - обычный объект ( может попасть в список, а может и не попасть). <br />
*'''выделение цветом''' ('' colored ''):<br />
:'''1''' - на объект будут распространяться выделения цветом (цвет указывается в HiddenList);<br />
:'''0''' - не будет распространяться.<br />
*''' подсвечиваемый''' ('' can_highlight '') - Может ли объект подсвечиваться хинтом<br />
:'''1''' - да;<br />
:'''0''' - нет.<br />
*'''предпочитаемый''' ('' preferred ''):<br />
:'''да''' - объект является предпочитаемым (используется при исключении объектов с одинаковыми textID);<br />
:'''нет''' - не является.<br />
*'''сессия''' ('' ses '') - Сессия, в которой должен появиться объект ( по умолчанию = "-1").<br />
*'''набор''' ('' kit '') - Набор, к которому принадлежит объект. Принимает значения 1, 2, 3 и т.д. Указывается в HiddenList.<br />
*'''приоритет''' ('' prior '') - Приоритет объект, определит его положение в списке. У хидден-листа должна быть включена сортировка по приоритету<br />
*'''collection''' ('' col '') - Объект типа [[Collection]], к которому относится данный объект. Если объект не коллекционный - просто не задавать.<br />
*'''сохранять клики''' ('' saveclk '') - Сохранять клики по предметам в опции (по умолчанию они хранятся в рамках сессии)<br />
*'''сложность''' ('' diffic '') - Параметр, определяющий сложность объекта, 0 - самый простой, чем больше параметр, тем сложнее. Если есть 4 раскладки объекта мяч (общий txtID), каждому объекту мячу задается сложность. Перед началом игры у хидден листа есть рандомный набор текстовых айди объектов. Если в хидден листе включена сложность, хидден лист выберет наиболее простые объекты для выбранных txtID. <br />
*'''прокликиваемость''' ('' passClk ''):<br />
:'''0''' - объект сам обрабатывает клик и не пропускает его дальше; <br />
:'''1''' - объект прозрачен для клика мышкой (пропускает объектам под ним);<br />
:'''2''' - объект сам обрабатывает клик, но и пропускает его дальше".<br />
*'''economicsMain''' - если да, то в поле '''economicsID''' будет взят id из поля '''txtID''' (коллекционный предмет и HO - один объект);<br />
<br />
Выделив более 2-х хидден объектов у нас будут параметры группового изменения.<br />
Таким образом мы легко можем выставить прокликиваемость или один [[HiddenList]] всем нашим объектам сразу!<br />
<br />
== Настройка морф-объектов ==<br />
[[Файл:морф.jpg|right|320px]]<br />
Обязательно в редакторе ресурсов нужно обвести 4-мя шейпами изображение (см. скрин)<br />
*'''включить''' - Сделать объект морфом;<br />
*'''картинка''' - Графический ресурс изображения спрятанного объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования);<br />
*'''время трансформации''' - Время трансформации морфа;<br />
*'''время смены состояния''' - Время смены состояния морфа (значение меньше transform_time == переключение отключено);<br />
*'''время запуска смены''' - Время запуска цикла смены состояний морфа (значение меньше transform_time == переключение отключено);<br />
*'''начальное состояние''' - Начальное состояние морфа;<br />
*'''остановка морфинга''' - Останавливать морфинг после нахождения хинтом;<br />
<br />
== Состояния объекта ==<br />
<br />
У хидден объекта есть состояния, которыми можно управлять с помощью машин. Также можно отслеживать, в каком сейчас состоянии находится хидден-объект. Доступны следующие состояния которые можем использовать:<br />
<br />
*'''wait''' - находиться на сцене и ожидает события;<br />
*'''raise''' - после клика объект поднимается вверх и увеличивается;<br />
*'''fly''' - объект летит к цели, вращаясь и уменьшаясь;<br />
*'''find''' - можно передавать с помощью разных объектов, сообщает хиддену что он найден (имитировать клик на объекте).<br><br />
<br />
== Настройка теней (Пока только в бете) ==<br />
<br />
1) Выбираем объект/сцену, в котором есть хиддены со съехавшими тенями.<br><br />
2) Закрываем базу ресурсов.<br><br />
3) Дальше выбрать пункт в меню - Tools(инструменты) -> special -> recalculate hidden objects pivots.<br><br />
<br />
== Примечания ==<br />
<br />
* Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.<br><br />
<br />
* Заполнение таблицы "обязательными" объектами происходит построчно слева направо случайным образом. Если такой "обязательный" объект для хидден-листа один, то он всегда будет находиться в левом верхнем углу.<br><br />
<br />
* Для минимализации действий и затрачиваемого времени желательно применять к хидден-объектам групповое изменение параметров (клавишами crl или shift). Т.е. добавили из базы ресурсов хидден-картинки => Все их выделили => И один раз задали им тип "HiddenObject", хидден-лист, флаер нахождения, добавляемые параметры и т.д.<br><br />
<br />
* Зачастую необходимо знать есть ли хидден-объект на сцене. Проверить это можно по параметру "vis".<br />
<br />
* Пусть у Ваших хидден-объектов один общий актер. В момент нахождение хидден-объекта он передает актёру состояние '''show'''. И пусть в этом состоянии вы считываете координаты гостя (т.е. хидден-объекта), чтобы с того места, к примеру, запустить флаер, машину или что-то еще. '''Так вот этого делать нельзя!''' В результате при следующем посещении экрана Вы увидите, что у хидден-объектов изменились координаты. Дело в некоторой архитектурной проблеме. Выход есть. Перед запуском актёра нужно ставить ему параметры '''hox''' и '''hoy''', обозначающие координаты объекта его запустившего. Т.е. актёр вместо вычитки координат гостя (хидден-объекта)будет сам у себя читать вышеупомянутые параметры. Например, <br><br />
<br />
[[Файл:Hid_ob_act.jpg]]<br />
<br />
* Также в хидден-сценах можно осуществлять поиск логических пар, например мышь-мышеловка, лук-стрела и т. д. Важно чтобы два предмета, составляющие пару, находились на сцене вдвоем (пара считается найденной если игрок тапнул на один предмет пары и след. тапом тапнул второй предмет этой же пары). Также при использовании хинта подсвечиваются два предмета, составляющие одну пару. <br />
Настройки: <br />
1) в парных объектах hiddenObject поле Тип (kind) должно быть одинаково;<br />
2) в объекте hiddenList в группе Внешний вид включить настройку “поиск пар”; <br />
3) актер помимо стандартных состояний fly и fly_end должен иметь состояние highlight - подсветка первого предмета в паре. <br />
4) для хинтования пары в объекте Hint в хинте (искра) необходимо задать второй хвост и второй указатель (причем отличный от первого).<br />
<br />
== Добавляемые параметры ==<br />
<br />
[[Файл:hid_ob_2.jpg|right]]<br />
<br />
[[Файл:+.png]]'''Дополнительная коллекция''' ('' add_col '') - используется в случае, если объекту нужно относиться более чем к одной:<br />
:'''id''' ('' col '') - Объект типа коллекция, к которому относится данный объект.<br />
<br />
<br />
[[Файл:+.png]]'''связанный объект''' ('' addLnkObj '') - Связанный объект на противоположном фоне при поиске различий:<br />
:'''связанный объект''' ('' lnkObj '') - Связанный объект на противоположном фоне при поиске различий.<br />
<br />
<br />
[[Файл:+.png]]'''изменить параметр объекта''' ('' chg '') - При нахождении объекта изменить параметр объекта:<br />
:'''объект''' ('' obj '') - При нахождении объекта этот объект меняет свой параметр;<br />
:'''свойство''' ('' par '') - Параметр, который мы изменяем;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''изменить состояние объекта''' ('' nst '') - При нахождении объекта перевести объект в новое состояние:<br />
:'''объект''' ('' obj '') - При нахождении объекта перевести объект в состояние из следующего поля;<br />
:'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''клик на найденный хидден:''' ('' chgComp '') изменить параметр объекта:<br />
:'''объект''' ('' obj '') - Объект, параметр которого нужно изменить;<br />
:'''параметр''' ('' par '') - Параметр, которое нужно изменить;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''клик на найденный хидден:''' ('' nstComp '') изменить состояние объекта:<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
<br />
[[Файл:+.png]]'''объект вернулся на место через putback:''' ('' chgPb '') изменить параметр объекта:<br />
:'''объект''' ('' obj '') - Объект, параметр которого нужно изменить;<br />
:'''параметр''' ('' par '') - Параметр, которое нужно изменить;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''объект вернулся на место через putback:''' ('' nstPb '') изменить состояние объекта:<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
<br />
[[Файл:+.png]]'''объект появился как новый объект:''' изменить состояние объекта ('' ''):<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
== Пример ==<br />
<br />
[[Category:Game mechanic]]</div>Vryabovolhttps://wiki.appsalutecreator.com/index.php?title=HiddenObject&diff=9804HiddenObject2019-03-25T12:40:09Z<p>Vryabovol: /* Настройка теней (Пока только в бете) */</p>
<hr />
<div>HiddenObject - поисковый [[Object|объект]] на сцене в хидден-игре.<br />
Добавив из редактора ресурсов на сцену картинку поискового предмета, мы изменяем его тип на hiddenObject.<br><br />
Можно применить групповое изменение типа, выделив с помощью "Shift" или "Ctrl" группу картинок.<br />
Все хидден-объекты должны быть подключены к объекту с типом [[HiddenList]].<br />
<br />
== Общие параметры ==<br />
<br />
(см. описание [[Object|Object]])<br />
*'''имя''' ('' nm '') - Имя объекта HiddenObject в дереве проекта. Может быт произвольным.<br />
*'''id-объекта''' - Уникальный номер объекта HiddenObject, который можно увидеть в строке "имя" либо при наведении курсора на неё.<br />
*'''синхронизация''' ('' sync '') - Применяется для синхронизации между лейаутами. Если указан параметр "нет", то объект будет активен только на текущем лейауте. По умолчанию указан параметр "да". <br />
*'''сохранение параметров''' ('' sv '') - Настройка этого параметра актуальна, если приложение в дальнейшем будет сворачиваться в системную панель («трей»). Выбирается значение этого параметра из выпадающего списка. Возможны следующие варианты: "нет", "только объект", "объект с подобъектами", "только подобъекты". При выходе из трэя будут восстановлены ранее измененные/установленные (при переходе с одного экрана на другой)параметры объектов или подобъектов в зависимости от выбранного варианта для этого параметра. По умолчанию указан параметр "нет". Следует помнить, что если выбирается для объекта некоторой сцены значения этого параметра отличное от "нет", то должно и предусматриваться соответствующее значение этого параметра и для этой сцены, и для экрана, содержащего эту сцену.<br />
*'''z''' ('' z '') - Параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим.<br />
*'''память''' ('' memo ''):<br />
:'''1''' - при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана);<br />
:'''0''' - обновит свои параметры, при повторном открытии экрана.<br />
<br />
== Основные параметры ==<br />
<br />
[[Файл:hid_ob1.jpg|right]]<br />
<br />
*'''картинка''' ('' res '') - Графический ресурс хидден-объекта. Перетаскивается мышкой из редактора ресурсов (поле должно быть в состоянии редактирования). <br />
*'''текстID ''' ('' txtID '') - Название хидден-объекта, которое будет отображаться в таблице. Перетаскивается мышкой из текстового редактора (поле должно быть в состоянии редактирования).<br />
*'''связанный предмет экономики ''' ('' economicsID '') - Связанный предмет экономики, участвует в тасках и т.п. Указываем txtID предмета из экономики. Он будет виден на сцене, как хидден-объект.<br />
*'''использовать текстID для связи ''' ('' economicsMain '') - использовать текстID для связи<br />
*'''текст''' ('' txt '') - При отсутствии ТекстID в таблице будет отображаться этот текст.<br />
*'''list''' ('' lst '') - Ссылка на [[HiddenList]], к которому будет подключен объект.<br />
*''' actor''' ('' actor '') - Анимация (машина состояний), которая запустится после нахождения объекта. В этой машине состояний должно быть обязательно состояние show, в котором будет описана, например, анимация полёта актёра.<br />
*''' flayer''' ('' fl '') - Объект типа flyers, который запустится при клике на спрятанный объект. Можно указывать машину с состоянием "beg".<br />
*'''тип''' ('' kind '') - Номер типа объекта. Используется при выставленном ограничении в [[HiddenList]] (поле [одного типа]).<br />
*'''обязательный''' ('' forced ''):<br />
:'''1''' - объект всегда будет в списке на поиск;<br />
:'''0''' - обычный объект ( может попасть в список, а может и не попасть). <br />
*'''выделение цветом''' ('' colored ''):<br />
:'''1''' - на объект будут распространяться выделения цветом (цвет указывается в HiddenList);<br />
:'''0''' - не будет распространяться.<br />
*''' подсвечиваемый''' ('' can_highlight '') - Может ли объект подсвечиваться хинтом<br />
:'''1''' - да;<br />
:'''0''' - нет.<br />
*'''предпочитаемый''' ('' preferred ''):<br />
:'''да''' - объект является предпочитаемым (используется при исключении объектов с одинаковыми textID);<br />
:'''нет''' - не является.<br />
*'''сессия''' ('' ses '') - Сессия, в которой должен появиться объект ( по умолчанию = "-1").<br />
*'''набор''' ('' kit '') - Набор, к которому принадлежит объект. Принимает значения 1, 2, 3 и т.д. Указывается в HiddenList.<br />
*'''приоритет''' ('' prior '') - Приоритет объект, определит его положение в списке. У хидден-листа должна быть включена сортировка по приоритету<br />
*'''collection''' ('' col '') - Объект типа [[Collection]], к которому относится данный объект. Если объект не коллекционный - просто не задавать.<br />
*'''сохранять клики''' ('' saveclk '') - Сохранять клики по предметам в опции (по умолчанию они хранятся в рамках сессии)<br />
*'''сложность''' ('' diffic '') - Параметр, определяющий сложность объекта, 0 - самый простой, чем больше параметр, тем сложнее. Если есть 4 раскладки объекта мяч (общий txtID), каждому объекту мячу задается сложность. Перед началом игры у хидден листа есть рандомный набор текстовых айди объектов. Если в хидден листе включена сложность, хидден лист выберет наиболее простые объекты для выбранных txtID. <br />
*'''прокликиваемость''' ('' passClk ''):<br />
:'''0''' - объект сам обрабатывает клик и не пропускает его дальше; <br />
:'''1''' - объект прозрачен для клика мышкой (пропускает объектам под ним);<br />
:'''2''' - объект сам обрабатывает клик, но и пропускает его дальше".<br />
*'''economicsMain''' - если да, то в поле '''economicsID''' будет взят id из поля '''txtID''' (коллекционный предмет и HO - один объект);<br />
<br />
Выделив более 2-х хидден объектов у нас будут параметры группового изменения.<br />
Таким образом мы легко можем выставить прокликиваемость или один [[HiddenList]] всем нашим объектам сразу!<br />
<br />
== Настройка морф-объектов ==<br />
[[Файл:морф.jpg|right|320px]]<br />
Обязательно в редакторе ресурсов нужно обвести 4-мя шейпами изображение (см. скрин)<br />
*'''включить''' - Сделать объект морфом;<br />
*'''картинка''' - Графический ресурс изображения спрятанного объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования);<br />
*'''время трансформации''' - Время трансформации морфа;<br />
*'''время смены состояния''' - Время смены состояния морфа (значение меньше transform_time == переключение отключено);<br />
*'''время запуска смены''' - Время запуска цикла смены состояний морфа (значение меньше transform_time == переключение отключено);<br />
*'''начальное состояние''' - Начальное состояние морфа;<br />
*'''остановка морфинга''' - Останавливать морфинг после нахождения хинтом;<br />
<br />
== Состояния объекта ==<br />
<br />
У хидден объекта есть состояния, которыми можно управлять с помощью машин. Также можно отслеживать, в каком сейчас состоянии находится хидден-объект. Доступны следующие состояния которые можем использовать:<br />
<br />
*'''wait''' - находиться на сцене и ожидает события;<br />
*'''raise''' - после клика объект поднимается вверх и увеличивается;<br />
*'''fly''' - объект летит к цели, вращаясь и уменьшаясь;<br />
*'''find''' - можно передавать с помощью разных объектов, сообщает хиддену что он найден (имитировать клик на объекте).<br><br />
<br />
== Настройка теней (Пока только в бете) ==<br />
<br />
1) Выбираем объект/сцену, в котором есть хиддены со съехавшими тенями.<br />
2) Закрываем базу ресурсов.<br />
3) Дальше выбрать пункт в меню - Tools(инструменты) -> special -> recalculate hidden objects pivots.<br />
<br />
== Примечания ==<br />
<br />
* Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.<br><br />
<br />
* Заполнение таблицы "обязательными" объектами происходит построчно слева направо случайным образом. Если такой "обязательный" объект для хидден-листа один, то он всегда будет находиться в левом верхнем углу.<br><br />
<br />
* Для минимализации действий и затрачиваемого времени желательно применять к хидден-объектам групповое изменение параметров (клавишами crl или shift). Т.е. добавили из базы ресурсов хидден-картинки => Все их выделили => И один раз задали им тип "HiddenObject", хидден-лист, флаер нахождения, добавляемые параметры и т.д.<br><br />
<br />
* Зачастую необходимо знать есть ли хидден-объект на сцене. Проверить это можно по параметру "vis".<br />
<br />
* Пусть у Ваших хидден-объектов один общий актер. В момент нахождение хидден-объекта он передает актёру состояние '''show'''. И пусть в этом состоянии вы считываете координаты гостя (т.е. хидден-объекта), чтобы с того места, к примеру, запустить флаер, машину или что-то еще. '''Так вот этого делать нельзя!''' В результате при следующем посещении экрана Вы увидите, что у хидден-объектов изменились координаты. Дело в некоторой архитектурной проблеме. Выход есть. Перед запуском актёра нужно ставить ему параметры '''hox''' и '''hoy''', обозначающие координаты объекта его запустившего. Т.е. актёр вместо вычитки координат гостя (хидден-объекта)будет сам у себя читать вышеупомянутые параметры. Например, <br><br />
<br />
[[Файл:Hid_ob_act.jpg]]<br />
<br />
* Также в хидден-сценах можно осуществлять поиск логических пар, например мышь-мышеловка, лук-стрела и т. д. Важно чтобы два предмета, составляющие пару, находились на сцене вдвоем (пара считается найденной если игрок тапнул на один предмет пары и след. тапом тапнул второй предмет этой же пары). Также при использовании хинта подсвечиваются два предмета, составляющие одну пару. <br />
Настройки: <br />
1) в парных объектах hiddenObject поле Тип (kind) должно быть одинаково;<br />
2) в объекте hiddenList в группе Внешний вид включить настройку “поиск пар”; <br />
3) актер помимо стандартных состояний fly и fly_end должен иметь состояние highlight - подсветка первого предмета в паре. <br />
4) для хинтования пары в объекте Hint в хинте (искра) необходимо задать второй хвост и второй указатель (причем отличный от первого).<br />
<br />
== Добавляемые параметры ==<br />
<br />
[[Файл:hid_ob_2.jpg|right]]<br />
<br />
[[Файл:+.png]]'''Дополнительная коллекция''' ('' add_col '') - используется в случае, если объекту нужно относиться более чем к одной:<br />
:'''id''' ('' col '') - Объект типа коллекция, к которому относится данный объект.<br />
<br />
<br />
[[Файл:+.png]]'''связанный объект''' ('' addLnkObj '') - Связанный объект на противоположном фоне при поиске различий:<br />
:'''связанный объект''' ('' lnkObj '') - Связанный объект на противоположном фоне при поиске различий.<br />
<br />
<br />
[[Файл:+.png]]'''изменить параметр объекта''' ('' chg '') - При нахождении объекта изменить параметр объекта:<br />
:'''объект''' ('' obj '') - При нахождении объекта этот объект меняет свой параметр;<br />
:'''свойство''' ('' par '') - Параметр, который мы изменяем;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''изменить состояние объекта''' ('' nst '') - При нахождении объекта перевести объект в новое состояние:<br />
:'''объект''' ('' obj '') - При нахождении объекта перевести объект в состояние из следующего поля;<br />
:'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''клик на найденный хидден:''' ('' chgComp '') изменить параметр объекта:<br />
:'''объект''' ('' obj '') - Объект, параметр которого нужно изменить;<br />
:'''параметр''' ('' par '') - Параметр, которое нужно изменить;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''клик на найденный хидден:''' ('' nstComp '') изменить состояние объекта:<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
<br />
[[Файл:+.png]]'''объект вернулся на место через putback:''' ('' chgPb '') изменить параметр объекта:<br />
:'''объект''' ('' obj '') - Объект, параметр которого нужно изменить;<br />
:'''параметр''' ('' par '') - Параметр, которое нужно изменить;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''объект вернулся на место через putback:''' ('' nstPb '') изменить состояние объекта:<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
<br />
[[Файл:+.png]]'''объект появился как новый объект:''' изменить состояние объекта ('' ''):<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
== Пример ==<br />
<br />
[[Category:Game mechanic]]</div>Vryabovolhttps://wiki.appsalutecreator.com/index.php?title=HiddenObject&diff=9803HiddenObject2019-03-25T12:38:56Z<p>Vryabovol: </p>
<hr />
<div>HiddenObject - поисковый [[Object|объект]] на сцене в хидден-игре.<br />
Добавив из редактора ресурсов на сцену картинку поискового предмета, мы изменяем его тип на hiddenObject.<br><br />
Можно применить групповое изменение типа, выделив с помощью "Shift" или "Ctrl" группу картинок.<br />
Все хидден-объекты должны быть подключены к объекту с типом [[HiddenList]].<br />
<br />
== Общие параметры ==<br />
<br />
(см. описание [[Object|Object]])<br />
*'''имя''' ('' nm '') - Имя объекта HiddenObject в дереве проекта. Может быт произвольным.<br />
*'''id-объекта''' - Уникальный номер объекта HiddenObject, который можно увидеть в строке "имя" либо при наведении курсора на неё.<br />
*'''синхронизация''' ('' sync '') - Применяется для синхронизации между лейаутами. Если указан параметр "нет", то объект будет активен только на текущем лейауте. По умолчанию указан параметр "да". <br />
*'''сохранение параметров''' ('' sv '') - Настройка этого параметра актуальна, если приложение в дальнейшем будет сворачиваться в системную панель («трей»). Выбирается значение этого параметра из выпадающего списка. Возможны следующие варианты: "нет", "только объект", "объект с подобъектами", "только подобъекты". При выходе из трэя будут восстановлены ранее измененные/установленные (при переходе с одного экрана на другой)параметры объектов или подобъектов в зависимости от выбранного варианта для этого параметра. По умолчанию указан параметр "нет". Следует помнить, что если выбирается для объекта некоторой сцены значения этого параметра отличное от "нет", то должно и предусматриваться соответствующее значение этого параметра и для этой сцены, и для экрана, содержащего эту сцену.<br />
*'''z''' ('' z '') - Параметр порядка рисования объекта. Сначала рисуются объекты с большим z, затем, поверх них - с меньшим.<br />
*'''память''' ('' memo ''):<br />
:'''1''' - при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана);<br />
:'''0''' - обновит свои параметры, при повторном открытии экрана.<br />
<br />
== Основные параметры ==<br />
<br />
[[Файл:hid_ob1.jpg|right]]<br />
<br />
*'''картинка''' ('' res '') - Графический ресурс хидден-объекта. Перетаскивается мышкой из редактора ресурсов (поле должно быть в состоянии редактирования). <br />
*'''текстID ''' ('' txtID '') - Название хидден-объекта, которое будет отображаться в таблице. Перетаскивается мышкой из текстового редактора (поле должно быть в состоянии редактирования).<br />
*'''связанный предмет экономики ''' ('' economicsID '') - Связанный предмет экономики, участвует в тасках и т.п. Указываем txtID предмета из экономики. Он будет виден на сцене, как хидден-объект.<br />
*'''использовать текстID для связи ''' ('' economicsMain '') - использовать текстID для связи<br />
*'''текст''' ('' txt '') - При отсутствии ТекстID в таблице будет отображаться этот текст.<br />
*'''list''' ('' lst '') - Ссылка на [[HiddenList]], к которому будет подключен объект.<br />
*''' actor''' ('' actor '') - Анимация (машина состояний), которая запустится после нахождения объекта. В этой машине состояний должно быть обязательно состояние show, в котором будет описана, например, анимация полёта актёра.<br />
*''' flayer''' ('' fl '') - Объект типа flyers, который запустится при клике на спрятанный объект. Можно указывать машину с состоянием "beg".<br />
*'''тип''' ('' kind '') - Номер типа объекта. Используется при выставленном ограничении в [[HiddenList]] (поле [одного типа]).<br />
*'''обязательный''' ('' forced ''):<br />
:'''1''' - объект всегда будет в списке на поиск;<br />
:'''0''' - обычный объект ( может попасть в список, а может и не попасть). <br />
*'''выделение цветом''' ('' colored ''):<br />
:'''1''' - на объект будут распространяться выделения цветом (цвет указывается в HiddenList);<br />
:'''0''' - не будет распространяться.<br />
*''' подсвечиваемый''' ('' can_highlight '') - Может ли объект подсвечиваться хинтом<br />
:'''1''' - да;<br />
:'''0''' - нет.<br />
*'''предпочитаемый''' ('' preferred ''):<br />
:'''да''' - объект является предпочитаемым (используется при исключении объектов с одинаковыми textID);<br />
:'''нет''' - не является.<br />
*'''сессия''' ('' ses '') - Сессия, в которой должен появиться объект ( по умолчанию = "-1").<br />
*'''набор''' ('' kit '') - Набор, к которому принадлежит объект. Принимает значения 1, 2, 3 и т.д. Указывается в HiddenList.<br />
*'''приоритет''' ('' prior '') - Приоритет объект, определит его положение в списке. У хидден-листа должна быть включена сортировка по приоритету<br />
*'''collection''' ('' col '') - Объект типа [[Collection]], к которому относится данный объект. Если объект не коллекционный - просто не задавать.<br />
*'''сохранять клики''' ('' saveclk '') - Сохранять клики по предметам в опции (по умолчанию они хранятся в рамках сессии)<br />
*'''сложность''' ('' diffic '') - Параметр, определяющий сложность объекта, 0 - самый простой, чем больше параметр, тем сложнее. Если есть 4 раскладки объекта мяч (общий txtID), каждому объекту мячу задается сложность. Перед началом игры у хидден листа есть рандомный набор текстовых айди объектов. Если в хидден листе включена сложность, хидден лист выберет наиболее простые объекты для выбранных txtID. <br />
*'''прокликиваемость''' ('' passClk ''):<br />
:'''0''' - объект сам обрабатывает клик и не пропускает его дальше; <br />
:'''1''' - объект прозрачен для клика мышкой (пропускает объектам под ним);<br />
:'''2''' - объект сам обрабатывает клик, но и пропускает его дальше".<br />
*'''economicsMain''' - если да, то в поле '''economicsID''' будет взят id из поля '''txtID''' (коллекционный предмет и HO - один объект);<br />
<br />
Выделив более 2-х хидден объектов у нас будут параметры группового изменения.<br />
Таким образом мы легко можем выставить прокликиваемость или один [[HiddenList]] всем нашим объектам сразу!<br />
<br />
== Настройка морф-объектов ==<br />
[[Файл:морф.jpg|right|320px]]<br />
Обязательно в редакторе ресурсов нужно обвести 4-мя шейпами изображение (см. скрин)<br />
*'''включить''' - Сделать объект морфом;<br />
*'''картинка''' - Графический ресурс изображения спрятанного объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования);<br />
*'''время трансформации''' - Время трансформации морфа;<br />
*'''время смены состояния''' - Время смены состояния морфа (значение меньше transform_time == переключение отключено);<br />
*'''время запуска смены''' - Время запуска цикла смены состояний морфа (значение меньше transform_time == переключение отключено);<br />
*'''начальное состояние''' - Начальное состояние морфа;<br />
*'''остановка морфинга''' - Останавливать морфинг после нахождения хинтом;<br />
<br />
== Состояния объекта ==<br />
<br />
У хидден объекта есть состояния, которыми можно управлять с помощью машин. Также можно отслеживать, в каком сейчас состоянии находится хидден-объект. Доступны следующие состояния которые можем использовать:<br />
<br />
*'''wait''' - находиться на сцене и ожидает события;<br />
*'''raise''' - после клика объект поднимается вверх и увеличивается;<br />
*'''fly''' - объект летит к цели, вращаясь и уменьшаясь;<br />
*'''find''' - можно передавать с помощью разных объектов, сообщает хиддену что он найден (имитировать клик на объекте).<br><br />
<br />
== Настройка теней (Пока только в бете) ==<br />
<br />
1) Выбираем объект/сцену, в котором есть хиддены со съехавшими тенями<br />
2) Закрываем базу ресурсов<br />
3) Дальше выбрать пункт в меню - Tools(инструменты) -> special -> recalculate hidden objects pivots<br />
<br />
<br />
== Примечания ==<br />
<br />
* Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.<br><br />
<br />
* Заполнение таблицы "обязательными" объектами происходит построчно слева направо случайным образом. Если такой "обязательный" объект для хидден-листа один, то он всегда будет находиться в левом верхнем углу.<br><br />
<br />
* Для минимализации действий и затрачиваемого времени желательно применять к хидден-объектам групповое изменение параметров (клавишами crl или shift). Т.е. добавили из базы ресурсов хидден-картинки => Все их выделили => И один раз задали им тип "HiddenObject", хидден-лист, флаер нахождения, добавляемые параметры и т.д.<br><br />
<br />
* Зачастую необходимо знать есть ли хидден-объект на сцене. Проверить это можно по параметру "vis".<br />
<br />
* Пусть у Ваших хидден-объектов один общий актер. В момент нахождение хидден-объекта он передает актёру состояние '''show'''. И пусть в этом состоянии вы считываете координаты гостя (т.е. хидден-объекта), чтобы с того места, к примеру, запустить флаер, машину или что-то еще. '''Так вот этого делать нельзя!''' В результате при следующем посещении экрана Вы увидите, что у хидден-объектов изменились координаты. Дело в некоторой архитектурной проблеме. Выход есть. Перед запуском актёра нужно ставить ему параметры '''hox''' и '''hoy''', обозначающие координаты объекта его запустившего. Т.е. актёр вместо вычитки координат гостя (хидден-объекта)будет сам у себя читать вышеупомянутые параметры. Например, <br><br />
<br />
[[Файл:Hid_ob_act.jpg]]<br />
<br />
* Также в хидден-сценах можно осуществлять поиск логических пар, например мышь-мышеловка, лук-стрела и т. д. Важно чтобы два предмета, составляющие пару, находились на сцене вдвоем (пара считается найденной если игрок тапнул на один предмет пары и след. тапом тапнул второй предмет этой же пары). Также при использовании хинта подсвечиваются два предмета, составляющие одну пару. <br />
Настройки: <br />
1) в парных объектах hiddenObject поле Тип (kind) должно быть одинаково;<br />
2) в объекте hiddenList в группе Внешний вид включить настройку “поиск пар”; <br />
3) актер помимо стандартных состояний fly и fly_end должен иметь состояние highlight - подсветка первого предмета в паре. <br />
4) для хинтования пары в объекте Hint в хинте (искра) необходимо задать второй хвост и второй указатель (причем отличный от первого).<br />
<br />
== Добавляемые параметры ==<br />
<br />
[[Файл:hid_ob_2.jpg|right]]<br />
<br />
[[Файл:+.png]]'''Дополнительная коллекция''' ('' add_col '') - используется в случае, если объекту нужно относиться более чем к одной:<br />
:'''id''' ('' col '') - Объект типа коллекция, к которому относится данный объект.<br />
<br />
<br />
[[Файл:+.png]]'''связанный объект''' ('' addLnkObj '') - Связанный объект на противоположном фоне при поиске различий:<br />
:'''связанный объект''' ('' lnkObj '') - Связанный объект на противоположном фоне при поиске различий.<br />
<br />
<br />
[[Файл:+.png]]'''изменить параметр объекта''' ('' chg '') - При нахождении объекта изменить параметр объекта:<br />
:'''объект''' ('' obj '') - При нахождении объекта этот объект меняет свой параметр;<br />
:'''свойство''' ('' par '') - Параметр, который мы изменяем;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''изменить состояние объекта''' ('' nst '') - При нахождении объекта перевести объект в новое состояние:<br />
:'''объект''' ('' obj '') - При нахождении объекта перевести объект в состояние из следующего поля;<br />
:'''состояние''' ('' st '') - Новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''клик на найденный хидден:''' ('' chgComp '') изменить параметр объекта:<br />
:'''объект''' ('' obj '') - Объект, параметр которого нужно изменить;<br />
:'''параметр''' ('' par '') - Параметр, которое нужно изменить;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''клик на найденный хидден:''' ('' nstComp '') изменить состояние объекта:<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
<br />
[[Файл:+.png]]'''объект вернулся на место через putback:''' ('' chgPb '') изменить параметр объекта:<br />
:'''объект''' ('' obj '') - Объект, параметр которого нужно изменить;<br />
:'''параметр''' ('' par '') - Параметр, которое нужно изменить;<br />
:'''значение''' ('' val '') - Новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''объект вернулся на место через putback:''' ('' nstPb '') изменить состояние объекта:<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
<br />
[[Файл:+.png]]'''объект появился как новый объект:''' изменить состояние объекта ('' ''):<br />
:'''объект''' ('' obj '') - Объект, состояние которого нужно изменить;<br />
:'''состояние''' ('' st '') - Новое состояние объекта.<br />
<br />
== Пример ==<br />
<br />
[[Category:Game mechanic]]</div>Vryabovolhttps://wiki.appsalutecreator.com/index.php?title=Eraser&diff=9622Eraser2018-07-27T07:50:34Z<p>Vryabovol: /* Важно: */</p>
<hr />
<div>{{TOC right}}<br />
Eraser - с помощью данного объекта получается эффект стирачки.<br />
<br />
[[Файл:Eraser скрин.png]]<br />
<br />
=='''Основные параметры'''==<br />
<br />
'''res''' - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
<br />
'''R''' - Радиус стирания до alfa = 0<br />
<br />
'''r''' - Радиус стирания до alfa = percentage<br />
<br />
'''percentage''' - Целевой процент alfa до которого необходимо стереть для выполнения заданного условия.<br />
<br />
<br />
=='''Дополнительные параметры:'''==<br />
<br />
[[Файл:Eraser скрин1.png]]<br />
<br />
'''Стерли - изменить состояние объекта при тач-апе'''<br />
<br />
*''объект'' - Объект, состояние которого нужно изменить.<br />
*''состояние'' - Новое состояние объекта<br />
<br />
=='''Состояния'''==<br />
<br />
*''start'' - возвращает затирачку в исходное состояние.<br />
<br />
=='''Важно:'''==<br />
<br />
* ''Нельзя вставлять большой графический объект для стирачки. Это приведёт к торможением или падением приложения на устройстве.''<br />
<br />
* ''В качестве графики нужно использовать только картинку формата '''PNG''', с другими форматами объект не работает. Важно чтобы после экспорта графика также осталась в этом формате. Практика показывает, что объект также может использовать графику в формате jxr (после экспорта)''<br />
<br />
=='''Пример:'''==<br />
<br />
[[Файл:Feaa1-clip-40kb.jpg]]<br />
<br />
[[Файл:5ec63-clip-40kb.jpg]]<br />
<br />
[[Файл:0910a-clip-39kb.jpg]]</div>Vryabovol