Puzzle — различия между версиями
Lkunica (обсуждение | вклад) (→Добавляемые параметры) |
Apolozova (обсуждение | вклад) м |
||
(не показано 5 промежуточных версий 3 участников) | |||
Строка 18: | Строка 18: | ||
* обычная - все ячейки есть на игровом поле<br> | * обычная - все ячейки есть на игровом поле<br> | ||
* пятнашки - одной ячейки нет (аналог обычных пятнашек). <br> | * пятнашки - одной ячейки нет (аналог обычных пятнашек). <br> | ||
+ | |||
+ | '''''Замечание.''''' Чтобы корректно работала механика "пятнашки", в правилах нужно указать значение 1 для параметров "переставлять?" и "пятнашки". Если в "переставлять?" будет значение 0, то пазл будет запускаться с механикой "пятнашки", но уже в собранном виде. | ||
+ | |||
Существует три уровня сложности сбора пазла с обычной механикой : | Существует три уровня сложности сбора пазла с обычной механикой : | ||
* Легкий | * Легкий | ||
Строка 27: | Строка 30: | ||
== Важное замечание == | == Важное замечание == | ||
В процессе сбора пазла на устройство сохраняются файлы, в которые записывается информация о ходе игры (какие пазлики на месте, а какие - нет). Структура имени файла, сохраняемого на устройство p<id_картинки>_<rows>_<cols>.puz (например p107_6_8.puz) . <br> | В процессе сбора пазла на устройство сохраняются файлы, в которые записывается информация о ходе игры (какие пазлики на месте, а какие - нет). Структура имени файла, сохраняемого на устройство p<id_картинки>_<rows>_<cols>.puz (например p107_6_8.puz) . <br> | ||
− | При повторном сборе пазла или повторном открытии загружается информация из этих файлов , т.е .мы увидим | + | При повторном сборе пазла или повторном открытии загружается информация из этих файлов, т.е. мы увидим то же состояние пазла, что и перед выходом с этого экрана. Рекомендуется создать кнопку, дающую пользователю возможность начать игру с начала. . <br> |
== Основные параметры пазла == | == Основные параметры пазла == | ||
Строка 65: | Строка 68: | ||
− | ''' | + | '''Группа - правила''' |
*'''Вращений''' ''(rot)'' — число возможных поворотов каждой ячейки пазла: | *'''Вращений''' ''(rot)'' — число возможных поворотов каждой ячейки пазла: | ||
:'''0''' — ячейки повернуть нельзя; | :'''0''' — ячейки повернуть нельзя; | ||
Строка 79: | Строка 82: | ||
:'''0''' - переставлять можно любые ячейки, | :'''0''' - переставлять можно любые ячейки, | ||
:'''1''' — переставлять можно только соседние элементы. | :'''1''' — переставлять можно только соседние элементы. | ||
+ | *'''Таскать''' ''(is_drag)'' — ячейки смениваются только поочередными кликами или еще дропом одну на другую: | ||
+ | :'''0''' - нельзя, | ||
+ | :'''1''' — можно. | ||
Строка 86: | Строка 92: | ||
*'''Показа''' ''(tmStt)'' — время отображения картинки перед тем, как она разделится на ячейки и перемешается. Это необходимо для того, чтобы игрок успел ознакомиться с изображением, которое ему необходимо собрать; | *'''Показа''' ''(tmStt)'' — время отображения картинки перед тем, как она разделится на ячейки и перемешается. Это необходимо для того, чтобы игрок успел ознакомиться с изображением, которое ему необходимо собрать; | ||
*'''Перемешивания''' ''(tmMix)'' — время визуализации процесса перемешивания ячеек пазла; | *'''Перемешивания''' ''(tmMix)'' — время визуализации процесса перемешивания ячеек пазла; | ||
− | *'''Финала''' ''(tmFin)'' — время показа | + | *'''Финала''' ''(tmFin)'' — время показа картинки когда она собрана. Это необходимо для того, чтобы игрок смог насладиться результатом своих стараний, а также смог повнимательнее разглядеть картинку; |
*'''Закрытия''' ''(tmCls)'' — время закрытия пазла (переход в состояние (close) по прозрачности (alpha) от единицы до нуля). | *'''Закрытия''' ''(tmCls)'' — время закрытия пазла (переход в состояние (close) по прозрачности (alpha) от единицы до нуля). | ||
'''Группа - счетчики''' | '''Группа - счетчики''' | ||
− | *'''Таймер''' ''(timer)'' — объект редактора [http://ge.absolutist.com/index.php/Timer «timer»] привязывается к пазлу и дает возможность собирать пазл определенное время, или использовать его для спортивного интереса, | + | *'''Таймер''' ''(timer)'' — объект редактора [http://ge.absolutist.com/index.php/Timer «timer»] привязывается к пазлу и дает возможность собирать пазл определенное время, или использовать его для спортивного интереса, фиксируя время, за которое игрок соберет пазл. Таким образом игрок сможет с гордостью заявить своим друзьям, что он собрал пазл за такое-то время; |
*'''Лучшее время''' ''(tmBest)'' — самое короткое время, за которое игрок собрал пазл. Оно считается лучшим и фиксируется в опциях для использования в прогрессе (см. объект редактора «progress»); | *'''Лучшее время''' ''(tmBest)'' — самое короткое время, за которое игрок собрал пазл. Оно считается лучшим и фиксируется в опциях для использования в прогрессе (см. объект редактора «progress»); | ||
*'''Счетчик''' ''(count)'' — объект редактора [http://ge.absolutist.com/index.php/Counter «counter»] привязывается к пазлу и фиксирует количество ходов; | *'''Счетчик''' ''(count)'' — объект редактора [http://ge.absolutist.com/index.php/Counter «counter»] привязывается к пазлу и фиксирует количество ходов; | ||
Строка 99: | Строка 105: | ||
*'''Игра''' ''(game)'' — имя игры, раздел в опциях, который надо вычитать для получения начального значения прогресса (например, для отображения результатов); | *'''Игра''' ''(game)'' — имя игры, раздел в опциях, который надо вычитать для получения начального значения прогресса (например, для отображения результатов); | ||
*'''Уровень''' ''(level)'' — имя уровня, параметра в разделе игра (см. выше), который надо вычитать для получения начального значения прогресса (например, для отображения результатов). В опциях записывается как «имя игры».«имя уровня» (game.level); | *'''Уровень''' ''(level)'' — имя уровня, параметра в разделе игра (см. выше), который надо вычитать для получения начального значения прогресса (например, для отображения результатов). В опциях записывается как «имя игры».«имя уровня» (game.level); | ||
− | *'''Сохранять в профиль''' ''(prof)'' — сохранение | + | *'''Сохранять в профиль''' ''(prof)'' — сохранение значений в профиль: |
:'''1''' — все значения будут сохранены в текущий профиль, | :'''1''' — все значения будут сохранены в текущий профиль, | ||
:'''0''' — глобально. | :'''0''' — глобально. | ||
Строка 146: | Строка 152: | ||
[[Файл:+.png]] '''Изменить параметр объекта''' - После разбора изменить параметр объекта. | [[Файл:+.png]] '''Изменить параметр объекта''' - После разбора изменить параметр объекта. | ||
*'''объект'''- после разбора этот объект меняет свой параметр. | *'''объект'''- после разбора этот объект меняет свой параметр. | ||
− | *'''свойство''' - | + | *'''свойство''' - параметр, который мы изменяем. |
*'''значение''' - новое значение параметра. | *'''значение''' - новое значение параметра. | ||
+ | |||
+ | [[Файл:+.png]] '''Хинт запущен: изменить состояние объекта''' - перевести объект в состояние, при начале хинта ( включить маску). | ||
+ | *'''объект'''- после разбора перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | [[Файл:+.png]] '''Хинт завершён: изменить состояние объекта''' - перевести объект в состояние, после завершения хинта ( разблокировать маску). | ||
+ | *'''объект'''- после разбора перевести объект в состояние из следующего поля. | ||
+ | *'''состояние''' - новое состояние для объекта из предыдущего поля. | ||
== Возможные состояния объекта == | == Возможные состояния объекта == | ||
:''(beg)'' — пауза перед состоянием ''(open)''; | :''(beg)'' — пауза перед состоянием ''(open)''; | ||
− | :''(open)'' — картинка | + | :''(open)'' — картинка появляется по прозрачности от нуля до единицы; |
:''(start)'' — начальный показ картинки; | :''(start)'' — начальный показ картинки; | ||
:''(mix)'' — перемещать ячейки; | :''(mix)'' — перемещать ячейки; | ||
Строка 166: | Строка 180: | ||
== Пример == | == Пример == | ||
− | Объект «Пазл» в | + | Объект «Пазл» в редакторе выглядит так: |
[[Файл:01.JPG]] | [[Файл:01.JPG]] |
Текущая версия на 10:39, 29 июля 2019
Пазл (puzzle) — встроенный объект редактора, имеющий определенную игровую механику, которая заключается в том, чтобы собрать необходимое изображение из прямоугольных ячеек (частей) за минимальное количество шагов (перемещений частей пазла).
Немного о графике
Для придания ячейкам объема служит графический ресурс рамка (собственный бордюр ячейки). Он может быть квадратной картинкой, прозрачной в центре и с серой полупрозрачной маской на краях. Её размер особой роли не играет. Например, 128x128:
Общая ширина и высота картинки пазла задает игровое поле. Кроме этого есть поля ширина пазла и высота пазла, которые определяют размер центральной области картинки, которая разбивается на ячейки. Если эта область меньше размеров картинки, появится внешний бордюр, помогающий при сборке.
Игровые механики и режимы пазла
- Ячейки пазла можно переставлять и вращать. По мере сбора пазла ячейки, оказывающиеся на своем месте, лишаются собственного бордюра и пазл постепенно проявляется
- У пазла может быть внешний бордюр (часть исходного изображения), который не разрезается на части и помогает при сборке.
- Пазл может быть увеличен и снова уменьшен
Возможны две игровые механики пазла:
- обычная - все ячейки есть на игровом поле
- пятнашки - одной ячейки нет (аналог обычных пятнашек).
Замечание. Чтобы корректно работала механика "пятнашки", в правилах нужно указать значение 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) уменьшает возвращает пазлу исходные размеры.
Добавляемые параметры
Меню выбора Добавляемые параметры к объектам активируется по правой кнопки мыши.
Изменить состояние объекта - После разбора перевести объект в новое состояние.
- объект- после разбора перевести объект в состояние из следующего поля.
- состояние - новое состояние для объекта из предыдущего поля.
Изменить параметр объекта - После разбора изменить параметр объекта.
- объект- после разбора этот объект меняет свой параметр.
- свойство - параметр, который мы изменяем.
- значение - новое значение параметра.
Хинт запущен: изменить состояние объекта - перевести объект в состояние, при начале хинта ( включить маску).
- объект- после разбора перевести объект в состояние из следующего поля.
- состояние - новое состояние для объекта из предыдущего поля.
Хинт завершён: изменить состояние объекта - перевести объект в состояние, после завершения хинта ( разблокировать маску).
- объект- после разбора перевести объект в состояние из следующего поля.
- состояние - новое состояние для объекта из предыдущего поля.
Возможные состояния объекта
- (beg) — пауза перед состоянием (open);
- (open) — картинка появляется по прозрачности от нуля до единицы;
- (start) — начальный показ картинки;
- (mix) — перемещать ячейки;
- (scale) — масштабирование (изменение размера) пазла;
- (wait) — ожидание первого клика на ячейку;
- (check) — проверка собранности пазла, если собран — переход в состояние (final);
- (hint) — временное отображение картинки;
- (swap) — выделенная, или произвольная ячейка становится на свое место;
- (final) — показ картинки в конце игры;
- (close) — закрытие пазла по прозрачности;
- (end) — конец игры, пазл недоступен;
- (init) — повторная инициализация картинки, переход в состояние (beg).
Пример
Объект «Пазл» в редакторе выглядит так:
Картинку пазла можно задать, перетянув изображение из редактора ресурсов в поле «картинка»:
либо с помощью другого объекта (например кнопкой, или машиной):
Выбор сложности игры делается отдельным экраном, на котором есть кнопки которые меняют параметры пазла:
Выбор сложности на устройстве:
И, наконец, пазл на устройстве выглядит примерно так: