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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
м
 
(не показаны 42 промежуточные версии 9 участников)
Строка 1: Строка 1:
 +
{{TOC right}}
 +
 
[[Файл:puzzle1.png|right]]
 
[[Файл:puzzle1.png|right]]
'''Пазл''' (puzzle) — встроенный объект редактора, имеющий определенную игровую механику, которая заключается в том, чтобы собрать необходимое изображение из прямоугольных ячеек (частей). Ячейки пазла можно переставлять и вращать. По мере сбора пазла ячейки, оказывающиеся на своем месте, лишаются бордюра и пазл постепенно проявляется (см. рис. 1). У пазла может быть внешний бордюр (часть исходного изображения) который не разрезается на части и помогает при сборке. Пазл может быть увеличен и снова уменьшен (для работы на устройствах с маленьким экраном). Пазл сохраняется в файл с именем 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)'' — звук при выборе ячейки;
 +
*'''Перестановка''' ''(sSh)'' — звук при перестановке ячеек;
 +
*'''На месте''' ''(sOk)'' — звук при становлении ячейки на нужное место.
 +
 
 +
 
 +
'''Группа - смешивать'''
 +
*'''Перестановку''' ''(alSwp)'' — при поочередном выборе ячеек кликом мыши для перестановки, возможны два варианта визуализации этого процесса:
 +
:'''1''' — ячейки остаются неподвижными, изменяются лишь их изображения по прозрачности (от нуля до единицы);
 +
:'''0''' — происходит перемещение ячеек (ячейки меняются местами);
 +
*'''Вращение''' ''(alRot)'' — визуализацию поворот ячейки в режиме «мастер» возможно осуществить двумя способами:
 +
:'''1''' — ячейка остается неподвижной, изменяется лишь ее изображение по прозрачности (от нуля до единицы);
 +
:'''0''' — происходит поворот ячейки.
  
*'''Звуки''' ''(Звуковые ресурсы перетаскивается мышью из редактора ресурсов в поле параметра, которое должно находится в состоянии редактирования))''
 
:'''Выбор''' ''(sDn)'' — звук при выборе ячейки;
 
:'''Перестановка''' ''(sSh)'' — звук при перестановке ячеек;
 
:'''На месте''' ''(sOk)'' — звук при становлении ячейки на нужное место.
 
  
*'''Смешивать'''
+
'''Группа - правила'''
:'''Перестановку''' ''(alSwp)'' — при поочередном выборе ячеек кликом мыши для перестановки, возможны два варианта визуализации этого процесса: первый (значение параметра 1) — ячейки остаются неподвижными, изменяются лишь их изображения по прозрачности (от нуля до единицы); второй (значение параметра 0) — происходит перемещение ячеек (ячейки меняются местами);
+
*'''Вращений''' ''(rot)'' — число возможных поворотов каждой ячейки пазла:
:'''Вращение''' ''(alRot)'' — визуализацию поворот ячейки в режиме «мастер» возможно осуществить двумя способами: первый (значение параметра 1) ячейка остается неподвижной, изменяется лишь ее изображение по прозрачности (от нуля до единицы); второй (значение параметра 0) — происходит поворот ячейки.
+
:'''0''' — ячейки повернуть нельзя;
 +
:'''2''' — два варианта положения ячейки, или поворот на 180°;
 +
:'''4''' четыре варианта положения ячейки, или поворот на 90°;
 +
*'''Переставлять?''' ''(swp)'' переставление ячеек местами путем поочередного выбора их мышью:
 +
:'''0''' — нельзя,
 +
:'''1''' — можно;
 +
*'''Пятнашки''' ''(fif)'' — механика игры:
 +
:'''0''' — обычная механика игры,
 +
:'''1''' играем в пятнашки (см. игровые механики и режимы пазла);
 +
*'''Соседи''' ''(nei)'' — какие ячейки можно переставлять:
 +
:'''0''' - переставлять можно любые ячейки,
 +
:'''1''' — переставлять можно только соседние элементы.
 +
*'''Таскать''' ''(is_drag)'' — ячейки смениваются только поочередными кликами или еще дропом одну на другую:
 +
:'''0''' - нельзя,
 +
:'''1''' — можно.
  
*'''Правила'''
 
:'''Вращений''' ''(rot)'' — число возможных поворотов каждой ячейки пазла (0 — ячейки повернуть нельзя; 2 —  два варианта положения ячейки, или поворот на 180°; 4 — четыре варианта положения ячейки, или поворот на 90°);
 
