https://wiki.appsalutecreator.com/api.php?action=feedcontributions&user=Agritsenko&feedformat=atomwiki.appsalutecreator.com - Вклад участника [ru]2024-03-29T07:45:45ZВклад участникаMediaWiki 1.31.15https://wiki.appsalutecreator.com/index.php?title=Isomap&diff=8702Isomap2017-05-05T12:32:59Z<p>Agritsenko: /* Выделение маршрутов между локациями на карте */</p>
<hr />
<div><br />
''Isomap'' - [[Object|объект]] с помощью которого, появилась возможность создать траекторию движения для объекта типа ''[[isomover]]''. Например, установить движение машин по дорогам, людей по тротуарам, птиц в небе. Каждому объекту можно задать свою уникальную траекторию, учитывать столкновения объектов и запускать их взаимодействие (разговор, бой, погоня). Объекты типа isomap и isomover часто используются с economics и items. Особенность isomap в том, что положение дочерних объектов по оси ''y'' пересчитывается, как для ''z'' - если изомувер на карте ниже, то он над объектом, а если выше по оси ''y'', то объект рисуется поверх изомувера. Строится набор нод (точек старта и финиша) и ребер, которые их соединяют. Движение объектов происходит между нодами вдоль ребер. Каждое ребро имеет только одно направление.<br><br><br />
== Создание карт ==<br />
Основная работа с isomap происходит в окне ''isomap setup'', где создаются ноды и ребра по которым и будет происходить движение isomap-объектов. В свойствах объекта, нажатием на троеточие, открываем ''isomap setup''. В открывшемся окне нажимаем ''build graph''<br />
<br />
[[Файл:Line.jpg|900px]]<br><br>Все необходимое для дальнейшей работы находим в, открывшейся сверху, строке объекта isomap. Пункты появившегося меню сгруппированы по настройкам нод, ребер, добавлению вспомогательных точек и сохранению результатов.<br />
<br />
*Настройки нод:<br />
**'''Добавить''' - добавление новой ноды<br />
**'''Выбрать''' - если кнопка включена, то можно выбрать ноду на карте<br />
**'''Selected node name''' - поле установки имени для ноды<br />
**'''Selected node x, y coordanate''' - поле управления координатами ноды. Можно также управлять перетаскиванием ноды мишкой по карте<br />
**'''Удалить''' - удаление выбранной ноды<br />
**'''Delete all nodes''' - удаление всех нод<br />
<br />
Ноды целесообразно ставить для задания старта и финиша, на перекрестках траектории и в местах, где предполагаемый объект будет изменять направление движения.<br />
<br />
[[Файл:Isomap setup1.png|right|400px]]После того, как проставлены нужные ноды, можно приступать к формированию ребер.<br />
*Настройки ребер:<br />
**'''Добавить''' - добавить новое ребро<br />
**'''Выбрать''' - выбрать ребро. Нажимаем на эту кнопку и кликаем на нужное ребро (оно должно окраситься красным цветом)<br />
**'''Selected edge type''' - поле выбора типа ребра. Тип ребер можно учитывать в объектах isomover (задавать движение лишь по определенным типам ребер)<br />
**'''Selected edge weight''' - поле установки веса ребра<br />
**'''Удалить''' - удалить ребро<br />
**'''Delete all edges''' - удалить сразу все ребра<br />
**'''Select graph edge knot''' - включенная кнопка позволяет перемещать мышкой точки, расположенные на ребрах<br />
**'''Insert before''' - вспомогательная точка, добавляемая до главной точки ребра<br />
**'''Insert after''' - вспомогательная точка, добавляемая после основной точки ребра<br />
<br />
Нам необходимо создать путь для движения изомувера. Выбираем первую ноду- она будет началом траектории, затем нажимаем ''Добавить'' и кликаем на второй ноде - это будет конец траектории. Именно в таком направлении будет двигаться объект, от первой ко второй ноде. Для двустороннего движения понадобится два односторонних ребра через одни и те же ноды. Выделив ребро, можно заметить что две точки между ним отличаются: одна закрашена, а вторая пустая. По этим признакам можно определить направление движения - оно будет происходит от пустой к закрашенной точке.<br />
<br />
*Дополнительные кнопки:<br />
**'''Hide all edges''' - скрыть все ребра, на карте остаются лишь точки<br />
**'''Save graph''' - сохранить все внесенные изменения<br />
**'''Exit without saving''' - выйти без сохранения<br />
<br><br />
== Выделение маршрутов между локациями (по кейсу) на карте ==<br />
После создания объекта ''isomap'' с необходимыми маршрутами вкладываем в него 2 объекта типа ''ribbon'' - один для нового маршрута (еще не пройденного) и для уже пройденных.<br />
В Таскорганайзере в "прохождение кейсов" указываем isomap, ribbon новый и ribbon пройденный.<br><br />
Также в Економике необходимо для каждой локации (вкладка "локация хидден") указать номер её узла (нумерация нод начинается с 0!).<br><br><br />
<br />
== Состояния ==<br />
[[Файл:Isomap st1.png|right|150px]]<br><br />
*'''disable_edge''' - состояние, назначаемое isomap для отключения ребра. Необходимо предварительно выбрать две ноды, формирующие это ребро. Для этого предназначены параметры n1 и n2 у объекта isomap. Этим параметрам передаем значения нод и далее устанавливаем состояние ''disable_edge'' для isomap. В итоге наше ребро станет не доступным<br />
*'''enable_edge''' - состояние, назначаемое isomap для того, чтобы сделать ребро доступным, если оно было отключено ранее. Настройка аналогична ''disable_edge'' (детальнее на рисунке).<br><br><br />
<br />
== Особенности расположения ==<br />
В подобъекты ''isomap'' помещают объекты ''isomover'' и участки background, если изомувер в процессе движения может оказаться как перед, так и за ними. Это крыши домов, фонари, деревья. Объект родитель сам установит по координате ''z'' необходимое размещение объектов, согласно их типу. Объект ''isomover'' будет двигаться за элементами карты, если по оси ''y'' он в данный момент находится выше.<br><br />
[[Файл:Isomap setup2.png|left|330px]]<br />
[[Файл:Isomap setup3.png]]<br />
<br />
<br>Как видно на рисунках, объект isomover (оранжевый шарик) в проекте находится ниже, чем объект 009_theater (изображение театра). В обычной ситуации отрисовка идет сверху вниз по дереву проекта и, если бы оба объекта были подобъектами не isomap, а другого объекта, то isomover должен был бы перекрыть собой все изображения по оси ''z''. Тем не менее, они оба принадлежат объекту isomap, при отрисовке он динамически меняет значение ''z'' своим подобъектам. Этим создается псевдо-3D, будто наш шарик проходит сзади театра.<br />
<br />
Isomap может влиять только на своих прямых потомков. Если дочерний объект сам является родителем для кого-то, то его подобъекты принимают ''z''-координаты непосредственного родителя.<br />
<br />
Почему же тогда изомувер находится выше фона, а не рисуется под ним? Фон задан объектом ground_12, который не является дочерним объектом для isomap. Поэтому isomap ничего не знает о фоне и учитывает только свои подобъекты.<br />
<br />
<br />
[[Category:Game mechanic]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=Isomap&diff=8701Isomap2017-05-05T10:42:18Z<p>Agritsenko: </p>
<hr />
<div><br />
''Isomap'' - [[Object|объект]] с помощью которого, появилась возможность создать траекторию движения для объекта типа ''[[isomover]]''. Например, установить движение машин по дорогам, людей по тротуарам, птиц в небе. Каждому объекту можно задать свою уникальную траекторию, учитывать столкновения объектов и запускать их взаимодействие (разговор, бой, погоня). Объекты типа isomap и isomover часто используются с economics и items. Особенность isomap в том, что положение дочерних объектов по оси ''y'' пересчитывается, как для ''z'' - если изомувер на карте ниже, то он над объектом, а если выше по оси ''y'', то объект рисуется поверх изомувера. Строится набор нод (точек старта и финиша) и ребер, которые их соединяют. Движение объектов происходит между нодами вдоль ребер. Каждое ребро имеет только одно направление.<br><br><br />
== Создание карт ==<br />
Основная работа с isomap происходит в окне ''isomap setup'', где создаются ноды и ребра по которым и будет происходить движение isomap-объектов. В свойствах объекта, нажатием на троеточие, открываем ''isomap setup''. В открывшемся окне нажимаем ''build graph''<br />
<br />
[[Файл:Line.jpg|900px]]<br><br>Все необходимое для дальнейшей работы находим в, открывшейся сверху, строке объекта isomap. Пункты появившегося меню сгруппированы по настройкам нод, ребер, добавлению вспомогательных точек и сохранению результатов.<br />
<br />
*Настройки нод:<br />
**'''Добавить''' - добавление новой ноды<br />
**'''Выбрать''' - если кнопка включена, то можно выбрать ноду на карте<br />
**'''Selected node name''' - поле установки имени для ноды<br />
**'''Selected node x, y coordanate''' - поле управления координатами ноды. Можно также управлять перетаскиванием ноды мишкой по карте<br />
**'''Удалить''' - удаление выбранной ноды<br />
**'''Delete all nodes''' - удаление всех нод<br />
<br />
Ноды целесообразно ставить для задания старта и финиша, на перекрестках траектории и в местах, где предполагаемый объект будет изменять направление движения.<br />
<br />
[[Файл:Isomap setup1.png|right|400px]]После того, как проставлены нужные ноды, можно приступать к формированию ребер.<br />
*Настройки ребер:<br />
**'''Добавить''' - добавить новое ребро<br />
**'''Выбрать''' - выбрать ребро. Нажимаем на эту кнопку и кликаем на нужное ребро (оно должно окраситься красным цветом)<br />
**'''Selected edge type''' - поле выбора типа ребра. Тип ребер можно учитывать в объектах isomover (задавать движение лишь по определенным типам ребер)<br />
**'''Selected edge weight''' - поле установки веса ребра<br />
**'''Удалить''' - удалить ребро<br />
**'''Delete all edges''' - удалить сразу все ребра<br />
**'''Select graph edge knot''' - включенная кнопка позволяет перемещать мышкой точки, расположенные на ребрах<br />
**'''Insert before''' - вспомогательная точка, добавляемая до главной точки ребра<br />
**'''Insert after''' - вспомогательная точка, добавляемая после основной точки ребра<br />
<br />
Нам необходимо создать путь для движения изомувера. Выбираем первую ноду- она будет началом траектории, затем нажимаем ''Добавить'' и кликаем на второй ноде - это будет конец траектории. Именно в таком направлении будет двигаться объект, от первой ко второй ноде. Для двустороннего движения понадобится два односторонних ребра через одни и те же ноды. Выделив ребро, можно заметить что две точки между ним отличаются: одна закрашена, а вторая пустая. По этим признакам можно определить направление движения - оно будет происходит от пустой к закрашенной точке.<br />
<br />
*Дополнительные кнопки:<br />
**'''Hide all edges''' - скрыть все ребра, на карте остаются лишь точки<br />
**'''Save graph''' - сохранить все внесенные изменения<br />
**'''Exit without saving''' - выйти без сохранения<br />
<br><br />
== Выделение маршрутов между локациями на карте ==<br />
После создания объекта ''isomap'' с необходимыми маршрутами вкладываем в него 2 объекта типа ''ribbon'' - один для нового маршрута (еще не пройденного) и для уже пройденных.<br />
В Таскорганайзере в "прохождение кейсов" указываем isomap, ribbon новый и ribbon пройденный.<br><br />
Также в Економике необходимо для каждой локации (вкладка "локация хидден") указать номер её узла (нумерация нод начинается с 0!).<br><br><br />
<br />
== Состояния ==<br />
[[Файл:Isomap st1.png|right|150px]]<br><br />
*'''disable_edge''' - состояние, назначаемое isomap для отключения ребра. Необходимо предварительно выбрать две ноды, формирующие это ребро. Для этого предназначены параметры n1 и n2 у объекта isomap. Этим параметрам передаем значения нод и далее устанавливаем состояние ''disable_edge'' для isomap. В итоге наше ребро станет не доступным<br />
*'''enable_edge''' - состояние, назначаемое isomap для того, чтобы сделать ребро доступным, если оно было отключено ранее. Настройка аналогична ''disable_edge'' (детальнее на рисунке).<br><br><br />
<br />
== Особенности расположения ==<br />
В подобъекты ''isomap'' помещают объекты ''isomover'' и участки background, если изомувер в процессе движения может оказаться как перед, так и за ними. Это крыши домов, фонари, деревья. Объект родитель сам установит по координате ''z'' необходимое размещение объектов, согласно их типу. Объект ''isomover'' будет двигаться за элементами карты, если по оси ''y'' он в данный момент находится выше.<br><br />
[[Файл:Isomap setup2.png|left|330px]]<br />
[[Файл:Isomap setup3.png]]<br />
<br />
<br>Как видно на рисунках, объект isomover (оранжевый шарик) в проекте находится ниже, чем объект 009_theater (изображение театра). В обычной ситуации отрисовка идет сверху вниз по дереву проекта и, если бы оба объекта были подобъектами не isomap, а другого объекта, то isomover должен был бы перекрыть собой все изображения по оси ''z''. Тем не менее, они оба принадлежат объекту isomap, при отрисовке он динамически меняет значение ''z'' своим подобъектам. Этим создается псевдо-3D, будто наш шарик проходит сзади театра.<br />
<br />
Isomap может влиять только на своих прямых потомков. Если дочерний объект сам является родителем для кого-то, то его подобъекты принимают ''z''-координаты непосредственного родителя.<br />
<br />
Почему же тогда изомувер находится выше фона, а не рисуется под ним? Фон задан объектом ground_12, который не является дочерним объектом для isomap. Поэтому isomap ничего не знает о фоне и учитывает только свои подобъекты.<br />
<br />
<br />
[[Category:Game mechanic]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=Absolutist_Framework&diff=8486Absolutist Framework2016-10-25T10:35:12Z<p>Agritsenko: /* Game mechanic */</p>
<hr />
<div><br />
{{TOC right}}<br />
'''[[:category:main|Категории]]'''<br />
== Новости ==<br />
Вышла новая игра HOG созданная с помощью AppSalute Game Сreator. Созданы новые уникальные эффекты и механики для обеспечения незабываемых впечатлений.<br />
Описание и видео:<br />
http://time-gap.com/<br />
<br />
== AppSalute Game Сreator ==<br />
* [[Примеры приложений]]<br />
* [[Введение в AppSalute Game Сreator]]<br />
* [[Установка и настройка]]<br />
* [[Интерфейс ScenceEditor ]]<br />
* [[Интерфейс ResourceEditor ]]<br />
* [[Интерфейс TextEditor ]]<br />
*[[Интерфейс Viewer ]]<br />
* [[Книга жалоб и пожеланий]]<br />
* [[Roadmap]]<br />
<br />
== Обучение ==<br />
<br />
* [[Learning|Уроки по освоению фреймворка]]<br />
* [[Примеры реализации в играх]]<br />
* [[Основные понятия объектов физического мира]]<br />
* [[Использование AppSalute Debugger при отладке]]<br />
* [[Отладка на флеше]]<br />
* [[FAQ]]<br />
<br />
== Подготовка проекта ==<br />
* [[Проектирование экранов игры]]<br />
* [[Подготовка и форматы графики]]<br />
* [[Подготовка и форматы шрифтов]]<br />
* [[Подготовка и форматы звуков]]<br />
* [[Подготовка и форматы видео]]<br />
* [[Создание проекта]]<br />
* [[Загрузка проекта по частям]]<br />
* [[Конфигурация проекта для сборки]]<br />
* [[Подготовка для загрузки на маркеты]]<br />
* [[Сборка проекта]]<br />
* [[Частые ошибки]]<br />
* [[Отличия подготовки проекта для разных платформ]]<br />
* [[Lua|Использование lua-скриптов]]<br />
* [[Подготовка версии для Viber]]<br />
<br />
== Встроенные объекты редактора==<br />
<br />
=== Common objects ===<br />
<br />
''[[Файл:Screen.png]] - [[Screen]]'' - экран<br />
<br />
''[[Файл:Scene.png]] - [[Scene]]'' - сцена<br />
<br />
=== Main objects ===<br />
<br />
''[[Файл:Objects.png]] - [[Object]]'' - общие параметры для всех игровых объектов<br />
<br />
* [[Файл:Kub.png]] - [[Azmanager]] - менеджер активных зон<br />
* [[Файл:Kub.png]] - [[Active zone]] - активная зона<br />
* [[Файл:Picture.png]] - [[Image]] - картинка<br />
* [[Файл:Kub.png]] - [[Statistic]] - объект для отправки событий статистики.<br />
* [[Файл:Button.png]] - [[Button]] - кнопка<br />
* [[Файл:Text.png]] - [[Text]] - текст<br />
* [[Файл:Machine.png]] - [[Machine]] - машина состояний<br />
** [[Файл:Mwindow.png]] - [[Mwindow]] - машина состояний - окно<br />
* [[Файл:Tableicon.png]] - [[Table]] - таблица<br />
* [[Файл:Checkbox.png]] - [[Checkbox]] - чекбокс (кнопка в 2-х состояниях)<br />
* [[Файл:Checkgroup.png]] - [[Groupbox]] - группа, содержащая несколько чекбоксов<br />
* [[Файл:Timer.png]] - [[Timer]] - цифровой таймер<br />
** [[Файл:Kub.png]] - [[Globaltimer]] - таймер "реального времени"<br />
* [[Файл:Counter2.png]] - [[Counter]] - счетчик сделанных кликов в игре и т.п.<br />
* [[Файл:Progressbar.png]] - [[Progress]] - прогресс прохождения игры (эчивмент)<br />
* [[Файл:Particle.png]] - [[Flyer]] - флаер (патиклы)<br />
* [[Файл:Rectangle.png]] - [[Rectangle]] - прямоугольник<br />
* [[Файл:Kub.png]] - [[Isomover]] - объект движения в изометрической карте<br />
* [[Файл:Group.png]] - [[Group]] - группа<br />
* [[Файл:Groupset.png]] - [[Groupset]] - группа<br />
* [[Файл:Effect.jpg|20px]] - [[Effect]] - Создание различных эффектов<br />
* [[Файл:Graphprogress.png]] - [[Graphprogress]] - создание мини-карты для отображения прогресса прохождения игры.<br />
* [[Файл:Statesmanager_ico.png]] - [[Statesmanager]] - очередь работы с объектами<br />
* [[Файл:Slider icons.png]] - [[Slider]] - объект реализующий листание списка.<br />
* [[Файл:Ribbon.png]] - [[Ribbon]] - объект отображения графики по сплайну<br />
* [[Файл:Kub.png]] - [[Animation]] - объект различных анимаций<br />
* [[Файл:Kub.png]] - [[Magicparticles]] - объект файлов Magic Particles<br />
<br />
=== Game mechanic ===<br />
<br />
* [[Файл:Kub.png]] - [[Avoider]] - эвойдер<br />
* [[Файл:Puzzle.png]] - [[Puzzle]] - игра пазл<br />
* [[Файл:Memory.png]] - [[Memory]] - класс игр с memory-механикой<br />
* [[Файл:Patchwork.png]] - [[Patchwork]] - класс игр с Patchwork-механикой<br />
* [[Файл:Match3.png]] - [[Match]] - класс match-подобных игр<br />
* [[Файл:Collaps.png]] - [[Collapse]] - класс match-подобных игр<br />
* [[Файл:Bejewelled.png]] - [[Bejewelled]] - класс match-подобных игр<br />
* [[Файл:BubbleShooter.png]] - [[Bubble Shooter]] - класс Bubble игр включая механику Снукер<br />
* [[Файл:Tapthebubble.png]] - [[TapTheBubble]] - механика игры Tap The Bubble<br />
* [[Файл:GemSlider.jpg]] - [[Gem Slider]] - механика игры Gem Slider<br />
* [[Файл:W-57.png]] - [[Words]] - механика игры Words<br />
* [[Файл:Kub.png]] - [[2048]] - механика игры 2048<br />
* [[Файл:Kub.png]] - [[Planet]] - игра "Планетки"<br />
* [[Файл:Kub.png]] - [[Unblock]] - механика игры unblock<br />
* [[Файл:Matchbattle.png]] - [[Match Battle]] - настройка глобальных параметров для мини-игр<br />
* [[Файл:Move box.png]] - [[DragBox]] - класс игр с dragbox-механикой<br />
* [[Файл:Labyrinth.png]] - [[Labyrinth]] - класс игр лабиринт<br />
* [[Файл:Pipes.png]] - [[Pipes]] - класс игр трубы<br />
* [[Файл:Search object.png]] - [[HiddenObject]] - поисковый объект в хидден играх<br />
* [[Файл:Object list.png]] - [[HiddenList]] - список поисковых объектов в хидден играх<br />
* [[Файл:Hint.png]] - [[HiddenHint]] - подсказка (указатель на спрятанный объект)<br />
* [[Файл:Kub.png]] - [[HiddenHighLighter]] - позволяет показать не найденные объекты в хиддене.<br />
* [[Файл:Collection.png]] - [[Collection]] - "коллекция" поисковых объектов для хидден игр<br />
* [[Файл:Inventory.png]] - [[Inventory]] - "инвентарь" список применяемых объектов для игр<br />
* [[Файл:Tool.png]] - [[Tool]] - "применение" - объект, который можно применить для игр<br />
* [[Файл:Kub.png]] - [[Isomap]] - изометрическая карта<br />
* [[Файл:Slotmachine.png]] - [[Slotmachine]] - объект типа "slot"<br />
* [[Файл:Economics.png]] - [[Economics]] - глобальная настройка игр типа ферма\билдер<br />
** [[Файл:E_items.png]] - [[Eitems]] - объект, служащий для связи инвентаря/магазина и экономики <br />
** [[Файл:E_store_item.png]] - [[Estoreitem]] - шаблон для ячейки магазина <br />
** [[Файл:E_inventory_item.png]] - [[Einventoryitem]] - шаблон для ячейки инвентаря <br />
** [[Файл:Kub.png]] - [[Ecraftitem]] - шаблон для ячейки создания предмета.<br />
** [[Файл:Taskorganizer.png]] - [[Taskorganizer]] - органайзер заданий <br />
*** [[Файл:Kub.png]] - [[Etasktemplate]] - шаблон задачи для таблицы темплейтов.<br />
** [[Файл:E_task_item.png]] - [[Etaskitem]] - шаблон для ячейки задания<br />
** [[Файл:E_collection.png]] - [[Ecollection]] - шаблон для строки в таблице коллекции<br />
* [[Файл:Paint.png]] - [[Paint]] - объект для рисования <br />
* [[Файл:Physicsworld.png]] - [[Physicsworld]] - физический мир Box2D<br />
** [[Файл:Physicsobject.png]] - [[Physicsobject]] - физические объекты<br />
** [[Файл:Physics links.png]] - [[Physicsjoint]] - физические соединения<br />
* [[Файл:Eraser.png]] - [[Eraser]] - стирачка<br />
* [[Файл:Kub.png]] - [[trivia]] - игровая механика - миллионер (trivia)<br />
* [[Файл:Kub.png]] - [[Dailybonus]] - объект для управления механизмом ежедневного бонуса за вход в игру.<br />
* [[Файл:Kub.png]] - [[Pet]] - объект питомца.<br />
* [[Файл:Kub.png]] - [[PetCollectionTemplate]] - объект шаблона ячейки с коллекцией.<br />
* [[Файл:Kub.png]] - [[PetTemplate]] - объект шаблона ячейки с животным.<br />
* [[Файл:Kub.png]] - [[CakeTower]] - объект шаблона ячейки с животным.<br />
* [[Файл:Kub.png]] - [[Pentamino]] - механика игры в [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%BD%D1%82%D0%B0%D0%BC%D0%B8%D0%BD%D0%BE пентамино]<br />
* [[Файл:Kub.png]] - [[TapTheNew]]<br />
* [[Файл:Kub.png]] - [[Dressing]] - гардероб.<br />
* [[Файл:Kub.png]] - [[Dressingtemplate]] - объект шаблона гардероба.<br />
<br />
* [[Файл:digitz.png]] - [[Digitz]] - механика игры Digitz.<br />
<br />
=== Global score ===<br />
* [[Файл:Gamecenter.png]] - [[Gamecenter]] - объект для отправки данных на GameCenter iTunse<br />
**[[Файл:Kub.png]] - [[Achievementitem]] - шаблон локального достижения (оффлайн ачивка)<br />
* [[Файл:Gamecircle.jpg]] - [[Amazon GameCircle]] - объект для отправки данных Amazon GameCircle<br />
* [[Файл:Google-play-games-android.jpg]] - [[Google Play services]] - объект для отправки данных на Google Play services<br />
* [[Файл:Localtoplist.png]] - [[Localtoplist]] - настройки для отображения результатов прохождения игры<br />
* [[Файл:Globaltoplist.png]] - [[Globaltoplist]] - настройки для отображения результатов прохождения игры<br />
* [[Файл:Globaltopsender.png]] - [[Globaltopsender]] - настройки для отображения результатов прохождения игры<br />
<br />
=== Options ===<br />
* [[Файл:Options.png]] - [[Options]] - общие настройки игры<br />
* [[Файл:Gamedata.png]] - [[Gamedata]] -<br />
* [[Файл:Controls.png]] - [[Controls]] - обьект для работы с клавишами клавиатуры или девайса <br />
* [[Файл:Editicon.png]] - [[Edit]] - ввод текста<br />
* [[Файл:Store.png]] - [[Store]] - настройки InApp покупок в игре<br />
** [[Файл:Kub.png]] - [[Wallet]] - объект для начисления игровой валюты при InApp покупках через объект economics<br />
* [[Файл:Notification.png]] - [[Notification]] - push-уведомления<br />
* [[Файл:Imagepicker.png]] - [[Imagepiker]] - объект для загрузки фото из галереи<br />
* [[Файл:Video.png]] - [[Video]] - объект для просмотра видео<br />
* [[Файл:Webview.png]] - [[Webview]] - объект для просмотра интернет страниц в приложении<br />
* [[Файл:Flurryobject.png]] - [[Flurry]] - настройки системы статистики для приложений https://dev.flurry.com<br />
* [[Файл:Moregames.png]] - [[MoreGamesList]] - запрос банеров рекламируемых игр<br />
* [[Файл:Advertisement.png]] - [[Advertisement]] - банерная система flurry, amazon<br />
* [[Файл:Splitmanager.png]] - [[Splitmanager or A\B Testing]] - менеджер сплитов<br />
* [[Файл:Tapjoy.png]] - [[Tapjoy]] - система рекламы игр<br />
* [[Файл:Playhaven.png|24px]] - [[Playhaven]] - система рекламы игр с внутренними up-sale<br />
* [[Файл:Mobileapptracker.png|24px]] - [[Mobileapptracking]] -<br />
* [[Файл:Chartboost-logo-new.jpeg]] - [[Chartboost]] - Chartboost-logo-new.jpeg<br />
* [[Файл:Kub.png]] - [[SuperSonic]] - провайдер рекламы SuperSonic<br />
* [[Файл:Kub.png]] - [[System]] - объект для доступа к системным настройкам<br />
* [[Файл:Kub.png]] - [[Salesmanager]] - менеджер акций<br />
* [[Файл:Kub.png]] - [[Cloud]] - объект для синхронизации в облаке<br />
* [[Файл:Kub.png]] - [[Game]] - объект для отправки событий<br />
<br />
=== Social ===<br />
* [[Файл:Facebook.png]] - [[Facebook]] - настройки расшаривания Facebook<br />
** [[Файл:Esocialfrienditem.png]] - [[Esocialitem]] - Шаблон для ячейки списка друзей<br />
** [[Файл:Kub.png]] - [[Esocialgiftitem]] - Шаблон для ячейки с предметом, который можно подарить другу<br />
** [[Файл:Esocial.png]] - [[Esocial]] - объект для взаимодействия с Facebook'ом<br />
* [[Файл:Twitter.png]] - [[Twitter]] - настройки расшаривания Twitter<br />
* [[Файл:Odnoklassniki.png]] - [[Odnoklassniki]] - настройки для социальной сети Одноклассники<br />
* [[Файл:Googleplus.png]] - [[GooglePlus]] - настройки для социальной сети GooglePlus<br />
<br />
=== Functions ===<br />
* [[Файл:Forward.png]] - [[SendMail]] - отправка письма через почтовый клиент<br />
* [[Файл:footer-icon-rate.png]] - [[Rate]] - вызов окна оценки приложения<br />
----<br />
<gallery widths="50px" heights="50px" ><br />
Изображение:Who.png<br />
Изображение:AnimalHideSeek.png<br />
Изображение:travel.png<br />
Изображение:Game_Adventure_Train.png<br />
Изображение:Gmae_Match_MoveTheDolly.png<br />
Изображение:Game_Patchwork_BigEyes.png<br />
Изображение:Game_Patchwork_Chameleon.png<br />
Изображение:Game_Patchwork_Logicly.png<br />
Изображение:Game_Patchwork_Stickers.png<br />
Изображение:Elephant.png<br />
Изображение:Elephant2.png<br />
Изображение:Cinderella.png<br />
Изображение:Pigs.png<br />
Изображение:Bremenskye.png<br />
Изображение:Book_SnowWhite.png<br />
Изображение:Book_PussInBoots.png<br />
Изображение:Call.png<br />
Изображение:GreatestArtists.png<br />
Изображение:Game_Puzzle_Kids.png<br />
Изображение:Game_Puzzle_Architect.png<br />
Изображение:Game_Puzzle_Science.png<br />
Изображение:Ico_1_114_Full.png<br />
Изображение:Game_Adventure_Dreams.png<br />
Изображение:Abc.png<br />
Изображение:Ico_114_Full.png<br />
Изображение:Ico_114_Paints.png<br />
Изображение:Ico_114_Puzzle.png<br />
</gallery><br />
<br />
<br />
[[category:main]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Digitz.png&diff=8485Файл:Digitz.png2016-10-25T10:35:01Z<p>Agritsenko: </p>
<hr />
<div></div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=Digitz&diff=8484Digitz2016-10-25T10:29:16Z<p>Agritsenko: </p>
<hr />
<div>== Основные параметры и свойства ==<br />
*'''тип''' - тип объекта.<br />
*'''имя''' - имя объекта в дереве проекта. Может быть произвольным.<br />
*'''синхронизация''' - синхронизация между лейаутами.<br />
*'''положение''':<br />
**x - положение объекта по оси х. Горизонтальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены.<br />
**y - положение объекта по оси y. Вертикальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены. <br />
*'''размер''':<br />
**w - ширина объекта в пикселях.<br />
**h - высота объекта в пикселях.<br />
*'''модификаторы''':<br />
**alpha - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен).<br />
**blending - аlpha смешивание.<br />
**angle - угол поворота в градусах (0 - не повёрнут). Отсчитывается от оси x вниз. Вверх - идут отрицательные углы.<br />
**scale x - масштаб по оси x (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.).<br />
**scale y - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
*'''z''' - параметр порядка рисования объекта. Сначала рисуются объекты с большим z, а под ними с меньшим.<br />
*'''память''' - если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана).<br />
*'''размер ячейки''' - размер ячейки.<br />
*'''уровень''' - номер уровня.<br />
*'''файл уровня''' - имя файла с уровнями.<br />
*'''графика''':<br />
**фон ячейки - графический ресурс изображающий ячейку сетки игрового поля. 0ой кадр - отработанная ячейка,1ый кадр - нужно отработать один и раз и т.д. <br />
**достижимая ячейка - графический ресурс отображаемый поверх всех достижимых ячеек игрового поля от выбранной ячейки.<br />
**графика цифр - клип с картинками для цифр.<br />
*'''размер поля''':<br />
**столбцов - ширина игрового поля.<br />
**строк - высота игрового поля.<br />
*'''объекты анимации и управления''':<br />
**выделенной ячейки - анимация выделенной ячейки(объект)(у объекта состояния beg, idle. beg - запуск анимации, idle - остановка(сняли выделение, начали движение)).<br />
**при перемещении - анимация ячейки при перемещении(объект)((у объекта состояния beg, idle. beg - запуск анимации, idle - остановка(остановили движение))).<br />
**матчатся - анимация когда ячейки матчатся(объект)(у объекта состояния beg, idle. beg - запуск анимации).<br />
**новое значение - анимация, когда достигнуто новое значение(объект)(у объекта состояния beg, idle. beg - запуск анимации).<br />
**успешный ход - для разблокировки кнопки undo. Переходит в состояние beg при сделанном ходе, в состояние idle при нажатии кнопки undo.<br />
*'''шрифт''':<br />
**размер - размер шрифта в пикселях.<br />
**соотношение - соотношение текста к размеру ячейки.<br />
**цвет - цвет текста.<br />
*'''звуки''':<br />
**выбор - звуковой ресурс для проигрывания нажатия на ячейку. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
**неверный выбор - звуковой ресурс для проигрывания нажатия на неподходящую ячейку. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
**перестановка - звуковой ресурс для проигрывания перестановки ячеек. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Может отсутствовать.<br />
**слияние - звуковой ресурс для проигрывания события когда ячейки матчатся. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Может отсутствовать.<br />
*'''времена''':<br />
**пауза перед матчем - пауза перед матчем.<br />
**пауза перед закраской - пауза перед закраской ячейки.<br />
**достигнуто новое значение - время задержки после того, как достигнуто новое значение. Длительность анимации.<br />
*'''условия завершения и матчинга''':<br />
**сумма (digitz) - необходимая сумма для матчинга соседствующих цифр в digitz.<br />
**число (2048) - необходимое число для завершения в 2048.<br />
**необходимое кол-во очков - необходимая кол-во очков для завершения.<br />
*'''режим игры''':<br />
**2048 - два числа сливаются, если равны, digitz - несколько цифер в сумме должны давать заданное число.<br />
*'''вероятности досыпа''' - вероятности досыпа степеней двойки (2,4,8,...) для режима 2048. Последовательность чисел через запятую должна в сумме давать 100(%).<br />
*'''досыпать все''' - добрасывать в ходе игры все числа, что есть на поле.<br />
*'''досыпание при удачном ходе''' - осыпаем по формуле (этот параметр)*(количество свободных ячеек)/(количество занятых ячеек) при результативном ходе.<br />
*'''досыпание при неудачном ходе''' - досыпаем по формуле (этот параметр)*(количество свободных ячеек)/(количество занятых ячеек) при нерезультативном ходе.<br />
*'''формула (удачный ход)''' - использовать адаптивную формулу для определения количества досыпа (удачный ход).<br />
*'''формула (неудачный ход)''' - использовать адаптивную формулу для определения количества досыпа (неудачный ход).<br />
*'''минимум добавления''' - учитывается при включенном параметре адаптивной формулы. Если по формуле выходит меньше, добавляем это значение.<br />
*'''макс. значение в начале игры''' - максимальное значение при генерации поля. Учитывается в начале игры. <br />
*'''скорость перемещения числа''' - скорость перемещения числа пикс/сек.<br />
*'''заполненность поля''' - процент начальной заполненности поля.<br />
*'''минимальная заполненность поля''' - процент минимальной заполненности поля. Если свободных ячеек становится больше, автоматически происходит досыпание.<br />
*'''удалять значение''' - удалять из ячейки число, если значение больше заданного. Если значение отрицательное, то удаление не происходит.<br />
*'''удалять, если совпало больше''' - удалять,если количество совпадающих больше заданного. Если значение неположительное, то удаление не происходит.<br />
*'''счетчик очков''' - счетчик очков.<br />
== Добавляемые параметры ==<br />
[[Файл:add_obj.jpg|right]]<br />
<br />
[[Файл:+.png]]'''игра проиграна: изменить параметр (свойство) объекта''' - когда игра проиграна, изменить параметр объекта:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''свойство''' - параметр, который мы изменяем.<br />
:'''значение''' - новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''игра проиграна: изменить состояние объекта''' - когда игра проиграна, изменить/перевести объект в новое состояние:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''состояние''' - новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна по достигнутому значению: изменить параметр (свойство) объекта''' - когда игра выиграна, изменить параметр объекта:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''свойство''' - параметр, который мы изменяем.<br />
:'''значение''' - новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна по достигнутому значению: изменить состояние объекта''' - когда игра выиграна, изменить/перевести объект в новое состояние:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''состояние''' - новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна по набранным очкам: изменить параметр (свойство) объекта''' - когда игра выиграна, изменить параметр объекта:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''свойство''' - параметр, который мы изменяем.<br />
:'''значение''' - новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна по набранным очкам: изменить состояние объекта''' - когда игра выиграна, изменить/перевести объект в новое состояние:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''состояние''' - новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна (поле перекрашено): изменить параметр (свойство) объекта''' - когда игра выиграна изменить параметр объекта::<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''свойство''' - параметр, который мы изменяем.<br />
:'''значение''' - новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна (поле перекрашено): изменить состояние объекта''' - когда игра выиграна изменить перевести объект в новое состояние:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''состояние''' - новое состояние для объекта из предыдущего поля.<br />
<br />
== Пример ==<br />
<br />
[[Файл:list.jpg]]<br />
<br />
[[Файл:digitz.jpg]]<br />
<br />
<br />
[[Category:Game mechanic]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Digitz.jpg&diff=8483Файл:Digitz.jpg2016-10-25T10:26:51Z<p>Agritsenko: </p>
<hr />
<div></div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:List.jpg&diff=8482Файл:List.jpg2016-10-25T10:26:35Z<p>Agritsenko: </p>
<hr />
<div></div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Add_obj.jpg&diff=8481Файл:Add obj.jpg2016-10-25T10:25:55Z<p>Agritsenko: </p>
<hr />
<div></div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=Digitz&diff=8480Digitz2016-10-25T10:24:14Z<p>Agritsenko: /* Основные параметры и свойства */</p>
<hr />
<div>== Основные параметры и свойства ==<br />
*'''тип''' - тип объекта.<br />
*'''имя''' - имя объекта в дереве проекта. Может быть произвольным.<br />
*'''синхронизация''' - синхронизация между лейаутами.<br />
*'''положение''':<br />
**x - положение объекта по оси х. Горизонтальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены.<br />
**y - положение объекта по оси y. Вертикальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены. <br />
*'''размер''':<br />
**w - ширина объекта в пикселях.<br />
**h - высота объекта в пикселях.<br />
*'''модификаторы''':<br />
**alpha - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен).<br />
**blending - аlpha смешивание.<br />
**angle - угол поворота в градусах (0 - не повёрнут). Отсчитывается от оси x вниз. Вверх - идут отрицательные углы.<br />
**scale x - масштаб по оси x (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.).<br />
**scale y - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
*'''z''' - параметр порядка рисования объекта. Сначала рисуются объекты с большим z, а под ними с меньшим.<br />
*'''память''' - если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана).<br />
*'''размер ячейки''' - размер ячейки.<br />
*'''уровень''' - номер уровня.<br />
*'''файл уровня''' - имя файла с уровнями.<br />
*'''графика''':<br />
**фон ячейки - графический ресурс изображающий ячейку сетки игрового поля. 0ой кадр - отработанная ячейка,1ый кадр - нужно отработать один и раз и т.д. <br />
**достижимая ячейка - графический ресурс отображаемый поверх всех достижимых ячеек игрового поля от выбранной ячейки.<br />
**графика цифр - клип с картинками для цифр.<br />
*'''размер поля''':<br />
**столбцов - ширина игрового поля.<br />
**строк - высота игрового поля.<br />
*'''объекты анимации и управления''':<br />
**выделенной ячейки - анимация выделенной ячейки(объект)(у объекта состояния beg, idle. beg - запуск анимации, idle - остановка(сняли выделение, начали движение)).<br />
**при перемещении - анимация ячейки при перемещении(объект)((у объекта состояния beg, idle. beg - запуск анимации, idle - остановка(остановили движение))).<br />
**матчатся - анимация когда ячейки матчатся(объект)(у объекта состояния beg, idle. beg - запуск анимации).<br />
**новое значение - анимация, когда достигнуто новое значение(объект)(у объекта состояния beg, idle. beg - запуск анимации).<br />
**успешный ход - для разблокировки кнопки undo. Переходит в состояние beg при сделанном ходе, в состояние idle при нажатии кнопки undo.<br />
*'''шрифт''':<br />
**размер - размер шрифта в пикселях.<br />
**соотношение - соотношение текста к размеру ячейки.<br />
**цвет - цвет текста.<br />
*'''звуки''':<br />
**выбор - звуковой ресурс для проигрывания нажатия на ячейку. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
**неверный выбор - звуковой ресурс для проигрывания нажатия на неподходящую ячейку. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
**перестановка - звуковой ресурс для проигрывания перестановки ячеек. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Может отсутствовать.<br />
**слияние - звуковой ресурс для проигрывания события когда ячейки матчатся. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Может отсутствовать.<br />
*'''времена''':<br />
**пауза перед матчем - пауза перед матчем.<br />
**пауза перед закраской - пауза перед закраской ячейки.<br />
**достигнуто новое значение - время задержки после того, как достигнуто новое значение. Длительность анимации.<br />
*'''условия завершения и матчинга''':<br />
**сумма (digitz) - необходимая сумма для матчинга соседствующих цифр в digitz.<br />
**число (2048) - необходимое число для завершения в 2048.<br />
**необходимое кол-во очков - необходимая кол-во очков для завершения.<br />
*'''режим игры''':<br />
**2048 - два числа сливаются, если равны, digitz - несколько цифер в сумме должны давать заданное число.<br />
*'''вероятности досыпа''' - вероятности досыпа степеней двойки (2,4,8,...) для режима 2048. Последовательность чисел через запятую должна в сумме давать 100(%).<br />
*'''досыпать все''' - добрасывать в ходе игры все числа, что есть на поле.<br />
*'''досыпание при удачном ходе''' - осыпаем по формуле (этот параметр)*(количество свободных ячеек)/(количество занятых ячеек) при результативном ходе.<br />
*'''досыпание при неудачном ходе''' - досыпаем по формуле (этот параметр)*(количество свободных ячеек)/(количество занятых ячеек) при нерезультативном ходе.<br />
*'''формула (удачный ход)''' - использовать адаптивную формулу для определения количества досыпа (удачный ход).<br />
*'''формула (неудачный ход)''' - использовать адаптивную формулу для определения количества досыпа (неудачный ход).<br />
*'''минимум добавления''' - учитывается при включенном параметре адаптивной формулы. Если по формуле выходит меньше, добавляем это значение.<br />
*'''макс. значение в начале игры''' - максимальное значение при генерации поля. Учитывается в начале игры. <br />
*'''скорость перемещения числа''' - скорость перемещения числа пикс/сек.<br />
*'''заполненность поля''' - процент начальной заполненности поля.<br />
*'''минимальная заполненность поля''' - процент минимальной заполненности поля. Если свободных ячеек становится больше, автоматически происходит досыпание.<br />
*'''удалять значение''' - удалять из ячейки число, если значение больше заданного. Если значение отрицательное, то удаление не происходит.<br />
*'''удалять, если совпало больше''' - удалять,если количество совпадающих больше заданного. Если значение неположительное, то удаление не происходит.<br />
*'''счетчик очков''' - счетчик очков.<br />
== Добавляемые параметры ==<br />
[[Файл:add_obj.jpg|right]]<br />
<br />
[[Файл:+.png]]'''игра проиграна: изменить параметр (свойство) объекта''' - когда игра проиграна, изменить параметр объекта:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''свойство''' - параметр, который мы изменяем.<br />
:'''значение''' - новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''игра проиграна: изменить состояние объекта''' - когда игра проиграна, изменить/перевести объект в новое состояние:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''состояние''' - новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна по достигнутому значению: изменить параметр (свойство) объекта''' - когда игра выиграна, изменить параметр объекта:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''свойство''' - параметр, который мы изменяем.<br />
:'''значение''' - новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна по достигнутому значению: изменить состояние объекта''' - когда игра выиграна, изменить/перевести объект в новое состояние:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''состояние''' - новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна по набранным очкам: изменить параметр (свойство) объекта''' - когда игра выиграна, изменить параметр объекта:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''свойство''' - параметр, который мы изменяем.<br />
:'''значение''' - новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна по набранным очкам: изменить состояние объекта''' - когда игра выиграна, изменить/перевести объект в новое состояние:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''состояние''' - новое состояние для объекта из предыдущего поля.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна (поле перекрашено): изменить параметр (свойство) объекта''' - когда игра выиграна изменить параметр объекта::<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''свойство''' - параметр, который мы изменяем.<br />
:'''значение''' - новое значение параметра.<br />
<br />
<br />
[[Файл:+.png]]'''игра выиграна (поле перекрашено): изменить состояние объекта''' - когда игра выиграна изменить перевести объект в новое состояние:<br />
:'''объект''' - объект состояние, которого меняем.<br />
:'''состояние''' - новое состояние для объекта из предыдущего поля.<br />
<br />
== Пример ==<br />
<br />
[[Файл:list.jpg]]<br />
<br />
[[Файл:digitz.jpg]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=Digitz&diff=8479Digitz2016-10-25T09:50:24Z<p>Agritsenko: /* Основные параметры и свойства */</p>
<hr />
<div>== Основные параметры и свойства ==<br />
*'''тип''' - тип объекта.<br />
*'''имя''' - имя объекта в дереве проекта. Может быть произвольным.<br />
*'''синхронизация''' - синхронизация между лейаутами.<br />
*'''положение''':<br />
**x - положение объекта по оси х. Горизонтальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены.<br />
**y - положение объекта по оси y. Вертикальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены. <br />
*'''размер''':<br />
**w - ширина объекта в пикселях.<br />
**h - высота объекта в пикселях.<br />
*'''модификаторы''':<br />
**alpha - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен).<br />
**blending - аlpha смешивание.<br />
**angle - угол поворота в градусах (0 - не повёрнут). Отсчитывается от оси x вниз. Вверх - идут отрицательные углы.<br />
**scale x - масштаб по оси x (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.).<br />
**scale y - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
*'''z''' - параметр порядка рисования объекта. Сначала рисуются объекты с большим z, а под ними с меньшим.<br />
*'''память''' - если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана).<br />
*'''размер ячейки''' - размер ячейки.<br />
*'''уровень''' - номер уровня.<br />
*'''файл уровня''' - имя файла с уровнями.<br />
*'''графика''':<br />
**фон ячейки - графический ресурс изображающий ячейку сетки игрового поля. 0ой кадр - отработанная ячейка,1ый кадр - нужно отработать один и раз и т.д. <br />
**достижимая ячейка - графический ресурс отображаемый поверх всех достижимых ячеек игрового поля от выбранной ячейки.<br />
**графика цифр - клип с картинками для цифр.<br />
*'''размер поля''':<br />
**столбцов - ширина игрового поля.<br />
**строк - высота игрового поля.<br />
*'''объекты анимации и управления''':<br />
**выделенной ячейки - анимация выделенной ячейки(объект)(у объекта состояния beg, idle. beg - запуск анимации, idle - остановка(сняли выделение, начали движение)).<br />
**при перемещении - анимация ячейки при перемещении(объект)((у объекта состояния beg, idle. beg - запуск анимации, idle - остановка(остановили движение))).<br />
**матчатся - анимация когда ячейки матчатся(объект)(у объекта состояния beg, idle. beg - запуск анимации).<br />
**новое значение - анимация, когда достигнуто новое значение(объект)(у объекта состояния beg, idle. beg - запуск анимации).<br />
**успешный ход - для разблокировки кнопки undo. Переходит в состояние beg при сделанном ходе, в состояние idle при нажатии кнопки undo.<br />
*'''шрифт''':<br />
**размер - размер шрифта в пикселях.<br />
**соотношение - соотношение текста к размеру ячейки.<br />
**цвет - цвет текста.<br />
*'''звуки''':<br />
**выбор - звуковой ресурс для проигрывания нажатия на ячейку. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
**неверный выбор - звуковой ресурс для проигрывания нажатия на неподходящую ячейку. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
**перестановка - звуковой ресурс для проигрывания перестановки ячеек. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Может отсутствовать.<br />
**слияние - звуковой ресурс для проигрывания события когда ячейки матчатся. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Может отсутствовать.<br />
*'''времена''':<br />
**пауза перед матчем - пауза перед матчем.<br />
**пауза перед закраской - пауза перед закраской ячейки.<br />
**достигнуто новое значение - время задержки после того, как достигнуто новое значение. Длительность анимации.<br />
*'''условия завершения и матчинга''':<br />
**сумма (digitz) - необходимая сумма для матчинга соседствующих цифр в digitz.<br />
**число (2048) - необходимое число для завершения в 2048.<br />
**необходимое кол-во очков - необходимая кол-во очков для завершения.<br />
*'''режим игры''':<br />
**2048 - два числа сливаются, если равны, digitz - несколько цифер в сумме должны давать заданное число.<br />
*'''вероятности досыпа''' - вероятности досыпа степеней двойки (2,4,8,...) для режима 2048. Последовательность чисел через запятую должна в сумме давать 100(%).<br />
*'''досыпать все''' - добрасывать в ходе игры все числа, что есть на поле.<br />
*'''досыпание при удачном ходе''' - осыпаем по формуле (этот параметр)*(количество свободных ячеек)/(количество занятых ячеек) при результативном ходе.<br />
*'''досыпание при неудачном ходе''' - досыпаем по формуле (этот параметр)*(количество свободных ячеек)/(количество занятых ячеек) при нерезультативном ходе.<br />
*'''формула (удачный ход)''' - использовать адаптивную формулу для определения количества досыпа (удачный ход).<br />
*'''формула (неудачный ход)''' - использовать адаптивную формулу для определения количества досыпа (неудачный ход).<br />
*'''минимум добавления''' - учитывается при включенном параметре адаптивной формулы. Если по формуле выходит меньше, добавляем это значение.<br />
*'''макс. значение в начале игры''' - максимальное значение при генерации поля. Учитывается в начале игры. <br />
*'''скорость перемещения числа''' - скорость перемещения числа пикс/сек.<br />
*'''заполненность поля''' - процент начальной заполненности поля.<br />
*'''минимальная заполненность поля''' - процент минимальной заполненности поля. Если свободных ячеек становится больше, автоматически происходит досыпание.<br />
*'''удалять значение''' - удалять из ячейки число, если значение больше заданного. Если значение отрицательное, то удаление не происходит.<br />
*'''удалять, если совпало больше''' - удалять,если количество совпадающих больше заданного. Если значение неположительное, то удаление не происходит.<br />
*'''счетчик очков''' - счетчик очков.</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=Digitz&diff=8478Digitz2016-10-25T09:50:04Z<p>Agritsenko: /* Основные параметры и свойства */</p>
<hr />
<div>== Основные параметры и свойства ==<br />
*'''тип''' - тип объекта.<br />
*'''имя''' - имя объекта в дереве проекта. Может быть произвольным.<br />
*'''синхронизация''' - синхронизация между лейаутами.<br />
*'''положение''':<br />
**x - положение объекта по оси х. Горизонтальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены.<br />
**y - положение объекта по оси y. Вертикальная координата центра объекта (его точки пивота) в пикселях. Отсчитывается от точки пивота сцены. <br />
*'''размер''':<br />
**w - ширина объекта в пикселях.<br />
**h - высота объекта в пикселях.<br />
*'''модификаторы''':<br />
**alpha - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен).<br />
**blending - аlpha смешивание.<br />
**angle - угол поворота в градусах (0 - не повёрнут). Отсчитывается от оси x вниз. Вверх - идут отрицательные углы.<br />
**scale x - масштаб по оси x (1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.).<br />
**scale y - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.<br />
*'''z''' - параметр порядка рисования объекта. Сначала рисуются объекты с большим z, а под ними с меньшим.<br />
*'''память''' - если 1, то при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана).<br />
*'''размер ячейки''' - размер ячейки.<br />
*'''уровень''' - номер уровня.<br />
*'''файл уровня''' - имя файла с уровнями.<br />
*'''графика''':<br />
**фон ячейки - графический ресурс изображающий ячейку сетки игрового поля. 0ой кадр - отработанная ячейка,1ый кадр - нужно отработать один и раз и т.д. <br />
**достижимая ячейка - графический ресурс отображаемый поверх всех достижимых ячеек игрового поля от выбранной ячейки.<br />
**графика цифр - клип с картинками для цифр.<br />
*'''размер поля''':<br />
**столбцов - ширина игрового поля.<br />
**строк - высота игрового поля.<br />
*'''объекты анимации и управления''':<br />
**выделенной ячейки - анимация выделенной ячейки(объект)(у объекта состояния beg, idle. beg - запуск анимации, idle - остановка(сняли выделение, начали движение)).<br />
**при перемещении - анимация ячейки при перемещении(объект)((у объекта состояния beg, idle. beg - запуск анимации, idle - остановка(остановили движение))).<br />
**матчатся - анимация когда ячейки матчатся(объект)(у объекта состояния beg, idle. beg - запуск анимации).<br />
**новое значение - анимация, когда достигнуто новое значение(объект)(у объекта состояния beg, idle. beg - запуск анимации).<br />
**успешный ход - для разблокировки кнопки undo. Переходит в состояние beg при сделанном ходе, в состояние idle при нажатии кнопки undo.<br />
*'''шрифт''':<br />
**размер - размер шрифта в пикселях.<br />
**соотношение - соотношение текста к размеру ячейки.<br />
**цвет - цвет текста.<br />
*'''звуки''':<br />
**выбор - звуковой ресурс для проигрывания нажатия на ячейку. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
**неверный выбор - звуковой ресурс для проигрывания нажатия на неподходящую ячейку. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования).<br />
**перестановка - звуковой ресурс для проигрывания перестановки ячеек. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Может отсутствовать.<br />
**слияние - звуковой ресурс для проигрывания события когда ячейки матчатся. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Может отсутствовать.<br />
*'''времена''':<br />
**пауза перед матчем - пауза перед матчем.<br />
**пауза перед закраской - пауза перед закраской ячейки.<br />
**достигнуто новое значение - время задержки после того, как достигнуто новое значение. Длительность анимации.<br />
*'''условия завершения и матчинга''':<br />
**сумма (digitz) - необходимая сумма для матчинга соседствующих цифр в digitz.<br />
**число (2048) - необходимое число для завершения в 2048.<br />
**необходимое кол-во очков - необходимая кол-во очков для завершения.<br />
*'''режим игры''':<br />
**2048 - два числа сливаются, если равны, digitz - несколько цифер в сумме должны давать заданное число.<br />
*'''вероятности досыпа''' - вероятности досыпа степеней двойки (2,4,8,...) для режима 2048. Последовательность чисел через запятую должна в сумме давать 100(%).<br />
*'''досыпать все''' - добрасывать в ходе игры все числа, что есть на поле.<br />
*'''досыпание при удачном ходе''' - осыпаем по формуле (этот параметр)*(количество свободных ячеек)/(количество занятых ячеек) при результативном ходе.<br />
*'''досыпание при неудачном ходе''' - досыпаем по формуле (этот параметр)*(количество свободных ячеек)/(количество занятых ячеек) при нерезультативном ходе.<br />
*'''формула (удачный ход)''' - использовать адаптивную формулу для определения количества досыпа (удачный ход).<br />
*'''формула (неудачный ход)''' - использовать адаптивную формулу для определения количества досыпа (неудачный ход).<br />
*'''минимум добавления''' - учитывается при включенном параметре адаптивной формулы. Если по формуле выходит меньше, добавляем это значение.<br />
*'''макс. значение в начале игры''' - максимальное значение при генерации поля. Учитывается в начале игры. <br />
*'''скорость перемещения числа''' - скорость перемещения числа пикс/сек.<br />
*'''заполненность поля''' - процент начальной заполненности поля.<br />
*'''минимальная заполненность поля''' - процент минимальной заполненности поля. Если свободных ячеек становится больше, автоматически происходит досыпание.<br />
*'''удалять значение''' - удалять из ячейки число, если значение больше заданного. Если значение отрицательное, то удаление не происходит.<br />
*'''удалять, если совпало больше''' - удалять,если количество совпадающих больше заданного. Если значение неположительное, то удаление не происходит.<br />
*'''счетчик очков''' - счетчик очков.<br />
*'''тип''' -<br />
*'''тип''' -</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&diff=8475Создание игры «Hidden Object Game»2016-10-20T13:20:38Z<p>Agritsenko: /* ПРОГРЕСС */</p>
<hr />
<div>{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 6]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 8]]<br />
|}<br />
----<br />
{{TOC right}}<br />
<br />
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.<br />
<br />
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. <br />
<br />
== Создание экрана и сцены в игровом проекте ==<br />
<br />
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]<br />
В экране Lesson_7 создадим новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])<br />
<br />
* Для корректной работы на мобильном устройстве необходимо настроить параметр.<br />
<br />
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».<br />
<br />
Создадим папку Lesson_7 в базе текстовых описаний с помощью TextEditor. Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение Word, Sentence-En, добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип "icon1". Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].<br />
<br />
== Общая настройка объектов ==<br />
<br />
1. Для всех поисковых графических объектов изменить тип с image на [[HiddenObject]].<br />
<br />
[[Файл:Lesson7_hidden_obj.png]]<br />
<br />
2. Создать специальные объекты [[Table]] и [[HiddenList]]. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**<br />
<br />
[[Файл:07 5.png]]<br />
<br />
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**<br />
<br />
[[Файл:Lesson7_HiddenList.png]]<br />
<br />
<br />
'''**''' Имена для специальных объектов могут использоваться любые.<br />
<br />
== Детальная настройка объектов ==<br />
<br />
'''1. Описание HiddenObject.'''<br />
<br />
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]<br />
<br />
Необходимо выбрать используемый объект с именем HOL (тип HiddenObjectList) в поле list.<br />
<br />
<br />
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;<br />
<br />
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);<br />
<br />
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;<br />
<br />
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);<br />
<br />
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.<br />
<br />
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.<br />
<br />
<br />
<br />
<br />
'''2. Описание HiddenObjectList.'''<br />
<br />
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле "объектов"). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле "количество".<br />
<br />
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они "перебивали" общие значения для всех.<br />
<br />
<br />
Подготовка спрятанных объектов: <br />
<br />
''num'' (поле "объектов") – максимальное количество объектов, участвующие в поиске. (int)<br />
<br />
''hide'' (поле "прятать") – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) <br />
<br />
Визуальные параметры списка: <br />
<br />
''table'' (поле "таблица") – идентификатор объекта Table. (objid)<br />
<br />
''kind'' (внешний вид - поле "тип списка") – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)<br />
<br />
''cross'' (внешний вид - поле "вычеркнуть") – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе "зачеркивается".(int).<br />
<br />
<br />
<br />
3. Описание Table<br />
<br />
[[Файл:07 9.png]]<br />
<br />
<br />
6. Параметры, общие для всех спрятанных объектов:<br />
<br />
''die'' – тип исчезания при удачном клике на объект (если нет актера) (int): <br />
<br />
0: просто исчезает;<br />
<br />
1: летит к пункту с описанием в списке HiddenList;<br />
<br />
2: улетает в случайном направлении;<br />
<br />
3: улетает к заданным координатам (fx, fy).<br />
<br />
vm - скорость движения при полете к списку предметов после клика в px/sec (float) <br />
<br />
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) <br />
<br />
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) <br />
<br />
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. <br />
<br />
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) <br />
<br />
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)<br />
<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -> id игры; для теста заполним его любой строкой).<br />
</blockquote><br />
<br />
== Упражнения ==<br />
<br />
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.<br />
<br />
2. Создать новую сцену (с названием stg_7_1).<br />
<br />
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).<br />
<br />
4. Вставить скопированые объекты в новую сцену stg_7_1.<br />
<br />
[[Файл:07 11.png]]<br />
<br />
5. В новой сцене:<br />
<br />
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;<br />
<br />
b) разместить на местах предназначенных для их «Прятанья»;<br />
<br />
c) добавить текстовое описание в TextEditor;<br />
<br />
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.<br />
<br />
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.<br />
<br />
== Упражнение № 6 ==<br />
Экран lesson_7 необходимо модифицировать в полноценный уровень.<br />
<br />
Для этого первый экран дополняем 2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]), машиной-комбо3 ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.<br />
<br />
[[Файл:1.png]] <br />
<br />
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) отображает уровень прохождения игры.<br />
<br />
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» ([[hiddenList]]).<br />
<br />
== СЧЕТЧИК ==<br />
<br />
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. <br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её - это просто).<br />
</blockquote><br />
<br />
[[Файл:Coun (5).png]] [[Файл:Coun (6).png]] [[Файл:Coun (7).png]] [[Файл:Coun (8).png]] [[Файл:Coun (9).png]] [[Файл:Coun_(10).png]] [[Файл:Coun (11).png]] [[Файл:Coun (1).png]] [[Файл:Coun (2).png]] [[Файл:Coun (3).png]] [[Файл:Coun (4).png]]<br />
<br />
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель перетаскиваем в отдельную графу без анимации. Настройки для счетчика:<br />
<br />
[[Файл:243.png]] [[Файл:33.png]]<br />
<br />
== ТАЙМЕР ==<br />
<br />
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). <br />
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие. Настройки для таймера:<br />
<br />
[[Файл:444.png]]<br />
<br />
== ПРОГРЕСС ==<br />
<br />
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходить уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую. <br />
Настройки для прогресса : <br />
<br />
[[Файл:555.png]]<br />
<br />
Графика для Progress: [[Файл:666.png]]<br />
<br />
Настройки для машины-Combo3c :<br />
<br />
[[Файл:777.png]]<br />
<br />
Во всех HiddenObject изменить параметры и свойства объекта combo3c [[Файл:1818.png]]<br />
<br />
Настройки для машины-блокатора «ban_H» (machine) :<br />
<br />
[[Файл:9.png]]<br />
<br />
Настройки для hiddenList:<br />
<br />
[[Файл:1010.png]] [[Файл:1011.png]]<br />
<br />
Группа - звезды combo num =1 Количество быстро найденных объектов, нужное для получения звезды Combo combo time = 3000 Интервал между кликами, считающимися быстрыми для Combo accuracy = 0,85 Точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные) лимит ложных кликов =5 Лимит ложных кликов. Формула расчета количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.<br />
<br />
<br />
Для HiddenList и Counter пункт "сохранить в профиль" должен совпадать. Если в HiddenList указано "глобально", то и в Counter также необходимо установить "глобально".<br />
<br />
<br />
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно<br />
должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.<br />
<br />
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]] <br />
<br />
Графика для Rectangle black : [[Файл:0101.png]]<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Графика для Rectangle black используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. <br />
</blockquote><br />
<br />
[[Файл:1012.png]] [[Файл:0102.png]] <br />
<br />
<br />
Далее копируем Rectangle black и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!).<br />
<br />
<br />
В свойствах счетчиков необходимо прописать уровень!<br />
<br />
1) счетчик 7_4_1 — игровые очки;<br />
<br />
уровень: last_game.score30_total<br />
<br />
2) счетчик 7_4_2 — бонус за время;<br />
<br />
уровень: last_game.score30_time<br />
<br />
3) счетчик 7_4_3 — бонус за аккуратность;<br />
<br />
уровень: last_game.score30_accuracy<br />
<br />
4) счетчик 7_4_4 — бонус за комбо;<br />
<br />
уровень: last_game.score30_time<br />
<br />
5) счетчик 7_4_5 — очки за уровень;<br />
<br />
уровень: last_game.score30_level<br />
<br />
<br />
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).<br />
<br />
<br />
Настройки для машины — star1 <br />
(проверка в опциях параметра last_game.last_star_accuracy0, <br />
last_game.last_star_time0, )<br />
<br />
[[Файл:0303.png]]<br />
<br />
Настройки для машины — star2 <br />
(если параметр accuracy=0)<br />
<br />
[[Файл:0304.png]]<br />
<br />
Настройки для машины — star3 <br />
(если игра пройдена за указанное время)<br />
<br />
[[Файл:0305.png]]<br />
<br />
Настройки для машины — win<br />
<br />
[[Файл:0306.png]]<br />
<br />
<br />
Машина win считывает «read» показания счетчика и запускает star1 если игра пройдена.<br />
<br />
Также создаем кнопку close (button), которая должна закрывать окно результатов. Добавляем "изменить состояние объекта"; объект win, состояние close. <br />
<br />
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
----<br />
{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 5]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 7]]<br />
|}<br />
<br />
[[Category:Learning]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&diff=8474Создание игры «Hidden Object Game»2016-10-20T13:19:16Z<p>Agritsenko: /* ПРОГРЕСС */</p>
<hr />
<div>{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 6]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 8]]<br />
|}<br />
----<br />
{{TOC right}}<br />
<br />
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.<br />
<br />
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. <br />
<br />
== Создание экрана и сцены в игровом проекте ==<br />
<br />
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]<br />
В экране Lesson_7 создадим новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])<br />
<br />
* Для корректной работы на мобильном устройстве необходимо настроить параметр.<br />
<br />
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».<br />
<br />
Создадим папку Lesson_7 в базе текстовых описаний с помощью TextEditor. Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение Word, Sentence-En, добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип "icon1". Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].<br />
<br />
== Общая настройка объектов ==<br />
<br />
1. Для всех поисковых графических объектов изменить тип с image на [[HiddenObject]].<br />
<br />
[[Файл:Lesson7_hidden_obj.png]]<br />
<br />
2. Создать специальные объекты [[Table]] и [[HiddenList]]. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**<br />
<br />
[[Файл:07 5.png]]<br />
<br />
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**<br />
<br />
[[Файл:Lesson7_HiddenList.png]]<br />
<br />
<br />
'''**''' Имена для специальных объектов могут использоваться любые.<br />
<br />
== Детальная настройка объектов ==<br />
<br />
'''1. Описание HiddenObject.'''<br />
<br />
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]<br />
<br />
Необходимо выбрать используемый объект с именем HOL (тип HiddenObjectList) в поле list.<br />
<br />
<br />
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;<br />
<br />
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);<br />
<br />
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;<br />
<br />
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);<br />
<br />
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.<br />
<br />
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.<br />
<br />
<br />
<br />
<br />
'''2. Описание HiddenObjectList.'''<br />
<br />
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле "объектов"). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле "количество".<br />
<br />
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они "перебивали" общие значения для всех.<br />
<br />
<br />
Подготовка спрятанных объектов: <br />
<br />
''num'' (поле "объектов") – максимальное количество объектов, участвующие в поиске. (int)<br />
<br />
''hide'' (поле "прятать") – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) <br />
<br />
Визуальные параметры списка: <br />
<br />
''table'' (поле "таблица") – идентификатор объекта Table. (objid)<br />
<br />
''kind'' (внешний вид - поле "тип списка") – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)<br />
<br />
''cross'' (внешний вид - поле "вычеркнуть") – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе "зачеркивается".(int).<br />
<br />
<br />
<br />
3. Описание Table<br />
<br />
[[Файл:07 9.png]]<br />
<br />
<br />
6. Параметры, общие для всех спрятанных объектов:<br />
<br />
''die'' – тип исчезания при удачном клике на объект (если нет актера) (int): <br />
<br />
0: просто исчезает;<br />
<br />
1: летит к пункту с описанием в списке HiddenList;<br />
<br />
2: улетает в случайном направлении;<br />
<br />
3: улетает к заданным координатам (fx, fy).<br />
<br />
vm - скорость движения при полете к списку предметов после клика в px/sec (float) <br />
<br />
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) <br />
<br />
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) <br />
<br />
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. <br />
<br />
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) <br />
<br />
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)<br />
<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -> id игры; для теста заполним его любой строкой).<br />
</blockquote><br />
<br />
== Упражнения ==<br />
<br />
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.<br />
<br />
2. Создать новую сцену (с названием stg_7_1).<br />
<br />
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).<br />
<br />
4. Вставить скопированые объекты в новую сцену stg_7_1.<br />
<br />
[[Файл:07 11.png]]<br />
<br />
5. В новой сцене:<br />
<br />
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;<br />
<br />
b) разместить на местах предназначенных для их «Прятанья»;<br />
<br />
c) добавить текстовое описание в TextEditor;<br />
<br />
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.<br />
<br />
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.<br />
<br />
== Упражнение № 6 ==<br />
Экран lesson_7 необходимо модифицировать в полноценный уровень.<br />
<br />
Для этого первый экран дополняем 2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]), машиной-комбо3 ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.<br />
<br />
[[Файл:1.png]] <br />
<br />
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) отображает уровень прохождения игры.<br />
<br />
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» ([[hiddenList]]).<br />
<br />
== СЧЕТЧИК ==<br />
<br />
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. <br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её - это просто).<br />
</blockquote><br />
<br />
[[Файл:Coun (5).png]] [[Файл:Coun (6).png]] [[Файл:Coun (7).png]] [[Файл:Coun (8).png]] [[Файл:Coun (9).png]] [[Файл:Coun_(10).png]] [[Файл:Coun (11).png]] [[Файл:Coun (1).png]] [[Файл:Coun (2).png]] [[Файл:Coun (3).png]] [[Файл:Coun (4).png]]<br />
<br />
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель перетаскиваем в отдельную графу без анимации. Настройки для счетчика:<br />
<br />
[[Файл:243.png]] [[Файл:33.png]]<br />
<br />
== ТАЙМЕР ==<br />
<br />
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). <br />
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие. Настройки для таймера:<br />
<br />
[[Файл:444.png]]<br />
<br />
== ПРОГРЕСС ==<br />
<br />
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходить уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую. <br />
Настройки для прогресса : <br />
<br />
[[Файл:555.png]]<br />
<br />
Графика для Progress: [[Файл:666.png]]<br />
<br />
Настройки для машины-Combo3c :<br />
<br />
[[Файл:777.png]]<br />
<br />
Во всех HiddenObject изменить параметры и свойства объекта combo3c [[Файл:1818.png]]<br />
<br />
Настройки для машины-блокатора «ban_H» (machine) :<br />
<br />
[[Файл:9.png]]<br />
<br />
Настройки для hiddenList:<br />
<br />
[[Файл:1010.png]] [[Файл:1011.png]]<br />
<br />
Группа - звезды combo num =1 Количество быстро найденных объектов, нужное для получения звезды Combo combo time = 3000 Интервал между кликами, считающимися быстрыми для Combo accuracy = 0,85 Точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные) лимит ложных кликов =5 Лимит ложных кликов. Формула расчета количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.<br />
<br />
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно<br />
должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.<br />
<br />
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]] <br />
<br />
Графика для Rectangle black : [[Файл:0101.png]]<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Графика для Rectangle black используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. <br />
</blockquote><br />
<br />
[[Файл:1012.png]] [[Файл:0102.png]] <br />
<br />
<br />
Далее копируем Rectangle black и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!).<br />
<br />
<br />
В свойствах счетчиков необходимо прописать уровень!<br />
<br />
1) счетчик 7_4_1 — игровые очки;<br />
<br />
уровень: last_game.score30_total<br />
<br />
2) счетчик 7_4_2 — бонус за время;<br />
<br />
уровень: last_game.score30_time<br />
<br />
3) счетчик 7_4_3 — бонус за аккуратность;<br />
<br />
уровень: last_game.score30_accuracy<br />
<br />
4) счетчик 7_4_4 — бонус за комбо;<br />
<br />
уровень: last_game.score30_time<br />
<br />
5) счетчик 7_4_5 — очки за уровень;<br />
<br />
уровень: last_game.score30_level<br />
<br />
<br />
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).<br />
<br />
<br />
Настройки для машины — star1 <br />
(проверка в опциях параметра last_game.last_star_accuracy0, <br />
last_game.last_star_time0, )<br />
<br />
[[Файл:0303.png]]<br />
<br />
Настройки для машины — star2 <br />
(если параметр accuracy=0)<br />
<br />
[[Файл:0304.png]]<br />
<br />
Настройки для машины — star3 <br />
(если игра пройдена за указанное время)<br />
<br />
[[Файл:0305.png]]<br />
<br />
Настройки для машины — win<br />
<br />
[[Файл:0306.png]]<br />
<br />
<br />
Машина win считывает «read» показания счетчика и запускает star1 если игра пройдена.<br />
<br />
Также создаем кнопку close (button), которая должна закрывать окно результатов. Добавляем "изменить состояние объекта"; объект win, состояние close. <br />
<br />
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
----<br />
{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 5]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 7]]<br />
|}<br />
<br />
[[Category:Learning]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&diff=8473Создание игры «Hidden Object Game»2016-10-20T13:18:55Z<p>Agritsenko: /* ПРОГРЕСС */</p>
<hr />
<div>{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 6]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 8]]<br />
|}<br />
----<br />
{{TOC right}}<br />
<br />
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.<br />
<br />
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. <br />
<br />
== Создание экрана и сцены в игровом проекте ==<br />
<br />
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]<br />
В экране Lesson_7 создадим новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])<br />
<br />
* Для корректной работы на мобильном устройстве необходимо настроить параметр.<br />
<br />
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».<br />
<br />
Создадим папку Lesson_7 в базе текстовых описаний с помощью TextEditor. Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение Word, Sentence-En, добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип "icon1". Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].<br />
<br />
== Общая настройка объектов ==<br />
<br />
1. Для всех поисковых графических объектов изменить тип с image на [[HiddenObject]].<br />
<br />
[[Файл:Lesson7_hidden_obj.png]]<br />
<br />
2. Создать специальные объекты [[Table]] и [[HiddenList]]. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**<br />
<br />
[[Файл:07 5.png]]<br />
<br />
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**<br />
<br />
[[Файл:Lesson7_HiddenList.png]]<br />
<br />
<br />
'''**''' Имена для специальных объектов могут использоваться любые.<br />
<br />
== Детальная настройка объектов ==<br />
<br />
'''1. Описание HiddenObject.'''<br />
<br />
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]<br />
<br />
Необходимо выбрать используемый объект с именем HOL (тип HiddenObjectList) в поле list.<br />
<br />
<br />
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;<br />
<br />
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);<br />
<br />
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;<br />
<br />
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);<br />
<br />
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.<br />
<br />
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.<br />
<br />
<br />
<br />
<br />
'''2. Описание HiddenObjectList.'''<br />
<br />
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле "объектов"). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле "количество".<br />
<br />
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они "перебивали" общие значения для всех.<br />
<br />
<br />
Подготовка спрятанных объектов: <br />
<br />
''num'' (поле "объектов") – максимальное количество объектов, участвующие в поиске. (int)<br />
<br />
''hide'' (поле "прятать") – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) <br />
<br />
Визуальные параметры списка: <br />
<br />
''table'' (поле "таблица") – идентификатор объекта Table. (objid)<br />
<br />
''kind'' (внешний вид - поле "тип списка") – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)<br />
<br />
''cross'' (внешний вид - поле "вычеркнуть") – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе "зачеркивается".(int).<br />
<br />
<br />
<br />
3. Описание Table<br />
<br />
[[Файл:07 9.png]]<br />
<br />
<br />
6. Параметры, общие для всех спрятанных объектов:<br />
<br />
''die'' – тип исчезания при удачном клике на объект (если нет актера) (int): <br />
<br />
0: просто исчезает;<br />
<br />
1: летит к пункту с описанием в списке HiddenList;<br />
<br />
2: улетает в случайном направлении;<br />
<br />
3: улетает к заданным координатам (fx, fy).<br />
<br />
vm - скорость движения при полете к списку предметов после клика в px/sec (float) <br />
<br />
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) <br />
<br />
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) <br />
<br />
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. <br />
<br />
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) <br />
<br />
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)<br />
<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -> id игры; для теста заполним его любой строкой).<br />
</blockquote><br />
<br />
== Упражнения ==<br />
<br />
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.<br />
<br />
2. Создать новую сцену (с названием stg_7_1).<br />
<br />
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).<br />
<br />
4. Вставить скопированые объекты в новую сцену stg_7_1.<br />
<br />
[[Файл:07 11.png]]<br />
<br />
5. В новой сцене:<br />
<br />
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;<br />
<br />
b) разместить на местах предназначенных для их «Прятанья»;<br />
<br />
c) добавить текстовое описание в TextEditor;<br />
<br />
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.<br />
<br />
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.<br />
<br />
== Упражнение № 6 ==<br />
Экран lesson_7 необходимо модифицировать в полноценный уровень.<br />
<br />
Для этого первый экран дополняем 2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]), машиной-комбо3 ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.<br />
<br />
[[Файл:1.png]] <br />
<br />
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) отображает уровень прохождения игры.<br />
<br />
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» ([[hiddenList]]).<br />
<br />
== СЧЕТЧИК ==<br />
<br />
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. <br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её - это просто).<br />
</blockquote><br />
<br />
[[Файл:Coun (5).png]] [[Файл:Coun (6).png]] [[Файл:Coun (7).png]] [[Файл:Coun (8).png]] [[Файл:Coun (9).png]] [[Файл:Coun_(10).png]] [[Файл:Coun (11).png]] [[Файл:Coun (1).png]] [[Файл:Coun (2).png]] [[Файл:Coun (3).png]] [[Файл:Coun (4).png]]<br />
<br />
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель перетаскиваем в отдельную графу без анимации. Настройки для счетчика:<br />
<br />
[[Файл:243.png]] [[Файл:33.png]]<br />
<br />
== ТАЙМЕР ==<br />
<br />
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). <br />
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие. Настройки для таймера:<br />
<br />
[[Файл:444.png]]<br />
<br />
== ПРОГРЕСС ==<br />
<br />
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходить уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую. <br />
Настройки для прогресса : <br />
<br />
[[Файл:555.png]]<br />
<br />
Графика для Progress: [[Файл:666.png]]<br />
<br />
Настройки для машины-Combo3c :<br />
<br />
[[Файл:777.png]]<br />
<br />
Во всех HiddenObject изменить параметры и свойства объекта combo3c [[Файл:1818.png]]<br />
<br />
Настройки для машины-блокатора «ban_H» (machine) :<br />
<br />
[[Файл:9.png]]<br />
<br />
Настройки для hiddenList:<br />
<br />
[[Файл:1010.png]] [[Файл:1011.png]]<br />
<br />
Группа - звезды combo num =1 Количество быстро найденных объектов, нужное для получения звезды Combo combo time = 3000 Интервал между кликами, считающимися быстрыми для Combo accuracy = 0,85 Точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные) лимит ложных кликов =5 Лимит ложных кликов. Формула расчета количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.<br />
<br />
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно<br />
должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.<br />
<br />
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]] <br />
<br />
Графика для Rectangle black : [[Файл:0101.png]]<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Графика для Rectangle black используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. <br />
</blockquote><br />
<br />
[[Файл:1012.png]] [[Файл:0102.png]] <br />
<br />
Далее копируем Rectangle black и делаем подобъектом блокатора ban_H, а также меняем размеры rectangle black (устанавливаем не нулевые!).<br />
<br />
В свойствах счетчиков необходимо прописать уровень!<br />
<br />
1) счетчик 7_4_1 — игровые очки;<br />
<br />
уровень: last_game.score30_total<br />
<br />
2) счетчик 7_4_2 — бонус за время;<br />
<br />
уровень: last_game.score30_time<br />
<br />
3) счетчик 7_4_3 — бонус за аккуратность;<br />
<br />
уровень: last_game.score30_accuracy<br />
<br />
4) счетчик 7_4_4 — бонус за комбо;<br />
<br />
уровень: last_game.score30_time<br />
<br />
5) счетчик 7_4_5 — очки за уровень;<br />
<br />
уровень: last_game.score30_level<br />
<br />
<br />
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).<br />
<br />
<br />
Настройки для машины — star1 <br />
(проверка в опциях параметра last_game.last_star_accuracy0, <br />
last_game.last_star_time0, )<br />
<br />
[[Файл:0303.png]]<br />
<br />
Настройки для машины — star2 <br />
(если параметр accuracy=0)<br />
<br />
[[Файл:0304.png]]<br />
<br />
Настройки для машины — star3 <br />
(если игра пройдена за указанное время)<br />
<br />
[[Файл:0305.png]]<br />
<br />
Настройки для машины — win<br />
<br />
[[Файл:0306.png]]<br />
<br />
<br />
Машина win считывает «read» показания счетчика и запускает star1 если игра пройдена.<br />
<br />
Также создаем кнопку close (button), которая должна закрывать окно результатов. Добавляем "изменить состояние объекта"; объект win, состояние close. <br />
<br />
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
----<br />
{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 5]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 7]]<br />
|}<br />
<br />
[[Category:Learning]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&diff=8472Создание игры «Hidden Object Game»2016-10-20T13:17:37Z<p>Agritsenko: /* ПРОГРЕСС */</p>
<hr />
<div>{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 6]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 8]]<br />
|}<br />
----<br />
{{TOC right}}<br />
<br />
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.<br />
<br />
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. <br />
<br />
== Создание экрана и сцены в игровом проекте ==<br />
<br />
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]<br />
В экране Lesson_7 создадим новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])<br />
<br />
* Для корректной работы на мобильном устройстве необходимо настроить параметр.<br />
<br />
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».<br />
<br />
Создадим папку Lesson_7 в базе текстовых описаний с помощью TextEditor. Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение Word, Sentence-En, добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип "icon1". Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].<br />
<br />
== Общая настройка объектов ==<br />
<br />
1. Для всех поисковых графических объектов изменить тип с image на [[HiddenObject]].<br />
<br />
[[Файл:Lesson7_hidden_obj.png]]<br />
<br />
2. Создать специальные объекты [[Table]] и [[HiddenList]]. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**<br />
<br />
[[Файл:07 5.png]]<br />
<br />
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**<br />
<br />
[[Файл:Lesson7_HiddenList.png]]<br />
<br />
<br />
'''**''' Имена для специальных объектов могут использоваться любые.<br />
<br />
== Детальная настройка объектов ==<br />
<br />
'''1. Описание HiddenObject.'''<br />
<br />
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]<br />
<br />
Необходимо выбрать используемый объект с именем HOL (тип HiddenObjectList) в поле list.<br />
<br />
<br />
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;<br />
<br />
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);<br />
<br />
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;<br />
<br />
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);<br />
<br />
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.<br />
<br />
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.<br />
<br />
<br />
<br />
<br />
'''2. Описание HiddenObjectList.'''<br />
<br />
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле "объектов"). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле "количество".<br />
<br />
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они "перебивали" общие значения для всех.<br />
<br />
<br />
Подготовка спрятанных объектов: <br />
<br />
''num'' (поле "объектов") – максимальное количество объектов, участвующие в поиске. (int)<br />
<br />
''hide'' (поле "прятать") – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) <br />
<br />
Визуальные параметры списка: <br />
<br />
''table'' (поле "таблица") – идентификатор объекта Table. (objid)<br />
<br />
''kind'' (внешний вид - поле "тип списка") – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)<br />
<br />
''cross'' (внешний вид - поле "вычеркнуть") – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе "зачеркивается".(int).<br />
<br />
<br />
<br />
3. Описание Table<br />
<br />
[[Файл:07 9.png]]<br />
<br />
<br />
6. Параметры, общие для всех спрятанных объектов:<br />
<br />
''die'' – тип исчезания при удачном клике на объект (если нет актера) (int): <br />
<br />
0: просто исчезает;<br />
<br />
1: летит к пункту с описанием в списке HiddenList;<br />
<br />
2: улетает в случайном направлении;<br />
<br />
3: улетает к заданным координатам (fx, fy).<br />
<br />
vm - скорость движения при полете к списку предметов после клика в px/sec (float) <br />
<br />
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) <br />
<br />
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) <br />
<br />
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. <br />
<br />
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) <br />
<br />
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)<br />
<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -> id игры; для теста заполним его любой строкой).<br />
</blockquote><br />
<br />
== Упражнения ==<br />
<br />
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.<br />
<br />
2. Создать новую сцену (с названием stg_7_1).<br />
<br />
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).<br />
<br />
4. Вставить скопированые объекты в новую сцену stg_7_1.<br />
<br />
[[Файл:07 11.png]]<br />
<br />
5. В новой сцене:<br />
<br />
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;<br />
<br />
b) разместить на местах предназначенных для их «Прятанья»;<br />
<br />
c) добавить текстовое описание в TextEditor;<br />
<br />
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.<br />
<br />
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.<br />
<br />
== Упражнение № 6 ==<br />
Экран lesson_7 необходимо модифицировать в полноценный уровень.<br />
<br />
Для этого первый экран дополняем 2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]), машиной-комбо3 ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.<br />
<br />
[[Файл:1.png]] <br />
<br />
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) отображает уровень прохождения игры.<br />
<br />
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» ([[hiddenList]]).<br />
<br />
== СЧЕТЧИК ==<br />
<br />
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. <br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её - это просто).<br />
</blockquote><br />
<br />
[[Файл:Coun (5).png]] [[Файл:Coun (6).png]] [[Файл:Coun (7).png]] [[Файл:Coun (8).png]] [[Файл:Coun (9).png]] [[Файл:Coun_(10).png]] [[Файл:Coun (11).png]] [[Файл:Coun (1).png]] [[Файл:Coun (2).png]] [[Файл:Coun (3).png]] [[Файл:Coun (4).png]]<br />
<br />
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель перетаскиваем в отдельную графу без анимации. Настройки для счетчика:<br />
<br />
[[Файл:243.png]] [[Файл:33.png]]<br />
<br />
== ТАЙМЕР ==<br />
<br />
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). <br />
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие. Настройки для таймера:<br />
<br />
[[Файл:444.png]]<br />
<br />
== ПРОГРЕСС ==<br />
<br />
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходить уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую. <br />
Настройки для прогресса : <br />
<br />
[[Файл:555.png]]<br />
<br />
Графика для Progress: [[Файл:666.png]]<br />
<br />
Настройки для машины-Combo3c :<br />
<br />
[[Файл:777.png]]<br />
<br />
Во всех HiddenObject изменить параметры и свойства объекта combo3c [[Файл:1818.png]]<br />
<br />
Настройки для машины-блокатора «ban_H» (machine) :<br />
<br />
[[Файл:9.png]]<br />
<br />
Настройки для hiddenList:<br />
<br />
[[Файл:1010.png]] [[Файл:1011.png]]<br />
<br />
Группа - звезды combo num =1 Количество быстро найденных объектов, нужное для получения звезды Combo combo time = 3000 Интервал между кликами, считающимися быстрыми для Combo accuracy = 0,85 Точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные) лимит ложных кликов =5 Лимит ложных кликов. Формула расчета количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.<br />
<br />
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно<br />
должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.<br />
<br />
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]] <br />
<br />
Графика для Rectangle black : [[Файл:0101.png]]<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Графика для Rectangle black используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. <br />
</blockquote><br />
<br />
[[Файл:1012.png]] [[Файл:0102.png]] <br />
<br />
<br />
В свойствах счетчиков необходимо прописать уровень!<br />
<br />
1) счетчик 7_4_1 — игровые очки;<br />
<br />
уровень: last_game.score30_total<br />
<br />
2) счетчик 7_4_2 — бонус за время;<br />
<br />
уровень: last_game.score30_time<br />
<br />
3) счетчик 7_4_3 — бонус за аккуратность;<br />
<br />
уровень: last_game.score30_accuracy<br />
<br />
4) счетчик 7_4_4 — бонус за комбо;<br />
<br />
уровень: last_game.score30_time<br />
<br />
5) счетчик 7_4_5 — очки за уровень;<br />
<br />
уровень: last_game.score30_level<br />
<br />
<br />
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).<br />
<br />
<br />
Настройки для машины — star1 <br />
(проверка в опциях параметра last_game.last_star_accuracy0, <br />
last_game.last_star_time0, )<br />
<br />
[[Файл:0303.png]]<br />
<br />
Настройки для машины — star2 <br />
(если параметр accuracy=0)<br />
<br />
[[Файл:0304.png]]<br />
<br />
Настройки для машины — star3 <br />
(если игра пройдена за указанное время)<br />
<br />
[[Файл:0305.png]]<br />
<br />
Настройки для машины — win<br />
<br />
[[Файл:0306.png]]<br />
<br />
<br />
Машина win считывает «read» показания счетчика и запускает star1 если игра пройдена.<br />
<br />
Также создаем кнопку close (button), которая должна закрывать окно результатов. Добавляем "изменить состояние объекта"; объект win, состояние close. <br />
<br />
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
----<br />
{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 5]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 7]]<br />
|}<br />
<br />
[[Category:Learning]]</div>Agritsenkohttps://wiki.appsalutecreator.com/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B3%D1%80%D1%8B_%C2%ABHidden_Object_Game%C2%BB&diff=8471Создание игры «Hidden Object Game»2016-10-20T13:09:21Z<p>Agritsenko: /* ПРОГРЕСС */</p>
<hr />
<div>{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 6]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 8]]<br />
|}<br />
----<br />
{{TOC right}}<br />
<br />
'''Цель:''' Изучить настройки объектов [[HiddenList]], [[HiddenObject]] и [[Table]] для типа механики Hidden Object Game на базе создания уровня из игры Travel.<br />
<br />
'''Задача:''' Создать уровень игры содержащей 10 поисковых объектов расположенных на одном бэкграунде (фоне). При инициализации сцены обеспечить размещение 5 объектов для поиска. <br />
<br />
== Создание экрана и сцены в игровом проекте ==<br />
<br />
Откроем проект lessons. Создадим экран Lesson_7. [[Файл:Lesson7_textbase.png|right]]<br />
В экране Lesson_7 создадим новую сцену* stg_7 с разрешением 960*640 (по умолчанию), в которую (через ResourcesEditor) добавим графические ресурсы из папки Lesson_7. (см. подготовка к работе [[Создание проекта]])<br />
<br />
* Для корректной работы на мобильном устройстве необходимо настроить параметр.<br />
<br />
* Графические объекты должны разместиться точно на местах предназначенных для их «Прятанья».<br />
<br />
Создадим папку Lesson_7 в базе текстовых описаний с помощью TextEditor. Добавим в неё 10 текстовых записей, соответствующих именам поисковых объектов. Заполним для каждой текстовой записи значение Word, Sentence-En, добавим графическое отображение поискового объекта. Сделать это можно вручную, перетащив картинку соответствующего объекта из редактора ресурсов и, по нажатию на картинке правой кнопкой мыши, выберем тип "icon1". Или же более быстрым [[Интерфейс TextEditor#Добавление иконок в текстовый элемент | способом]].<br />
<br />
== Общая настройка объектов ==<br />
<br />
1. Для всех поисковых графических объектов изменить тип с image на [[HiddenObject]].<br />
<br />
[[Файл:Lesson7_hidden_obj.png]]<br />
<br />
2. Создать специальные объекты [[Table]] и [[HiddenList]]. Для этого необходимо перенести графическое изображение table с последующим изменением типа с image на Table. Название объекта изменить на HOT**<br />
<br />
[[Файл:07 5.png]]<br />
<br />
3. Для объекта HiddenList перенести любое графическое изображение с последующим изменением типа с image на HiddenList и удалением графического ресурса из поля настроек (res)*. Для данного типа объекта не требуется графический ресурс. Название объекта изменить на HOL**<br />
<br />
[[Файл:Lesson7_HiddenList.png]]<br />
<br />
<br />
'''**''' Имена для специальных объектов могут использоваться любые.<br />
<br />
== Детальная настройка объектов ==<br />
<br />
'''1. Описание HiddenObject.'''<br />
<br />
''HiddenObject'' - это поисковый объект, взаимодействующий со списком HiddenList. Каждому поисковому объекту необходимо указать графический ресурс (картинку), идентификатор объекта HiddenList и идентификатор текстового ресурса (строки описания) в HiddenList.[[Файл:07 7.png|right]]<br />
<br />
Необходимо выбрать используемый объект с именем HOL (тип HiddenObjectList) в поле list.<br />
<br />
<br />
''текстID'' – название хидден-объекта, которое будет отображаться в списке. Перетаскивается мышкой из текстового редактора;<br />
<br />
''текст'' – обычный текст (будет отображаться в таблице при отсутствии ТекстID, для быстрых экспериментов);<br />
<br />
''list'' – ссылка на HiddenList, к которому будет подключен объект, для обеспечения связи между ними;<br />
<br />
''flyer'' – объект типа flyer, который запустится в работу при нахождении поискового объекта. Неудачный клик обрабатывает HiddenList. Если параметр не задан, используется fly_ok объекта HiddenList.(objid);<br />
<br />
''actor'' – объект, который отображает анимацию спрятанного объекта после удачного клика на него (обычно это машина состояния). Парметр необязателен. Актёры нужны тогда, когда отличается графика объекта, который непосредственно находится на сцене и который летит к таблице. Это может быть случай, когда на сцене лежит часть объекта, а летит целый. Или же на сцене - с тенью, а летит - без.<br />
<br />
''тип'' – номер типа объекта, используется для логического разделения объектов при обработке HiddenList.<br />
<br />
<br />
<br />
<br />
'''2. Описание HiddenObjectList.'''<br />
<br />
HiddenList - это список поисковых объектов (Hidden), которые надо найти в хидден-сцене. [[Файл:07 8.png|right]] Каждый поисковый объект на сцене связывают со списком. Объектов может быть больше, чем будет показано в данной игровой сессии (поле "объектов"). В этом случае они выбираются случайным образом. Запоминаются те из них, по которым произошёл клик (увеличивается счетчик их кликов). При следующем заходе на сцену, поисковые слова сортируются по возрастанию числа кликов и снова активизируется количество спрятанных объектов, указанных в поле "количество".<br />
<br />
HiddenList определяет основные параметры для настройки HiddenObject (скорость полета и т.п.). В дальнейшем, при необходимости, эти же параметры можно добавить в HiddenObject, чтобы для данного объекта они "перебивали" общие значения для всех.<br />
<br />
<br />
Подготовка спрятанных объектов: <br />
<br />
''num'' (поле "объектов") – максимальное количество объектов, участвующие в поиске. (int)<br />
<br />
''hide'' (поле "прятать") – если 1, то делать невидимыми объекты, не участвующие в поиске. (int) <br />
<br />
Визуальные параметры списка: <br />
<br />
''table'' (поле "таблица") – идентификатор объекта Table. (objid)<br />
<br />
''kind'' (внешний вид - поле "тип списка") – тип отображения объекта в списке (0-слово,1-ассоциация, 2-иконка, 3-иконка). (int)<br />
<br />
''cross'' (внешний вид - поле "вычеркнуть") – зачеркивать найденный элемент списка. Eсли 0 (по умолчанию), то найденный элемент удаляется, иначе "зачеркивается".(int).<br />
<br />
<br />
<br />
3. Описание Table<br />
<br />
[[Файл:07 9.png]]<br />
<br />
<br />
6. Параметры, общие для всех спрятанных объектов:<br />
<br />
''die'' – тип исчезания при удачном клике на объект (если нет актера) (int): <br />
<br />
0: просто исчезает;<br />
<br />
1: летит к пункту с описанием в списке HiddenList;<br />
<br />
2: улетает в случайном направлении;<br />
<br />
3: улетает к заданным координатам (fx, fy).<br />
<br />
vm - скорость движения при полете к списку предметов после клика в px/sec (float) <br />
<br />
vr - скорость вращения при полете к списку предметов после клик в град/sec (float) <br />
<br />
fw - финальная ширина к которой надо уменьшится при подлете к финальной точке (int) <br />
<br />
fh - финальная высота к которой надо уменьшится при подлете к финальной точке (int). Объект не должен изменять своих пропорций, поэтому fw или fh (или оба) всегда отрицательны. <br />
<br />
fx - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int) <br />
<br />
fy - финальная координата x, к которой объект должен перелететь, при удачном клике (см. тип исчезания). (int)<br />
<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' HiddenList не будет работать без объекта [[Редактор текстовых ресурсов#Упражнения|Options]], который вы должны были создать в предыдущем уроке, а так же без параметра ''id игры'' (Очковая система -> id игры; для теста заполним его любой строкой).<br />
</blockquote><br />
<br />
== Упражнения ==<br />
<br />
1. Щелкнув правой кнопкой мыши по экрану Lesson_7, создать новый экран Lesson_7_1.<br />
<br />
2. Создать новую сцену (с названием stg_7_1).<br />
<br />
3. Скопировать все объекты из сцены stg_7 (экрана Lesson_7).<br />
<br />
4. Вставить скопированые объекты в новую сцену stg_7_1.<br />
<br />
[[Файл:07 11.png]]<br />
<br />
5. В новой сцене:<br />
<br />
a) добавить еще 3 графических ресурса и перевести в тип HiddenObject;<br />
<br />
b) разместить на местах предназначенных для их «Прятанья»;<br />
<br />
c) добавить текстовое описание в TextEditor;<br />
<br />
e) установить время игры 20 секунд, паузу 2 секунды с переходом на экран Lesson_7_1.<br />
<br />
6. Модифицировать экран Lesson_7 в полноценный уровень с выводом количества очков, игрой на время и графикой.<br />
<br />
== Упражнение № 6 ==<br />
Экран lesson_7 необходимо модифицировать в полноценный уровень.<br />
<br />
Для этого первый экран дополняем 2 счетчиками ([[counter]]), таймером ([[timer]]), машиной-блокатором ([[machine]]), машиной-комбо3 ([[machine]]) и прогрессом ([[progress]]). Второй экран с выводом очков составим позже.<br />
<br />
[[Файл:1.png]] <br />
<br />
Счетчик «amt» ([[counter]]) показывает сколько объектов найдено. Счетчик «score_H» ([[counter]]) насчитывает баллы за собранные объекты. Таймер ([[timer]]) запускается при старте игры и отсчитывает заданное время на игру, машина-блокатор «ban_H» блокирует сцену при серии ошибочных кликов. Прогресс «progr» ([[progress]]) отображает уровень прохождения игры.<br />
<br />
Чтобы всё заработало необходимо указать счетчики, таймер, машину-блокатор, машину-комбо3 и прогресс в хиденлисте «HL_01» ([[hiddenList]]).<br />
<br />
== СЧЕТЧИК ==<br />
<br />
В редакторе ресурсов выбираем анимацию и добавляем графику для счетчика. <br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Если в редакторе ресурсов нету анимации, то [[Интерфейс_ResourceEditor#Анимация|создайте]] её - это просто).<br />
</blockquote><br />
<br />
[[Файл:Coun (5).png]] [[Файл:Coun (6).png]] [[Файл:Coun (7).png]] [[Файл:Coun (8).png]] [[Файл:Coun (9).png]] [[Файл:Coun_(10).png]] [[Файл:Coun (11).png]] [[Файл:Coun (1).png]] [[Файл:Coun (2).png]] [[Файл:Coun (3).png]] [[Файл:Coun (4).png]]<br />
<br />
Создаем объект сцены с типом «[[counter]]», в поле res перетаскиваем анимацию с цифрами от 0 до 9, разделитель перетаскиваем в отдельную графу без анимации. Настройки для счетчика:<br />
<br />
[[Файл:243.png]] [[Файл:33.png]]<br />
<br />
== ТАЙМЕР ==<br />
<br />
В свойствах таймера «[[timer]]» необходимо указать «значение» с которого начнется отсчет времени (18000 = 18 сек.). <br />
В свойство «графика» из графического редактора перетаскиваем анимацию которую делали для счетчика и двоеточие. Настройки для таймера:<br />
<br />
[[Файл:444.png]]<br />
<br />
== ПРОГРЕСС ==<br />
<br />
[[Progress]] используют для отображения каких либо ачивментов, например когда игрок проходить уровень он может получить 1,2,3 звезды или бронзовую, серебряную, золотую. <br />
Настройки для прогресса : <br />
<br />
[[Файл:555.png]]<br />
<br />
Графика для Progress: [[Файл:666.png]]<br />
<br />
Настройки для машины-Combo3c :<br />
<br />
[[Файл:777.png]]<br />
<br />
Во всех HiddenObject изменить параметры и свойства объекта combo3c [[Файл:1818.png]]<br />
<br />
Настройки для машины-блокатора «ban_H» (machine) :<br />
<br />
[[Файл:9.png]]<br />
<br />
Настройки для hiddenList:<br />
<br />
[[Файл:1010.png]] [[Файл:1011.png]]<br />
<br />
Группа - звезды combo num =1 Количество быстро найденных объектов, нужное для получения звезды Combo combo time = 3000 Интервал между кликами, считающимися быстрыми для Combo accuracy = 0,85 Точность кликов для получения звезды Accuracy (1 = 100%, все клики должны быть только удачные) лимит ложных кликов =5 Лимит ложных кликов. Формула расчета количество верных кликов делим на общее количество получаем коэффициент если он равен или больше указного нами то в опции пишем параметр, если нет то не пишем.<br />
<br />
Создаем вторую сцену на которой формируем окно вывода результатов из ректангла (Rectangle), текстовых объектов и счетчиков, окно<br />
должно открываться по окончанию игры, при выигрыше показывать набранные очки и надпись об удаче,при проигрыше нулевые очки и надпись о неудаче.<br />
<br />
Графика для Rectangle rec: [[Файл:0001.png]] [[Файл:0002.png]] [[Файл:0003.png]] [[Файл:0004.png]] [[Файл:0005.png]] [[Файл:0006.png]] [[Файл:0007.png]] [[Файл:0008.png]] [[Файл:0009.png]] [[Файл:00010.png]] <br />
<br />
Графика для Rectangle black : [[Файл:0101.png]]<br />
<br />
<blockquote><br />
[[файл:wrong.png|right|32px]]<br />
'''Внимание!''' Графика для Rectangle black используется в качестве фона, на котором будет размещаться всплывающие окно с показаниями результата пройденной игры. <br />
</blockquote><br />
<br />
[[Файл:1012.png]] [[Файл:0102.png]] <br />
<br />
<br />
В свойствах счетчиков необходимо прописать уровень!<br />
<br />
1) счетчик 7_4_1 — игровые очки;<br />
<br />
уровень: last_game.score30_total<br />
<br />
2) счетчик 7_4_2 — бонус за время;<br />
<br />
уровень: last_game.score30_time<br />
<br />
3) счетчик 7_4_3 — бонус за аккуратность;<br />
<br />
уровень: last_game.score30_accuracy<br />
<br />
4) счетчик 7_4_4 — бонус за комбо;<br />
<br />
уровень: last_game.score30_time<br />
<br />
5) счетчик 7_4_5 — очки за уровень;<br />
<br />
уровень: last_game.score30_level<br />
<br />
<br />
После создания счетчиков и установки уровней добавляем 5 текстовых объектов, которые описывают значения, выводящиеся счетчиками в конце игры в окне результатов (игровые очки, бонус за время и т.д.).<br />
<br />
<br />
Настройки для машины — star1 <br />
(проверка в опциях параметра last_game.last_star_accuracy0, <br />
last_game.last_star_time0, )<br />
<br />
[[Файл:0303.png]]<br />
<br />
Настройки для машины — star2 <br />
(если параметр accuracy=0)<br />
<br />
[[Файл:0304.png]]<br />
<br />
Настройки для машины — star3 <br />
(если игра пройдена за указанное время)<br />
<br />
[[Файл:0305.png]]<br />
<br />
Настройки для машины — win<br />
<br />
[[Файл:0306.png]]<br />
<br />
<br />
Машина win считывает «read» показания счетчика и запускает star1 если игра пройдена.<br />
<br />
Кнопка close закрывает окно вывода результатов изменением состояния обьекта win состоянием close.<br />
<br />
Включаем вьювер и наблюдаем как автоматически включается таймер, за каждый собранный предмет вам начисляются очки, прогресс показывает прохождение игры, в конце игры появляется окно с выводом результатов набранных очков с звездами.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
----<br />
{| width="100%" <br />
| width="40%"|[[Редактор текстовых ресурсов|Урок 5]] << <br />
! width="20%"|[[Learning|Оглавление]] <br />
| width="40%" align="right"| >> [[Настройка миниигр|Урок 7]]<br />
|}<br />
<br />
[[Category:Learning]]</div>Agritsenko