Patchwork

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск


Пэчворк ( Patchwork ) - мини игра, цель которой состоит в том, чтобы сложить картинку, которая разрезана на различное количество изображений. Разрезанные изображения могут быть самых разных форм. Возможны две игровые механики: когда изображение разрезается на другие, более мелкие изображения и когда отдельные изображения могут являться частью объекта пэчворка ( внесены в его группу ), в таком случае, пэчворк будет считаться собранным, если куски графики будут поставлены на правильные места ( те места, где изображения были первоначально расположены на поле ).

                                    До сборки                    Окончание сборки 
Patchwork.jpg Patchwork2.jpg


PATCHWORKZ!
Wellgames.com



Основные параметры

Patchwork properties part1.png

Общие параметры: (см. описание Object)

(Курсивом в скобках указан id параметра или состояния)

  • Тип (iType) - важный параметр,определяющий тип механики patchwork, более детально см. типы пэчворков:
0-ый тип - пэчворк, который использует маску для разрезания изображений;
1-ый тип:
- пэчворк, разрезанные фрагменты которого являются его подобъектами;
- круговой пэчворк, разрезанные фрагменты которого являются его подобъектами.
  • Состояние (state) - Начальное состояние: mix - сразу перемешать после запуска?, mix_and_fly - перемешать с анимацией полета.
  • Память (memo): 1 - при повторном открытии экрана объект не обновляет свои параметры (помнит текущие параметры, оставшиеся от предыдущего посещения экрана), 0 - при повторном открытии экрана объект обновит свои параметры.


Группа - Внешний вид:

  • карт. спереди (res) - Графический ресурс картинки пэчворка спереди. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования);
  • карт. сзади (resBack) - Графический ресурс картинки пэчворка сзади. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования);
  • шаблон (resT) - Графический ресурс - битовая маска, используемая для разрезки картинки на части;
  • флаер на свое место (fly) - Флаер анимации установки на свое место;
  • флаер соединен с соседом (flyCn) - Флаер анимации соединения с соседом.
Patchwork properties part2.png


Группа - счетчики:

  • таймер (timer) - Таймер, связанный с пазлой;
  • счетчик (count) - Счетчик сделанных ходов;
  • игра (game) - Имя игры (раздела в опциях), который надо вычитать для получения начального значения прогресса (например, для отображения результатов);
  • уровень (level) - Имя уровня (параметра в разделе игра - см.выше), который надо вычитать для получения начального значения прогресса (например, для отображения результатов). Для достижений запись будет равна [game.]level=1, для счетчика [game.]level+ct=число, для времени [game.]level+tm=время;
  • сохранять в профиль (prof): 1 - значение будет сохранено в текущий профиль, 0 - значение будет сохранено глобально.


Группа - элементы пачворка:

  • тип перемещения фрагментов (mvType) - перемещение элементов пачворка: 0 - произвольное, 1 - по кругу, относительно точки пивота;
  • размещение (place) - Положение элементов пачворка: 0 - располагаются в таблице, 1 - на экране;
  • таблица (table) - Объект, типа table который является визуальным отображением списка элементов пачворка;
  • скорость полета (velFly) - Скорость полета элементов пачворка, измеряется в пикселях за минуту;
  • тень вкл. (shV) - Параметр отображения тени: 0 - не рисуется, 1 - рисуется;
  • сглаж вкл. (cntV) - Параметр отображения сглаженных краев: 0 - не рисуется, 1 - рисуется;
  • сглаж границ (smB) - Параметр сглаживания границ фрагментов: 0 - нет сглаживания, любое число - число точек соседнего фрагмента;
  • прозр. тени (shAlpha) - Альфа тени: от 0 (прозрачна) до 1 (не прозрачна);
  • смещение тени (shOffs) - Смещение тени в пикселях относительно основного фрагмента;
  • смещение тени в фокусе (shOffsF) - Смещение тени в пикселях относительно основного фрагмента, когда последний в фокусе;
  • скалир в фокусе (focSc) - Коэффициент масштабирования элемента при попадании в фокус (1 - не изменяется);
  • вращаемость (rot): 1 - элементы можно вращать на угол, указанный ниже, 0 - нельзя вращать;
  • угол вращения (rotAng) - угол, на который можно повернуть объект за один раз;
  • скорость вращения (rotVel) - скорость вращения в градусах за сек.;
  • притяжение табл (magnTbl) - расстояние до таблицы начиная с которого объекты уменьшают размер;
  • события переворота (overtEv) - По какому событию происходит переворот: 0 - по клику, 1 - по двойному клику;
  • ось переворота (overtAxis): 0 - переворот оси X, 1 - переворот оси Y;
  • скорость переворота (overtVel) - скорость переворота в градусах за сек.;
  • оставлять в конце игры (stOnGameOver): 0 - не показывать при сборе всех частей, 1 - показывать.