:'''Переставлять?''' ''(sw)'' — если 0 — ячейки нельзя переставлять местами путем поочередного выбора их мышью, 1 — можно;
 
:'''Пятнашки''' ''(fif)'' — если 0 — обычная механика игры, 1 — играем в пятнашки (см. игровые механики и режимы пазла).
 
  
*'''Времена этапов'''
+
'''Группа - времена этапов'''
:'''Невидимости''' ''(tmBeg)'' — время паузы перед открытием пазла;
+
*'''Невидимости''' ''(tmBeg)'' — время паузы перед открытием пазла;
:'''Открытия''' ''(tmOpn)'' — время открытия картинки;
+
*'''Открытия''' ''(tmOpn)'' — время открытия картинки;
:'''Показа''' ''(tmStt)'' — время отображения картинки перед тем, как она разделится на ячейки и перемешается. Это необходимо для того, чтобы игрок успел ознакомиться с изображением, которое ему необходимо собрать;
+
*'''Показа''' ''(tmStt)'' — время отображения картинки перед тем, как она разделится на ячейки и перемешается. Это необходимо для того, чтобы игрок успел ознакомиться с изображением, которое ему необходимо собрать;
:'''Перемешивания''' ''(tmMix)'' — время визуализации процесса перемешивания ячеек пазла;
+
*'''Перемешивания''' ''(tmMix)'' — время визуализации процесса перемешивания ячеек пазла;
:'''Финала''' ''(tmFin)'' — время показа картнки когла она собрана. Это необходимо для того, чтобы игрок смог насладиться результатом своих стараний, а также смог повнимательнее разглядеть картинку;
+
*'''Финала''' ''(tmFin)'' — время показа картинки когда она собрана. Это необходимо для того, чтобы игрок смог насладиться результатом своих стараний, а также смог повнимательнее разглядеть картинку;
:'''Закрытия''' ''(tmCls)'' — время закрытия пазла (переход в состояние (close) по прозрачности (alpha) от единицы до нуля).
+
*'''Закрытия''' ''(tmCls)'' — время закрытия пазла (переход в состояние (close) по прозрачности (alpha) от единицы до нуля).
  
*'''Счетчики'''
 
