Puzzle — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Новая страница: «'''Пазла''' (puzzle) - минигра, состоящая в собирании картинки, разрезанной на прямоугольные яч...»)
 
м
 
(не показана 61 промежуточная версия 10 участников)
Строка 1: Строка 1:
−
'''Пазла''' (puzzle) - минигра, состоящая в собирании картинки, разрезанной на прямоугольные ячейки. Ячейки можно вращать и/или переставлять. Возможны 2 игровые механики, когда все ячейки есть на игровом поле и когда одной нет (аналог - игра 15-шки).
+
{{TOC right}}
  
−
== Цикл жизни ==
+
[[Файл:puzzle1.png|right]]
 +
'''Пазл''' (puzzle) — встроенный [[Object|объект]] редактора, имеющий определенную игровую механику, которая заключается в том, чтобы собрать необходимое изображение из прямоугольных ячеек (частей) за минимальное количество шагов (перемещений частей пазла). <br>
 +
 
 +
== Немного о графике ==
 +
Для придания ячейкам объема служит графический ресурс рамка (собственный бордюр ячейки). Он может быть квадратной картинкой, прозрачной в центре и с серой полупрозрачной маской на краях. Её размер особой роли не играет. Например, 128x128:
 +
 
 +
[[Файл:border.png|right]]
 +
Общая ширина и высота картинки пазла задает игровое поле. Кроме этого есть поля ширина пазла и высота пазла, которые определяют размер центральной области картинки, которая разбивается на ячейки. Если эта область меньше размеров картинки, появится внешний бордюр, помогающий при сборке.
 +
 
 +
== Игровые механики и режимы пазла ==
 +
*Ячейки пазла можно переставлять и вращать. По мере сбора пазла ячейки, оказывающиеся на своем месте, лишаются собственного бордюра и пазл постепенно проявляется  <br>
 +
*У пазла может быть внешний бордюр (часть исходного изображения), который не разрезается на части и помогает при сборке.
 +
* Пазл может быть увеличен и снова уменьшен<br>
 +
 
 +
Возможны две игровые механики пазла: <br>
 +
* обычная -  все ячейки есть на игровом поле<br>
 +
*  пятнашки - одной ячейки нет (аналог обычных пятнашек). <br>
 +
 
 +
'''''Замечание.''''' Чтобы корректно работала механика "пятнашки", в правилах нужно указать значение 1 для параметров "переставлять?" и "пятнашки". Если в "переставлять?" будет значение 0, то пазл будет запускаться с механикой "пятнашки", но уже в собранном виде.
 +
 
 +
Существует три уровня сложности сбора пазла с обычной механикой :
 +
* Легкий
 +
* Эксперт
 +
* Мастер
 +
Режим «Эксперт» отличается от режима «Легкий» количеством ячеек, на которые разбивается  исходное изображение (в режиме «Эксперт» их больше). <br>
 +
В режиме мастер столько же ячеек, сколько и в режиме эксперт, лишь добавлена возможность поворота ячеек по часовой стрелке вокруг своих центров (подробнее см. описание поворота в разделе параметры). Ячейка  пазла поворачивается при повторном клике на нее мышью. <br>
 +
 
 +
== Важное замечание ==
 +
В процессе сбора пазла на устройство сохраняются файлы, в которые записывается информация о ходе игры (какие пазлики на месте, а какие  - нет). Структура  имени файла, сохраняемого на устройство p<id_картинки>_<rows>_<cols>.puz  (например p107_6_8.puz) . <br>
 +
При повторном сборе пазла или повторном открытии загружается  информация из этих файлов, т.е. мы увидим то же состояние пазла, что и  перед выходом с этого экрана. Рекомендуется создать кнопку, дающую пользователю возможность начать игру с начала. . <br>
 +
 
 +
== Основные параметры пазла ==
 +
''(Курсивом в скобках указан id параметра, или состояния)''
 +
 
 +
'''Группа - внешний вид'''
 +
*'''Картинка''' ''(res)'' — это исходное изображение (графический ресурс) которое нужно собрать;
 +
*'''Колонок''' ''(cols)'' — количество колонок, на которые разбивается картинка;
 +
*'''Строчек''' ''(rows)'' — количество строчек (рядов), на которые разбивается картинка;
 +
*'''Сетка?''' ''(g)'' — отображение сетки:
 +
:'''1''' — отображается сетка после разделения картинки на ячейки,
 +
:'''0''' — сетка не отображается;
 +