Дополнительные параметры

Patchwork properties part3.png

Группа - игровое поле:

  • использование (isGField): 1 - использовать ниже приведенные параметры, 0 - не использовать;
  • лев. бордюр (mixLOffs) - Левый бордюр экрана игрового поля;
  • пр. бордюр (mixROffs) - Правый бордюр экрана игрового поля;
  • верх. бордюр (mixTOffs) - Верхний бордюр экрана игрового поля;
  • ниж. бордюр (mixBOffs) - Нижний бордюр экрана игрового поля.

C помощью данных параметров можно ограничить область, в которой таскаются элементы пачворка. Значение бордюра - расстояние от края экрана, до области, в которой можно таскать элементы. Например выставлен верхний бордюр в 50, значит мы не сможем перетащить элемент в область шириной 50 пикселей от верха экрана. Также для частей пачворка нужно задать шейпы.


Группа - разброс элементов:

  • дисперсия X (mixDispX) - Дисперсия элементов пачворка при размещении на экране по оси X;
  • дисперсия Y (mixDispX) - Дисперсия элементов пачворка при размещении на экране по оси Y;
  • изм. угол (dispRot) - Изменить угол после разброса элементов на экране "regexp=": 0 - нет, 1 - да.


Группа - взятие частей:

  • тип взятия (takeTp): 0 - за что взяли, то и тянем, 1 - берем всегда за пивот, смещение указателя ниже;
  • смещ. X (takeShX) - смещение по оси X относительно пивота;
  • смещ. Y (takeShY) - смещение по оси Y относительно пивота.


Группа - звуки:

  • приклеился (sMag) - Объект приклеился к другому объекту;
  • стал на свое место (sPl) - Объект стал на место на сцене;
  • захватили перемещать (sDr) - Объект захватили для перемещения;
  • отпустили, но не на месте (sEr) - Объект отпустили, но он оказался не на своем месте;
  • вернули в таблицу (sTbl) - Объект вернули в таблицу (убрали с поля).


Группа - хинт 1: (подсказка ставит на место выбранный элемент patchwork)

  • палец нажат (h1resDn) - Графический ресурс нажатого пальца;
  • палец отжат (h1resUp) - Графический ресурс отжатого пальца;
  • скор. руки (h1VelH) - Скорость движения руки пикс/мин;
  • время пауз (h1Pause) - Время пауз между событиями.


Группа - хинт 2: (подсказка показывает элемент patchwork из таблицы, и его конечное положение)

  • время хинта (h2Time) - Время работы хинта;
  • время пауз (h2Pause) - Время пауз между событиями;
  • время пульса (h2Pulse) - Время пульса подсказки.

Добавляемые параметры пачворка

Меню выбора Добавляемые параметры к объектам активируется по правой кнопки мыши.


+.png начинаем игру: изменить состояние объекта (nstBeg)- начинаем игру: изменить состояние объекта - В начале игры перевести объект в новое состояние:

  • объект (obj) - В начале игры перевести объект в состояние из следующего поля;
  • состояние (st) - Новое состояние для объекта из предыдущего поля.


+.png начинаем игру: изменить параметр объекта (chgBeg) - В начале игры изменить параметр объекта:

  • объект (obj) - В начале игры этот объект меняет свой параметр;
  • свойство (par) - Параметр, который мы изменяем;
  • значение (val) - Новое значение параметра.


+.png поставили на место: изменить состояние объекта (nstRightPl) - После успешной вставки перевести объект в новое состояние:

  • объект (obj) - После успешной вставки перевести объект в состояние из следующего поля;
  • состояние (st) - Новое состояние для объекта из предыдущего поля.


+.png поставили на место: изменить параметр объекта (chgRightPl) - После успешной вставки изменить параметр объекта:

  • объект (obj) - После успешной вставки этот объект меняет свой параметр;
  • свойство (par) - Параметр, который мы изменяем;
  • значение (val) - Новое значение параметра.


+.png поставили не на место: изменить состояние объекта (nstErorPl) - После не успешной вставки перевести объект в новое состояние:

  • объект (obj) - После успешной вставки перевести объект в состояние из следующего поля;
  • состояние (st) - Новое состояние для объекта из предыдущего поля.


