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

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

Текущая версия на 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