*'''Пометка''' ''(alChk)'' — прозрачность выбранной ячейки пазла в диапазоне от нуля (полностью прозрачна, или невидима) до единицы (полностью не прозрачна, или видима);
 +
*'''Фон''' ''(alBkg)'' — прозрачность (от нуля до единицы) исходной картинки, отображаемой под пазлом в игровом поле;
 +
*'''Ширина пазла''' ''(vW)'' — размер ширины игрового поля в пикселях;
 +
*'''Высота пазла''' ''(vH)'' — размер высоты игрового поля в пикселях;
 +
*'''Маска''' ''(msk)'' — графический ресурс (изображение), которое накладывается на картинку (например текстура для придания изображению рельефности);
 +
*'''Рамка''' ''(fr)'' — графический ресурс для рамки по краям ячейки;
 +
*'''Рамка активной''' ''(fra)'' — графический ресурс для рамки вокруг активной ячейки;
 +
*'''Рамка соседей''' ''(frn)'' — графический ресурс для рамок вокруг соседних ячеек;
 +
*'''Флаер''' ''(fly)'' — флаер (подробнее см. объект редактора [http://ge.absolutist.com/index.php/Flyer «флаер»]), изображающий удачный ход. Он будет запущен над ячейкой которая встала на свое место.
 +
 
 +
 
 +
'''Группа - звуки''' ''(Звуковые ресурсы перетаскивается мышью из редактора ресурсов в поле параметра, которое должно находится в состоянии редактирования))''
 +
*'''Выбор''' ''(sDn)'' — звук при выборе ячейки;
 +
*'''Перестановка''' ''(sSh)'' — звук при перестановке ячеек;
 +
*'''На месте''' ''(sOk)'' — звук при становлении ячейки на нужное место.
 +
 
 +
 
 +
'''Группа - смешивать'''
 +
*'''Перестановку''' ''(alSwp)'' — при поочередном выборе ячеек кликом мыши для перестановки, возможны два варианта визуализации этого процесса:
 +
:'''1''' — ячейки остаются неподвижными, изменяются лишь их изображения по прозрачности (от нуля до единицы);
 +
:'''0''' — происходит перемещение ячеек (ячейки меняются местами);
 +
*'''Вращение''' ''(alRot)'' — визуализацию поворот ячейки в режиме «мастер» возможно осуществить двумя способами:
 +
:'''1''' — ячейка остается неподвижной, изменяется лишь ее изображение по прозрачности (от нуля до единицы);
 +
:'''0''' — происходит поворот ячейки.
 +
 
 +
 
 +
'''Группа - правила'''
 +
*'''Вращений''' ''(rot)'' — число возможных поворотов каждой ячейки пазла:
 +
:'''0''' — ячейки повернуть нельзя;
 +
:'''2''' — два варианта положения ячейки, или поворот на 180°;
 +
:'''4''' — четыре варианта положения ячейки, или поворот на 90°;
 +
*'''Переставлять?''' ''(swp)'' — переставление ячеек местами путем поочередного выбора их мышью:
 +
:'''0''' — нельзя,
 +
:'''1''' — можно;
 +
*'''Пятнашки''' ''(fif)'' — механика игры:
 +
:'''0''' — обычная механика игры,
 +
:'''1''' — играем в пятнашки (см. игровые механики и режимы пазла);
 +
*'''Соседи''' ''(nei)'' — какие ячейки можно переставлять:
 +
:'''0''' - переставлять можно любые ячейки,
 +
:'''1''' — переставлять можно только соседние элементы.
 +
*'''Таскать''' ''(is_drag)'' — ячейки смениваются только поочередными кликами или еще дропом одну на другую:
 +
:'''0''' - нельзя,
 +
:'''1''' — можно.
 +
 
 +
 
 +
'''Группа - времена этапов'''
 +
*'''Невидимости''' ''(tmBeg)'' — время паузы перед открытием пазла;
 +
*'''Открытия''' ''(tmOpn)'' — время открытия картинки;
 +
*'''Показа''' ''(tmStt)'' — время отображения картинки перед тем, как она разделится на ячейки и перемешается. Это необходимо для того, чтобы игрок успел ознакомиться с изображением, которое ему необходимо собрать;
 +
*'''Перемешивания''' ''(tmMix)'' — время визуализации процесса перемешивания ячеек пазла;
 +
*'''Финала''' ''(tmFin)'' — время показа картинки когда она собрана. Это необходимо для того, чтобы игрок смог насладиться результатом своих стараний, а также смог повнимательнее разглядеть картинку;
 +
*'''Закрытия''' ''(tmCls)'' — время закрытия пазла (переход в состояние (close) по прозрачности (alpha) от единицы до нуля).
 +
 
 +
 
 +
'''Группа - счетчики'''
 +
*'''Таймер''' ''(timer)'' — объект редактора [http://ge.absolutist.com/index.php/Timer «timer»] привязывается к пазлу и дает возможность собирать пазл определенное время, или использовать его для спортивного интереса, фиксируя время, за которое игрок соберет пазл. Таким образом игрок сможет с гордостью заявить своим друзьям, что он собрал пазл за такое-то время;
 +
*'''Лучшее время''' ''(tmBest)'' — самое короткое время, за которое игрок собрал пазл. Оно считается лучшим и фиксируется в опциях для использования в прогрессе (см. объект редактора «progress»);
 +
*'''Счетчик''' ''(count)'' — объект редактора [http://ge.absolutist.com/index.php/Counter «counter»] привязывается к пазлу и фиксирует количество ходов;
 +
*'''Лучший счетчик''' ''(ctBest)'' — наименьшее количество ходов за которое пазл собран. Оно считается лучшим и фиксируется в опциях для использования в прогрессе;
 +
*'''Показов хинт счетчик''' ''(cntShw)'' —  объект редактора «counter» привязывается к пазлу и фиксирует количество оставшихся подсказок-отображения (hint), тип подсказки когда картинка отображается на некоторое время;
 +
*'''Перест. хинт счетчик''' ''(cntSwp)'' — объект редактора «counter» привязывается к пазлу и фиксирует количество оставшихся подсказок-перестановки (swap), тип подсказки когда выделенная, или произвольная ячейка становится на свое место;
 +
*'''Игра''' ''(game)'' — имя игры, раздел в опциях, который надо вычитать для получения начального значения прогресса (например, для отображения результатов);
 +
*'''Уровень''' ''(level)'' — имя уровня, параметра в разделе игра (см. выше), который надо вычитать для получения начального значения прогресса (например, для отображения результатов). В опциях записывается как «имя игры».«имя уровня» (game.level);
 +
*'''Сохранять в профиль''' ''(prof)'' — сохранение значений в профиль:
 +
:'''1''' — все значения будут сохранены в текущий профиль,
 +
:'''0''' — глобально.
 +
 
 +
Хозяйке на заметку:
 +
таким образом, с пазлом может быть связан таймер и три счетчика (числа ходов, и числа использования двух видов
 +
подсказок). Если, например, счетчик числа ходов определен, в опциях (файл options.xml) сохраняются данные подобного вида:
 
   
 
   
−
Игра проходит следующие этапы:
+
<obj nm="options" >
 +
    <pk1>
 +
      <pz01 lv0="2" lv0ct="7" />
 +
    </pk1>
 +
</obj>
 +
</pre>
 +
 +
В этом примере параметр «игра» записывается как «pk1.pz01», а параметр «уровень» —  «lv0». Эти параметры могут быть заданы как в
 +
свойствах пазла, так и внешними объектами. Наличие точки в параметре «игра» разбивает раздел опций на подразделы.
 +
 
 +
 
 +
'''Группа - времена игры'''
 +
*'''Перестановки''' ''(tmSwp)'' — время перестановки двух ячеек местами;
 +
*'''Поворота''' ''(tmRot)'' — время поворота ячейки;
 +
*'''Паузы''' ''(tmShw)'' — время паузы перед началом перестановки или поворота;
 +
*'''Подсказки1''' ''(tmHnt1)'' — время за которое проявляется исходная картинка в состоянии (hint);
 +
*'''Подсказки2''' ''(tmHnt2)'' — время в течении которого показывается исходная картинка в состоянии (hint) после проявления;
 +
*'''Подсказки3''' ''(tmHnt3)'' — время в течении которого закрывается исходная картинка в состоянии (hint) после проявления.
 +
 
 +
*'''Рейтинг''' ''(raiting)'' — если 1 — после того как пазл собран, отображается рейтинг.
 +
 
 +
== Подсказки ==
 +
В игре есть два вида подсказок: ''(hint)'' и ''(swap)''. Первый проявляет исходную картинку, второй переставляет две ячейки местами, из которых, по крайней мере одна, окажется на своем месте.
 +
Если кнопкой или машиной состояний перевести пазл в состояние ''(hint)'', то он исчезнет по прозрачности (за время ''tmHnt1''), а исходная картинка проявится. Затем, в течении ''(tmHnt2)'', будет демонстрироваться исходная картинка, и за время ''(tmHnt3)'', она по прозрачности исчезнет, а пазл снова перейдет в стадию игры.
 +
Состояние ''(swap)'' ставит одну из ячеек (выделенную игроком, или произвольную) на свое место.
 +
Кроме этого пазл можно перевести в состояние ''(scale)''. В этом состоянии он увеличивается в размерах и его можно таскать по экрану. Повторение состояния ''(scale)'' уменьшает возвращает пазлу исходные размеры.
 +
 
 +
== Добавляемые параметры ==
 +
 
 +
 
 +
[[Файл:Paz add par.jpg|right]]
 +
Меню выбора ''Добавляемые параметры'' к объектам активируется по правой кнопки мыши.
 +
 
 +
[[Файл:+.png]] '''Изменить состояние объекта''' - После разбора перевести объект в новое состояние.
 +
*'''объект'''- после разбора перевести объект в состояние из следующего поля.
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 +
 
 +
[[Файл:+.png]] '''Изменить параметр объекта''' - После разбора изменить параметр объекта.
 +
*'''объект'''- после разбора этот объект меняет свой параметр.
 +
*'''свойство''' - параметр, который мы изменяем.
 +
*'''значение''' - новое значение параметра.
 +
 
 +
[[Файл:+.png]] '''Хинт запущен: изменить состояние объекта''' - перевести объект в состояние, при начале хинта ( включить маску).
 +
*'''объект'''- после разбора перевести объект в состояние из следующего поля.
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 +
 
 +
[[Файл:+.png]] '''Хинт завершён: изменить состояние объекта''' - перевести объект в состояние, после завершения хинта ( разблокировать маску).
 +
*'''объект'''- после разбора перевести объект в состояние из следующего поля.
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 +
 
 +
== Возможные состояния объекта ==
 +
 
 +
:''(beg)'' — пауза перед состоянием ''(open)'';
 +
:''(open)'' — картинка появляется по прозрачности от нуля до единицы;
 +
:''(start)'' — начальный показ картинки;
 +
:''(mix)'' — перемещать ячейки;
 +
:''(scale)'' — масштабирование (изменение размера) пазла;
 +
:''(wait)'' — ожидание первого клика на ячейку;
 +
:''(check)'' — проверка собранности пазла, если собран — переход в состояние ''(final)'';
 +
:''(hint)'' — временное отображение картинки;
 +
:''(swap)'' — выделенная, или произвольная ячейка становится на свое место;
 +
:''(final)'' — показ картинки в конце игры;
 +
:''(close)'' — закрытие пазла по прозрачности;
 +
:''(end)'' — конец игры, пазл недоступен;
 +
:''(init)'' — повторная инициализация картинки, переход в состояние ''(beg)''.
 +
 
 +
== Пример ==
 +
Объект «Пазл» в редакторе выглядит так:
 +
 
 +
[[Файл:01.JPG]]
 +
 
 +
 
 +
Картинку пазла можно задать, перетянув изображение из редактора ресурсов в поле «картинка»:
 +
 
 +
[[Файл:02.JPG]]
 +
 
 +
 
 +
либо с помощью другого объекта (например кнопкой, или машиной):
 +
 
 +
[[Файл:6.2.JPG]]
 +
 
 +
 
 +
Выбор сложности игры делается отдельным экраном, на котором есть кнопки которые меняют параметры пазла:
 +
 
 +
[[Файл:6.3.JPG]]
  
−
* пазла невидима время tmBeg (состояние beg);
 
−
* пазла проявляется в течении tmOpn по alpha от 0 до заданной в общих параметрах (состояние open);
 
−
* пазла показывает исходную картинку в течении tmStt (состояние start);
 
−
* происходит перемешивание, визуализация которого длится время tmMix (состояние mix);
 
−
* основной цикл игры; когда она заканчивается - переход в состояние final;
 
−
* в состоянии final показывается исходная картинка в течении времени tmFin.
 
−
* затем, картинка исчезает по alpha до 0 (состояние close)
 
−
* пазла невидима (состояние end)
 
−
Кроме этого, в любой момент пазлу можно внешней кнопкой или машиной состояний перевести в состояние hint, в котором она по альфа исчезнет (за время tmHnt1), а исходная картинка проявится. Затем, в течении tmHnt2, будет демонстрироваться исходная картинка, и за время tmHnt3 она по alpha исчезнет, а пазла снова перейдет в стадию игры.
 
  
−
== Процесс игры ==
+
Выбор сложности на устройстве:
  
−
Управление игрой завист от того, выбрана ли мода игры 15-шки или стрнадртная пазла. Кроме этого, по разному выглядит управление, в зависимости от того, разрешены ли вращения или нет.
+
[[Файл:6.3.1.JPG]]
  
−
Если перестановки запрещены (есть только вращения), то при клике на ячейке она поворачивается, иначе - подсвечиватся. В моде игры 15-шки клик на ячейку её перемещает, если рядом находится пустая (невидимая ячейка), иначе ничего не происходит.
 
−
Повторный клик на первую ячейку или снимает пометку (если вращение запрещено), или поворачивает её по часовой стрелке. Если второй клик приходится на другую ячейку, то при разрешенных перестановках первая и вторая ячейка переставляются местами.
 
  
−
== Настройки ==
+
И, наконец, пазл на устройстве выглядит примерно так:
  
−
* '''внешний вид'''
+
[[Файл:6.4.JPG]]
−
** '''картинка''' - графический ресурс картинки пазлы. Перетаскивается мышкой из редактора ресурсов (res)
+
== Пример ==
−
** '''колонок''' - число колонок на которые разбивается пазла. (cols)
 
−
** '''строчек''' - число строчек на которые разбивается пазла. (rows)
 
−
** '''сетка?''' - если 1, то будет показана сетка при разрезке картинки на блоки. При 0 - сетки не будет. (g)
 
−
** '''пометка''' - прозрачность помеченной ячеки (от 0-невидима, до 1-полностью непрозрачна). (alChk)
 
−
** '''фон''' - прозрачность исходной картинки, рисуемой под пазлой (если 0, то не рисуется). (alBkg)
 
−
* '''смешивать'''
 
−
** '''перестановку''' - если 1, то при перестановке ячеек происходит смешивание по alpha, иначе ячейки перелетают. (alSwp)
 
−
** '''вращение''' - если 1, то при вращении ячейки происходит смешивание по alpha, иначе ячейка поворачивается. (alRot)
 
−
* '''правила'''
 
−
** '''вращений''' - число возможных углов поворота каждой ячейки пазлы (если 0 - то вращать ячейки нельзя). (rot)
 
−
** '''переставлять?''' - если 1, то можно переставлять ячейки местами. (swp)
 
−
** '''пятнашки''' - если 1, то играем по правилам пятнашек (одна ячека - нижняя левая, невидимая). (fif)
 
−
* '''времена этапов'''
 
−
** '''невидимости''' - начальная пауза перед откртыием пазлы. (tmBeg)
 
−
** '''открытия''' - время открытия исходной картинки (проявляется по alpha). (tmOpn)
 
−
** '''показа''' - время показа исходной картинки (после проявления). (tmStt)
 
−
** '''перемешивания''' - время визуализации процесса перемешивания ячеек. (tmMix)
 
−
** '''финала''' - время финального показа пазлы после её разбора, перед переходом к закрытию. (tmFin)
 
−
** '''закрытия''' - время закрытия пазлы (в состояниия close, исчезает по alpha). (tmCls)
 
−
* '''времена игры'''
 
−
** '''перестановки''' - аремя перестановки двух ячеек местами при их выборе. (tmSwp)
 
−
** '''поворота''' - время поворота ячейки при повторном клике на нее. (tmRot)
 
−
** '''паузы''' - время паузы перед началом перстановки или поворота. (tmShw)
 
−
** '''подсказки1''' - время за которое проявляется исходная картинка в состоянии hint. (tmHnt1)
 
−
** '''подсказки2''' - время в течении которого показывается после проявления исходная картинка в состоянии hint. (tmHnt2)
 
−
** '''подсказки3''' - время в течении которого закрывается после показа исходная картинка в состоянии hint. tmHnt3
 
−
* '''изменить состояние объекта'''
 
−
** '''объект''' - после разбора перевести объект в состояние из следующего поля. (obj)
 
−
** '''состояние''' - новое состояние для объекта из предыдущего поля. (st)
 
−
* '''изменить параметр объекта'''
 
−
** '''объект''' - после разбора этот объект меняет свой параметр. (obj)
 
−
** '''свойство''' - параметр, который мы изменяем. (par)
 
−
** '''значение''' - новое значение параметра. (val)
 
  
−
== Состояния ==
+
[http://fs5.absolutist.com/files/wikisample/Puzzle.rar Download]
  
−
* '''beg''' - пауза перед состоянием open; пазла невидима
+
[[Category:Game mechanic]]
−
* '''open''' - появляется по alpha-каналу
 
−
* '''start''' - начальный показ картинки
 
−
* '''mix''' - перемешать ячейки
 
−
* '''wait1''' - ждем первого клика на ячейку
 
−
* '''check''' - проверка собранности картинки; если собрана - переход на final
 
−
* '''hint''' - временно показать исходную картинку, проявляясь по alpha
 
−
* '''final''' - перейти в показ исходной картинки
 
−
* '''close''' - исчезает по alpha-каналу
 
−
* '''end''' - недоступна, невидима
 
−
* '''init''' - повторная инициализация картинки; переход в beg
 

Текущая версия на 10:39, 29 июля 2019

Puzzle1.png

Пазл (puzzle) — встроенный объект редактора, имеющий определенную игровую механику, которая заключается в том, чтобы собрать необходимое изображение из прямоугольных ячеек (частей) за минимальное количество шагов (перемещений частей пазла).

Немного о графике

Для придания ячейкам объема служит графический ресурс рамка (собственный бордюр ячейки). Он может быть квадратной картинкой, прозрачной в центре и с серой полупрозрачной маской на краях. Её размер особой роли не играет. Например, 128x128:

Border.png

Общая ширина и высота картинки пазла задает игровое поле. Кроме этого есть поля ширина пазла и высота пазла, которые определяют размер центральной области картинки, которая разбивается на ячейки. Если эта область меньше размеров картинки, появится внешний бордюр, помогающий при сборке.

Игровые механики и режимы пазла

  • Ячейки пазла можно переставлять и вращать. По мере сбора пазла ячейки, оказывающиеся на своем месте, лишаются собственного бордюра и пазл постепенно проявляется
  • У пазла может быть внешний бордюр (часть исходного изображения), который не разрезается на части и помогает при сборке.
  • Пазл может быть увеличен и снова уменьшен

Возможны две игровые механики пазла:

  • обычная - все ячейки есть на игровом поле
  • пятнашки - одной ячейки нет (аналог обычных пятнашек).

Замечание. Чтобы корректно работала механика "пятнашки", в правилах нужно указать значение 1 для параметров "переставлять?" и "пятнашки". Если в "переставлять?" будет значение 0, то пазл будет запускаться с механикой "пятнашки", но уже в собранном виде.

Существует три уровня сложности сбора пазла с обычной механикой :

  • Легкий
  • Эксперт
  • Мастер

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

Важное замечание

В процессе сбора пазла на устройство сохраняются файлы, в которые записывается информация о ходе игры (какие пазлики на месте, а какие - нет). Структура имени файла, сохраняемого на устройство p<id_картинки>_<rows>_<cols>.puz (например p107_6_8.puz) .
При повторном сборе пазла или повторном открытии загружается информация из этих файлов, т.е. мы увидим то же состояние пазла, что и перед выходом с этого экрана. Рекомендуется создать кнопку, дающую пользователю возможность начать игру с начала. .

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

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

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

  • Картинка (res) — это исходное изображение (графический ресурс) которое нужно собрать;
  • Колонок (cols) — количество колонок, на которые разбивается картинка;
  • Строчек (rows) — количество строчек (рядов), на которые разбивается картинка;
  • Сетка? (g) — отображение сетки:
1 — отображается сетка после разделения картинки на ячейки,
0 — сетка не отображается;
  • Пометка (alChk) — прозрачность выбранной ячейки пазла в диапазоне от нуля (полностью прозрачна, или невидима) до единицы (полностью не прозрачна, или видима);
  • Фон (alBkg) — прозрачность (от нуля до единицы) исходной картинки, отображаемой под пазлом в игровом поле;
  • Ширина пазла (vW) — размер ширины игрового поля в пикселях;
  • Высота пазла (vH) — размер высоты игрового поля в пикселях;
  • Маска (msk) — графический ресурс (изображение), которое накладывается на картинку (например текстура для придания изображению рельефности);
  • Рамка (fr) — графический ресурс для рамки по краям ячейки;
  • Рамка активной (fra) — графический ресурс для рамки вокруг активной ячейки;
  • Рамка соседей (frn) — графический ресурс для рамок вокруг соседних ячеек;
  • Флаер (fly) — флаер (подробнее см. объект редактора «флаер»), изображающий удачный ход. Он будет запущен над ячейкой которая встала на свое место.


Группа - звуки (Звуковые ресурсы перетаскивается мышью из редактора ресурсов в поле параметра, которое должно находится в состоянии редактирования))

  • Выбор (sDn) — звук при выборе ячейки;
  • Перестановка (sSh) — звук при перестановке ячеек;
  • На месте (sOk) — звук при становлении ячейки на нужное место.


Группа - смешивать

  • Перестановку (alSwp) — при поочередном выборе ячеек кликом мыши для перестановки, возможны два варианта визуализации этого процесса:
1 — ячейки остаются неподвижными, изменяются лишь их изображения по прозрачности (от нуля до единицы);
0 — происходит перемещение ячеек (ячейки меняются местами);
  • Вращение (alRot) — визуализацию поворот ячейки в режиме «мастер» возможно осуществить двумя способами:
1 — ячейка остается неподвижной, изменяется лишь ее изображение по прозрачности (от нуля до единицы);
0 — происходит поворот ячейки.


Группа - правила

  • Вращений (rot) — число возможных поворотов каждой ячейки пазла:
0 — ячейки повернуть нельзя;
2 — два варианта положения ячейки, или поворот на 180°;
4 — четыре варианта положения ячейки, или поворот на 90°;
  • Переставлять? (swp) — переставление ячеек местами путем поочередного выбора их мышью:
0 — нельзя,
1 — можно;
  • Пятнашки (fif) — механика игры:
0 — обычная механика игры,
1 — играем в пятнашки (см. игровые механики и режимы пазла);
  • Соседи (nei) — какие ячейки можно переставлять:
0 - переставлять можно любые ячейки,
1 — переставлять можно только соседние элементы.
  • Таскать (is_drag) — ячейки смениваются только поочередными кликами или еще дропом одну на другую:
0 - нельзя,
1 — можно.


Группа - времена этапов

  • Невидимости (tmBeg) — время паузы перед открытием пазла;
  • Открытия (tmOpn) — время открытия картинки;
  • Показа (tmStt) — время отображения картинки перед тем, как она разделится на ячейки и перемешается. Это необходимо для того, чтобы игрок успел ознакомиться с изображением, которое ему необходимо собрать;
  • Перемешивания (tmMix) — время визуализации процесса перемешивания ячеек пазла;
  • Финала (tmFin) — время показа картинки когда она собрана. Это необходимо для того, чтобы игрок смог насладиться результатом своих стараний, а также смог повнимательнее разглядеть картинку;
  • Закрытия (tmCls) — время закрытия пазла (переход в состояние (close) по прозрачности (alpha) от единицы до нуля).


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

  • Таймер (timer) — объект редактора «timer» привязывается к пазлу и дает возможность собирать пазл определенное время, или использовать его для спортивного интереса, фиксируя время, за которое игрок соберет пазл. Таким образом игрок сможет с гордостью заявить своим друзьям, что он собрал пазл за такое-то время;
  • Лучшее время (tmBest) — самое короткое время, за которое игрок собрал пазл. Оно считается лучшим и фиксируется в опциях для использования в прогрессе (см. объект редактора «progress»);
  • Счетчик (count) — объект редактора «counter» привязывается к пазлу и фиксирует количество ходов;
  • Лучший счетчик (ctBest) — наименьшее количество ходов за которое пазл собран. Оно считается лучшим и фиксируется в опциях для использования в прогрессе;
  • Показов хинт счетчик (cntShw) — объект редактора «counter» привязывается к пазлу и фиксирует количество оставшихся подсказок-отображения (hint), тип подсказки когда картинка отображается на некоторое время;
  • Перест. хинт счетчик (cntSwp) — объект редактора «counter» привязывается к пазлу и фиксирует количество оставшихся подсказок-перестановки (swap), тип подсказки когда выделенная, или произвольная ячейка становится на свое место;
  • Игра (game) — имя игры, раздел в опциях, который надо вычитать для получения начального значения прогресса (например, для отображения результатов);
  • Уровень (level) — имя уровня, параметра в разделе игра (см. выше), который надо вычитать для получения начального значения прогресса (например, для отображения результатов). В опциях записывается как «имя игры».«имя уровня» (game.level);
  • Сохранять в профиль (prof) — сохранение значений в профиль:
1 — все значения будут сохранены в текущий профиль,
0 — глобально.
Хозяйке на заметку:
таким образом, с пазлом может быть связан таймер и три счетчика (числа ходов, и числа использования двух видов
подсказок). Если, например, счетчик числа ходов определен, в опциях (файл options.xml) сохраняются данные подобного вида:

<obj nm="options" >
   <pk1>
      <pz01 lv0="2" lv0ct="7" />
   </pk1>
</obj>
В этом примере параметр «игра» записывается как «pk1.pz01», а параметр «уровень» —  «lv0». Эти параметры могут быть заданы как в
свойствах пазла, так и внешними объектами. Наличие точки в параметре «игра» разбивает раздел опций на подразделы.


Группа - времена игры

  • Перестановки (tmSwp) — время перестановки двух ячеек местами;
  • Поворота (tmRot) — время поворота ячейки;
  • Паузы (tmShw) — время паузы перед началом перестановки или поворота;
  • Подсказки1 (tmHnt1) — время за которое проявляется исходная картинка в состоянии (hint);
  • Подсказки2 (tmHnt2) — время в течении которого показывается исходная картинка в состоянии (hint) после проявления;
  • Подсказки3 (tmHnt3) — время в течении которого закрывается исходная картинка в состоянии (hint) после проявления.
  • Рейтинг (raiting) — если 1 — после того как пазл собран, отображается рейтинг.

Подсказки

В игре есть два вида подсказок: (hint) и (swap). Первый проявляет исходную картинку, второй переставляет две ячейки местами, из которых, по крайней мере одна, окажется на своем месте. Если кнопкой или машиной состояний перевести пазл в состояние (hint), то он исчезнет по прозрачности (за время tmHnt1), а исходная картинка проявится. Затем, в течении (tmHnt2), будет демонстрироваться исходная картинка, и за время (tmHnt3), она по прозрачности исчезнет, а пазл снова перейдет в стадию игры. Состояние (swap) ставит одну из ячеек (выделенную игроком, или произвольную) на свое место. Кроме этого пазл можно перевести в состояние (scale). В этом состоянии он увеличивается в размерах и его можно таскать по экрану. Повторение состояния (scale) уменьшает возвращает пазлу исходные размеры.

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

Paz add par.jpg

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

+.png Изменить состояние объекта - После разбора перевести объект в новое состояние.

  • объект- после разбора перевести объект в состояние из следующего поля.
  • состояние - новое состояние для объекта из предыдущего поля.

+.png Изменить параметр объекта - После разбора изменить параметр объекта.

  • объект- после разбора этот объект меняет свой параметр.
  • свойство - параметр, который мы изменяем.
  • значение - новое значение параметра.

+.png Хинт запущен: изменить состояние объекта - перевести объект в состояние, при начале хинта ( включить маску).

  • объект- после разбора перевести объект в состояние из следующего поля.
  • состояние - новое состояние для объекта из предыдущего поля.

+.png Хинт завершён: изменить состояние объекта - перевести объект в состояние, после завершения хинта ( разблокировать маску).

  • объект- после разбора перевести объект в состояние из следующего поля.
  • состояние - новое состояние для объекта из предыдущего поля.

Возможные состояния объекта

(beg) — пауза перед состоянием (open);
(open) — картинка появляется по прозрачности от нуля до единицы;
(start) — начальный показ картинки;
(mix) — перемещать ячейки;
(scale) — масштабирование (изменение размера) пазла;
(wait) — ожидание первого клика на ячейку;
(check) — проверка собранности пазла, если собран — переход в состояние (final);
(hint) — временное отображение картинки;
(swap) — выделенная, или произвольная ячейка становится на свое место;
(final) — показ картинки в конце игры;
(close) — закрытие пазла по прозрачности;
(end) — конец игры, пазл недоступен;
(init) — повторная инициализация картинки, переход в состояние (beg).

Пример

Объект «Пазл» в редакторе выглядит так:

01.JPG


Картинку пазла можно задать, перетянув изображение из редактора ресурсов в поле «картинка»:

02.JPG


либо с помощью другого объекта (например кнопкой, или машиной):

6.2.JPG


Выбор сложности игры делается отдельным экраном, на котором есть кнопки которые меняют параметры пазла:

6.3.JPG


Выбор сложности на устройстве:

6.3.1.JPG


И, наконец, пазл на устройстве выглядит примерно так:

6.4.JPG

Пример

Download