+.png поставили не на место: изменить параметр объекта (chgErorPl) - После неуспешной вставки изменить параметр объекта:

  • объект (obj) - После успешной вставки этот объект меняет свой параметр;
  • свойство (par) - Параметр, который мы изменяем;
  • значение (val) - Новое значение параметра.


+.png потянули: изменить состояние объекта (nstDragStart) - При начале таскания перевести объект в новое состояние:

  • объект (obj) - После успешной вставки перевести объект в состояние из следующего поля;
  • состояние (st) - Новое состояние для объекта из предыдущего поля.


+.png перестали тянуть (nstDragStop) - При завершении таскания перевести объект в новое состояние:

  • объект (obj) - После успешной вставки перевести объект в состояние из следующего поля;
  • состояние (st) - Новое состояние для объекта из предыдущего поля.


+.png завершили: если был экран (wscrOk) - При сборе всех элементов, переходим на определенный экран, если некоторый экран был уже хотя бы раз посещен:

  • был экран (was) - Экран, который мы проверяем на то, был ли он уже открыт хотя бы один раз;
  • перейти на (scr) - Переходим на этот экран, если экран из предыдущего поля уже открывался.


+.png завершили: изменить состояние объекта (nstOk) - При сборе всех элементов перевести объект в новое состояние:

  • объект (obj) - При сборе всех элементов перевести объект в состояние из следующего поля;
  • состояние (st) - Новое состояние для объекта из предыдущего поля.

+.png завершили: изменить параметр объекта (chgOk) - При сборе всех элементов, изменить параметр объекта:

  • объект (obj) - При сборе всех элементов объект меняет свой параметр;
  • свойство (par) - Параметр, который мы изменяем;
  • значение (val) - Новое значение параметра.

+.png параметры фрагмента (ppar) - Изменить параметры фрагмента:

  • объект (obj) - Параметр данного фрагмента будем менять (для типа пэчворка "1" если нужно, чтобы объект перед сбором пэчворка находился в конкретной точке);
  • start x (x) - Начальная позиция по X перед сбором фрагментов;
  • start y (y) - Начальная позиция по Y перед сбором фрагментов;
  • angle (ang) - Начальный угол перед сбором фрагментов.

Описание типов пэчворков

На данный момент, пэчворк имеет три основные механики:

  • пэчворк, который использует маску для разрезания изображений ( 0-ый тип )
  • пэчворк, разрезанные фрагменты которого являются его подобъектами ( 1-ый тип )
  • круговой пэчворк, разрезанные фрагменты которого являются его подобъектами ( 1-ый тип )

Пэчворк 0-го типа

Каким образом работает пэчворк? Существует какая-то картинка. Для того, чтобы использовать эту картинку в игре (собрать ее из кусков), нужно сперва разрезать ее. Для разрезания картинки используется ее маска, то есть тот контур по которому редактор будет разрезать изображение. После разрезания картинки, полученные куски (части) изображения попадают в таблицу, которая прикреплена к пэчворку. Благодаря таблице существует возможность наблюдать за разрезанными частями и выносить их на поле для дальнейшего складывания пэчворка. В случае, если таблица не была прикреплена к пэчворку, то разрезанные изображения исчезнут за границами экрана.
Создание пэчворка 0-го типа пошагово:

  1. Добавить новый объект на сцену и указать ему тип "пэчворк (patchwork)":
    1. На панели дерево проекта выделить нужную сцену
    2. Нажать правую кнопку мыши (ПКМ) и в всплывающем списке выбрать создать объект в текущем элементе
    3. Перейти на панель свойств объекта Property
    4. Выбрать тип объекта patchwork
  2. В таблице свойств объекта указать тип пэчворка "0":
    1. На панели дерево проекта выбрать patchwork
    2. Перейти на панель свойств объекта Property
    3. На панели свойств выбрать поле тип
    4. Установить значение 0
  3. Подгрузить графику пэчворка:
    1. Выбрать объект patchwork
    2. Перейти на панель свойств объекта Property
    3. Раскрыть поле внешний вид
    4. В поле карт. спереди с помощью редактора ресурсов подгрузить исходную картинку, а в поле шаблон подгрузить маску, которая будет разрезать картинку
  4. Добавить новый объект на сцену и указать ему тип "таблица (table)":
    1. На панели дерево проекта выделить нужную сцену
    2. Нажать правую кнопку мыши (ПКМ) и в всплывающем списке выбрать создать объект в текущем элементе
    3. Выбрать панель Property
    4. Выделить поле тип объекта и в всплывающем списке выбрать table
  5. Настроить таблицу:
    1. Выделить объект table
    2. Выбрать панель Property
    3. Выбрать поле таблица
    4. Указать значения полям колонок и строчек
  6. В таблице свойств объекта привязать таблицу к пэчворку:
    1. Выбрать объект patchwork
    2. Выбрать панель Property
    3. Раскрыть поле элементы пэчворка
    4. Выделить поле таблица
    5. Выбрать нужную таблицу из списка