:'''Таймер''' ''(time)'' — объект редактора [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 — глобально.
 
  
  Хозяйке на заметку: таким образом, с пазлом может быть связан таймер и три счетчика (числа ходов, и числа использования двух видов
+
'''Группа - счетчики'''
 +
*'''Таймер''' ''(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) сохраняются данные подобного вида:
 
  подсказок). Если, например, счетчик числа ходов определен, в опциях (файл options.xml) сохраняются данные подобного вида:
 
   
 
   
Строка 70: Строка 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 — после того как пазл собран, отображается рейтинг.
  
 +
== Подсказки ==
 +
В игре есть два вида подсказок: ''(hint)'' и ''(swap)''. Первый проявляет исходную картинку, второй переставляет две ячейки местами, из которых, по крайней мере одна, окажется на своем месте.
 +
Если кнопкой или машиной состояний перевести пазл в состояние ''(hint)'', то он исчезнет по прозрачности (за время ''tmHnt1''), а исходная картинка проявится. Затем, в течении ''(tmHnt2)'', будет демонстрироваться исходная картинка, и за время ''(tmHnt3)'', она по прозрачности исчезнет, а пазл снова перейдет в стадию игры.
 +
Состояние ''(swap)'' ставит одну из ячеек (выделенную игроком, или произвольную) на свое место.
 +
Кроме этого пазл можно перевести в состояние ''(scale)''. В этом состоянии он увеличивается в размерах и его можно таскать по экрану. Повторение состояния ''(scale)'' уменьшает возвращает пазлу исходные размеры.
  
== Подсказки ==
+
== Добавляемые параметры ==
В игре есть два вида подсказок: (hint) и (swap). Первый проявляет исходную картинку, второй переставляет две ячейки местами, из которых, по крайней мере одна, окажется на своем месте.  
+
 
Если кнопкой или машиной состояний перевести пазл в состояние (hint), то он исчезнет по прозрачности (за время tmHnt1), а исходная картинка проявится. Затем, в течении tmHnt2, будет демонстрироваться исходная картинка, и за время tmHnt3, она по прозрачности исчезнет, а пазл снова перейдет в стадию игры.
+
 
Состояние (swap) ставит одну из ячеек (выделенную игроком, или произвольную) на свое место.  
+
[[Файл:Paz add par.jpg|right]]
Кроме этого пазл можно перевести в состояние (scale). В этом состоянии он увеличивается в размерах и его можно таскать по экрану. Повторение состояния (scale) уменьшает возвращает пазлу исходные размеры.  
+
Меню выбора ''Добавляемые параметры'' к объектам активируется по правой кнопки мыши.  
 +
 
 +
[[Файл:+.png]] '''Изменить состояние объекта''' - После разбора перевести объект в новое состояние.
 +
*'''объект'''- после разбора перевести объект в состояние из следующего поля.  
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.
 +
 
 +
[[Файл:+.png]] '''Изменить параметр объекта''' - После разбора изменить параметр объекта.
 +
*'''объект'''- после разбора этот объект меняет свой параметр.
 +
*'''свойство''' - параметр, который мы изменяем.
 +
*'''значение''' - новое значение параметра.
 +
 
 +
[[Файл:+.png]] '''Хинт запущен: изменить состояние объекта''' - перевести объект в состояние, при начале хинта ( включить маску).
 +
*'''объект'''- после разбора перевести объект в состояние из следующего поля.  
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.  
  
 +
[[Файл:+.png]] '''Хинт завершён: изменить состояние объекта''' - перевести объект в состояние, после завершения хинта ( разблокировать маску).
 +
*'''объект'''- после разбора перевести объект в состояние из следующего поля.
 +
*'''состояние''' - новое состояние для объекта из предыдущего поля.
  
 
== Возможные состояния объекта ==
 
== Возможные состояния объекта ==
 +
 
:''(beg)'' — пауза перед состоянием ''(open)'';
 
:''(beg)'' — пауза перед состоянием ''(open)'';
:''(open)'' — картнка появлятся по прозрачности от нуля до единицы;
+
:''(open)'' — картинка появляется по прозрачности от нуля до единицы;
 
:''(start)'' — начальный показ картинки;
 
:''(start)'' — начальный показ картинки;
 
:''(mix)'' — перемещать ячейки;
 
:''(mix)'' — перемещать ячейки;
Строка 96: Строка 172:
 
:''(wait)'' — ожидание первого клика на ячейку;
 
:''(wait)'' — ожидание первого клика на ячейку;
 
:''(check)'' — проверка собранности пазла, если собран — переход в состояние ''(final)'';
 
:''(check)'' — проверка собранности пазла, если собран — переход в состояние ''(final)'';
:''(hint)'' — временное отбраджение картинки;
+
:''(hint)'' — временное отображение картинки;
 
:''(swap)'' — выделенная, или произвольная ячейка становится на свое место;
 
:''(swap)'' — выделенная, или произвольная ячейка становится на свое место;
 
:''(final)'' — показ картинки в конце игры;
 
:''(final)'' — показ картинки в конце игры;
Строка 103: Строка 179:
 
:''(init)'' — повторная инициализация картинки, переход в состояние ''(beg)''.
 
:''(init)'' — повторная инициализация картинки, переход в состояние ''(beg)''.
  
 +
== Пример ==
 +
Объект «Пазл» в редакторе выглядит так:
  
== Немного о графике ==
+
[[Файл:01.JPG]]
Для придания ячейкам объема служит графический ресурс '''рамка'''. Он может быть квадратной картинкой, прозрачной в центре и с серой полупрозрачной маской на краях. Её размер особой роли не играет. Например, 128x128:
+
 
 +
 
 +
Картинку пазла можно задать, перетянув изображение из редактора ресурсов в поле «картинка»:
 +
 
 +
[[Файл:02.JPG]]
 +
 
 +
 
 +
либо с помощью другого объекта (например кнопкой, или машиной):
 +
 
 +
[[Файл:6.2.JPG]]
 +
 
 +
 
 +
Выбор сложности игры делается отдельным экраном, на котором есть кнопки которые меняют параметры пазла:
 +
 
 +
[[Файл:6.3.JPG]]
 +
 
 +
 
 +
Выбор сложности на устройстве:
 +
 
 +
[[Файл:6.3.1.JPG]]
 +
 
 +
 
 +
И, наконец, пазл на устройстве выглядит примерно так:
 +
 
 +
[[Файл:6.4.JPG]]
 +
== Пример ==
  
[[Файл:border.png|center]]
+
[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