В результате проделанных манипуляций, после сохранения проекта и запуска вьювера, можно будет наблюдать следующий результат, где на первой картинке можно наблюдать исходное изображение, а на второй картинке уже порезанное изображение с применением маски. Example result.jpg


Пэчворк 1-го типа

Чем отличается пэчворк 1-го типа от пэчворка 0-го типа? Отличается тем, что при использовании пэчворка 0-го типа нужна маска для разрезания изображений, а при использовании пэчворка 1-го типа маска не нужна, а просто нужны отдельные изображения, куски графики, которые будут являтся подобъектами пэчворка, то есть входить в его группу. В таком случае, целью игры будет постановка отдельных изображений на свои места на сцене. Алгоритм создания пэчворка 1-го типа мало чем отличается от алгоритма создания пэчворка 0-го типа. Отличием является то, что на панели свойств пэчворка в поле тип нужно поставить значение 1, а не 0. Также отличие заключается в другом подгружении графики пэчворка:

  1. Из редактора ресурсов вынести нужную графику на сцену
  2. Зайти на панель дерево проекта
  3. Переместить графические объекты в группу к пэчворку

Если необходимо, чтобы в пэчворке начальные координаты подобъектов до сбора отличались от конечных, то необходимо использовать добавляемое свойство "Параметры фрагмента" и там указать начальные координаты и, при необходимости, угол для подобъектов пэчворка. Example 1st type.jpg

Круговой Пэчворк 1-го типа

На поле расположено одно изображение, разрезанное на части в форме концентрических колец с одним центром. Кольцевые части могут вращаться вокруг общего центра при помощи захвата пальцем(зажатой кнопкой мыши). В начале игры кольца сдвинуты относительно своего правильного положения каждое на произвольный угол. Как только два кольца выставляются друг относительно друга в правильное положение они слипаются - "паркуются", и в дальнейшем вращаются вместе.

Цель игры: выставить каждое из колец в правильное положение, чтоб исходное изображение было восстановлено.

Графика в данном случае готовится и подгружается таким же образом, как и для пачворка 1 типа.

Для данного типа пачворка существует ряд настроек, относящихся только к нему.

Обязательно!:

- в строке состояния указать состояние - mix (иначе по умолчанию - init, будет ожидать клик).
- указать параметры (иначе при двойном клике, нажатая часть сразу станет на своё место):
Элементы пэчворка:
Вращаемость = 1;
Угол вращения = число.

Состояния patchwork

Параметр, в который перейдёт patchwork при инициализации:

  • mix - перемешать сразу после запуска;
  • mix_and_fly - перемешать с анимацией полета;
  • init - исходное состояние пэчворка. Для того, чтобы пэчворк попал в таблицу нужно сделать по нему тап и можно будет наблюдать анимацию перемещения пэчворка в таблицу;
  • hint1 - который ставит на место выбранные элемент patchwork, см. параметры состояний hint1 и hint2;
  • hint2 - показывает элемент patchwork из таблицы, и конечное положение элемента, см. параметры состояний hint1 и hint2.

В случае, если это поле останется пустым, то это будет приравниваться к тому, что пэчворк находится в состоянии init


Пример применения

Пример создания 0-го типа пэчворка


Example p1.jpg Example p2.jpg Example p3.jpg Example p4.jpg Example p5.jpg Example p6.jpg
В результате проделанных манипуляций, после сохранения проекта и запуска вьювера, можно будет наблюдать следующий результат, где на первой картинке можно наблюдать исходное изображение, а на второй картинке уже порезанное изображение с применением маски. Example result.jpg

Пример создания кругового пэчворка

П1.PNG

Обязательно!:

- в строке состояния указать состояние - mix.
- указать параметры (иначе при двойном клике, нажатая часть сразу станет на своё место):
Элементы пэчворка:
Вращаемость = 1;
Угол вращения = число.

В результате проделанных манипуляций, после сохранения проекта и запуска вьювера, можно будет наблюдать следующий результат, где на первой картинке можно наблюдать исходное изображение, а на второй картинке уже собранное изображение (результат получен путем вращения элементов пэчворка).

П2.PNG

П3.PNG