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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Ячейка сетки)
(Шаблон ячейки)
 
(не показано 20 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
{{TOC right}}
 
{{TOC right}}
 
+
[[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]<br>
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим с досыпанием.
+
[[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).
  
 
=Словарь=
 
=Словарь=
Строка 36: Строка 36:
  
 
=Настройки сложности=
 
=Настройки сложности=
 +
*'''длины слов''' - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка ''30,35,35'' означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%
 +
*'''ключевое слово''' - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)
 +
*'''заполненность поля''' - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле
 +
 
=Таблица и хинты=
 
=Таблица и хинты=
 +
*'''таблица''' - ссылка на объект таблицы, в которую будут заносится слова
 +
*'''доп. таблица''' - ссылка на дополнительную таблицу в случае если 2 игрока
 +
*'''использование таблицы''' - настройки отображения слов. Такие режимы:
 +
**Не показывать слова - слова не будут отображаться в таблице
 +
**Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова
 +
**Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются
 +
**Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются
 +
*'''графика отметки''' - отмечает графикой найденное слово в таблице
 +
 
=Правила игры=
 
=Правила игры=
 +
*'''режим игры''' - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор
 +
*'''диагональные соединения''' - возможность выделять ячейки по диагонали
 +
*'''несмежные соединения''' - возможность выделять несмежные ячейки
 +
*'''условия окончания''' - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)
 +
*'''досыпание''' - досыпать или не досыпать ячейки при удалении слова
 +
*'''автоудаление''' - автоматически удалять слово при нахождении.
 +
*'''сброс выделения''' - автоматически ли снимать выделения после MouseUp
 +
*'''очки за незагаданные слова''' - начислять ли очки за незагаданные слова в режиме Разбора
 +
*'''подсвещать букву''' - подсвещать ли случайную ячейку каждого слова в режиме Разбора
 +
 
=Времена=
 
=Времена=
 +
*'''опадание''' - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать
 +
*'''досыпание''' - время, за которое досыпятся ячейки в случае удаления найденного слова
 +
*'''задержка перед досыпом''' - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки
 +
*'''перемешивания''' - время за которое ячейки переместятся на свои позиции при использовании перемешивания (''shuffle'')
 +
*'''swap''' - время, за которое 2 ячейки поменяются местами при использовании ''swap''
 +
*'''уровень''' - количество секунд на уровень. По истечению времени наступает проигрыш по времени
 +
*'''после проигрыша''' - это количество секунд добавляется после проигрыша при вызове состояния ''game_after_lose''
 +
*'''автохинт''' - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.
 +
*'''автохинт исчезновение''' - после указанного времени скрывается автохинт (мс)
 +
*'''между выделением букв (autocomplete)''' - с заданной паузой открываются буквы при autocomplete(мс)
 +
*'''между выделением слов (autocomplete)''' - с заданной паузой открываются слова при autocomplete(мс)
 +
*'''длительность ожидания выделения''' - длительность ожидания выделения (мс) после которой вызовется обработчик add_wait_over. Функционал отключен при значении -1
 +
 
=Перемешивание=
 
=Перемешивание=
 +
Настройки перемешивания ячеек
 +
*'''номер easing-а''' - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти [[Animation#Easing|тут]].
 +
{| class="article-table mw-collapsible mw-collapsed" "
 +
!Изинги
 +
|-
 +
| 1 || QUAD_IN_EASING
 +
|-
 +
| 2 || QUAD_OUT_EASING
 +
|-
 +
| 3 || QUAD_INOUT_EASING
 +
|-
 +
| 4 || BACK_IN_EASING
 +
|-
 +
| 5 || BACK_OUT_EASING
 +
|-
 +
| 6 || BACK_INOUT_EASING
 +
|-
 +
| 7 || SINE_IN_EASING
 +
|-
 +
| 8 || SINE_OUT_EASING
 +
|-
 +
| 9 || SINE_INOUT_EASING
 +
|-
 +
| 10 || CUBIC_IN_EASING
 +
|-
 +
| 11 || CUBIC_OUT_EASING
 +
|-
 +
| 12 || CUBIC_INOUT_EASING
 +
|-
 +
| 13 || QUART_IN_EASING
 +
|-
 +
| 14 || QUART_OUT_EASING
 +
|-
 +
| 15 || QUART_INOUT_EASING
 +
|-
 +
| 16 || QUINT_IN_EASING
 +
|-
 +
| 17 || QUINT_OUT_EASING
 +
|-
 +
| 18 || QUINT_INOUT_EASING
 +
|-
 +
| 19 || EXPO_IN_EASING
 +
|-
 +
| 20 || EXPO_OUT_EASING
 +
|-
 +
| 21 || EXPO_INOUT_EASING
 +
|-
 +
| 22 || ELASTIC_IN_EASING
 +
|-
 +
| 23 || ELASTIC_OUT_EASING
 +
|-
 +
| 24 || ELASTIC_INOUT_EASING
 +
|-
 +
| 25 || BOUNCE_IN_EASING
 +
|-
 +
| 26 || BOUNCE_OUT_EASING
 +
|-
 +
| 27 || BOUNCE_INOUT_EASING
 +
|-
 +
| 28 || CIRC_IN_EASING
 +
|-
 +
| 29 || CIRC_OUT_EASING
 +
|-
 +
| 30 || CIRC_INOUT_EASING
 +
|}
 +
 +
*'''deltha''' - разброс по времени между стартом перемещения ячеек
 +
 
=Звуки=
 
=Звуки=
 
Для различных игровых действий можно вставлять звуки. Список доступных действий:
 
Для различных игровых действий можно вставлять звуки. Список доступных действий:
Строка 50: Строка 154:
  
 
=Шрифты=
 
=Шрифты=
 +
В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.
 +
 
=Очки=
 
=Очки=
 
*'''очки''' - ссылка на счетчик, который отображает набранные очки
 
*'''очки''' - ссылка на счетчик, который отображает набранные очки
Строка 56: Строка 162:
 
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.
 
*'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.
 
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.
 
*'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.
 +
 +
=Стрелки=
 +
Объекты типа машина отображающий стрелку перехода.
 +
*'''при выборе''' -  машина отображающая стрелку при выборе пользователем
 +
*'''при хинте побуквенно''' - машина отображающая стрелку при хинте побуквено
 +
*'''при хинте целиком''' - машина отображающая стрелку при хинте целиком
  
 
=Другие параметры=
 
=Другие параметры=
Строка 71: Строка 183:
 
*'''найдено слово''' - сработает, когда правильно нашли слово
 
*'''найдено слово''' - сработает, когда правильно нашли слово
 
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.
 
*'''хинт успешно сработает''' - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик.
+
*'''хинт невозможен''' - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик
 
*'''ячейка разлочена''' - реакция на разлочку ячейки
 
*'''ячейка разлочена''' - реакция на разлочку ячейки
*'''падающий предмет достиг нижней строки''' - один из предметов опцстился вниз
+
*'''падающий предмет достиг нижней строки''' - один из предметов опустился вниз
 
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле
 
*'''добавить цвет отгаданной ячейки''' - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле
 +
*'''ожидание выделения закончилось''' - изменить состояние объекта когда ожидание выделения завершилось
 +
*'''повторный выбор слова из словаря''' - изменить состояние объекта когда повторно выбрано слово из словаря
 +
*'''неправильно найденое слово'''  - изменить состояние объекта когда неправильным путем выбрано правильное слово
 +
*'''найдено незагаданное слово'''  - изменить состояние объекта когда найдено незагаданное слово из словаря
 +
 
=Состояния=
 
=Состояния=
 
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит
 
*''init'' - объект подтягивает все заданные параметры, но отрисовка поля не происходит
Строка 86: Строка 203:
 
*''next_level'' - запуск следующего уровня
 
*''next_level'' - запуск следующего уровня
 
*''hint'' - подсветка правильного слова на поле
 
*''hint'' - подсветка правильного слова на поле
 +
*''hint_letter'' - вызов побуквенного хинта для текущего режима
 +
*''next_level'' - переход к следующему уровню
 +
*''game_after_lose'' - доигрывание после проигрыша с добавлением времени
 +
*''shuffle'' - перемешивание
 +
*''swap" desc'' - обмен буквами между 2мя ячейками
 +
*''swap_fly"'' - перелет при обмене буквами между 2мя ячейками
 +
*''win_1" desc="поле разобрано в режиме игры 1 (разбор)
 +
*''refill"'' - перезаполнить поле буквами
 +
*''highlight_first'' - в этом состоянии все буквы, кроме первых для каждого слова перейдут в состояние remove. Первые буквы каждого слова перейдут в состояние highlight
 +
*''autocomplete'' - состояние автозаполнения
 +
*''sel_clr'' - снять выделение
 +
*''sel_clr_next'' - снять выделение со следующего хода (начать строить новую последовательность)
 +
*''start_in_place'' - особое состояние старта (буквы не осыпаются сверху, а появляются уже на своих местах)
  
 
=Шаблон ячейки=
 
=Шаблон ячейки=
 
Отдельного описания заслуживает шаблон ячейки.
 
Отдельного описания заслуживает шаблон ячейки.
 +
Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров.
 +
Состояния, которые обязательно должны быть в шаблоне ячейки:
 +
*''init'' - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.
 +
*''set'' - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.
 +
Параметры:
 +
**''ico_bg'' - id графики подложки ячейки. Это та анимация, которая указана в параметрах "графика ячейки".
 +
**''char'' - буква, которую положим в текстовый объект
 +
**''weight'' - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет
 +
**''item_ico'' - id графики перемещаемого вниз предмета. Если -1, то предмета нет
 +
*''normal'' - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки
 +
*''selected'' - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.
 +
*''true'' - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ''ico_num''. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.
 +
*''false'' - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.
 +
*''hint'' - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4
 +
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''
 +
*''swap'' - ячейка в состоянии свапа.
 +
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''
 +
*''destroy'' - в этом состоянии у ячейки
 +
 +
Шаблон ячейки должен содержать минимум такие объекты как:
 +
# картинка или машинка для отображения подложки ячейки
 +
# текстовый объект для отображения буквы
 +
# счетчик для отображения веса буквы
 +
# картинка или машинка для отображения предмета, который нужно переместить вниз
 +
 +
Пример машинки шаблона [[Файл:Item cell words.zip]]
 +
 +
*Для работы шаблона нужно обязательно указать в состоянии set для параметра var "cell_size" ваш объект wordsearch, которому и задаются размеры ячейки.
 +
[[Файл:Wordsearch obj.png]]

Текущая версия на 14:04, 7 октября 2020

Пример игрового интерфейса


Объект Wordsearch дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием).

Словарь

  • Ссылка на словарь - ссылка на файл словаря. Словарь должен быть в формате json.
  • Язык - язык слов. На данный момент доступно 5 языков: русский, английский, французский, немецкий, испанский.

Пример словаря:
[["АГА", "АКР", "АКТ", "АРТ"], ["АВВА", "АВТО", "АЖУР", "АЗОТ", "АИСТ"], ["АББАТ", "АБВЕР", "АБЗАЦ", "АБОРТ", "АБРЕК", "АБРИС"]]

Уровни

  • Ссылка на файл уровней - для каждого уровня должен быть свой файл, поэтому в этом поле указывается имя файла (например: lvl/level.txt), к которому в последствии будет прибавлен номер уровня. Т.е. в папке 'lvl' будут лежать файлы level0.txt, level1.txt и т.д. Если это поле не заполнено, то настройки будут браться по умолчанию из полей ниже.

Файлы уровней удобней править в специальной утилите.

  • Номер - номер уровня. Передается параметром перед инициализацией.

Настройка игровой сетки

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

Ячейка сетки

  • размер ячейки - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится
  • отступ между ячейками - отступ между ячейками
  • размер буквы относительно ячейки - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1
  • графика ячейки - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом
    • прямоугольной - ссылка на графический ресурс (анимация) ячейки прямоугольной формы
    • шестиугольной - ссылка на графический ресурс (анимация) ячейки шестиугольной формы
  • графика блока ячейки - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация
  • графика опадающей ячейки - ссылка на графический ресурс предмета, который нужно опустить вниз
  • шаблон ячейки - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее тут
  • ячейка без графики - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом

Настройки сложности

  • длины слов - массив чисел через запятую, которые означают процентное соотношение слов разной длины. Например строка 30,35,35 означает, что слов с 3-я буквами будет 30%, слов с 4-я буквами 35% и с 5ю 35%
  • ключевое слово - на поле размещается слово, по буквам которого формируются другие слова (начальные буквы слов)
  • заполненность поля - процент заполненности поля словами. Работает только для досыпания. В режиме Разбора всегда 100% заполнено поле

Таблица и хинты

  • таблица - ссылка на объект таблицы, в которую будут заносится слова
  • доп. таблица - ссылка на дополнительную таблицу в случае если 2 игрока
  • использование таблицы - настройки отображения слов. Такие режимы:
    • Не показывать слова - слова не будут отображаться в таблице
    • Показывать только найденные слова (по нахождению заносить а таблицу) - актуально для режима Аркады. Заносить в таблицу правильно найденные слова
    • Показывать искомые слова в таблице (по нахождению отмечать) - актуально для Разбора. Слова уже находятся в таблице, а по нахождению зачеркиваются
    • Показывать искомые слова в таблице (по нахождению удалять) -актуально для Разбора. Слова уже находятся в таблице, а по нахождению удаляются
  • графика отметки - отмечает графикой найденное слово в таблице

Правила игры

  • режим игры - выбор режима игры. На данный момент есть 2 режима: аркада (с досыпанием) и разбор
  • диагональные соединения - возможность выделять ячейки по диагонали
  • несмежные соединения - возможность выделять несмежные ячейки
  • условия окончания - условия при которых игра закончится. На момент написания есть 2 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)
  • досыпание - досыпать или не досыпать ячейки при удалении слова
  • автоудаление - автоматически удалять слово при нахождении.
  • сброс выделения - автоматически ли снимать выделения после MouseUp
  • очки за незагаданные слова - начислять ли очки за незагаданные слова в режиме Разбора
  • подсвещать букву - подсвещать ли случайную ячейку каждого слова в режиме Разбора

Времена

  • опадание - время, за которое ячейки упадут на свои места при старте игры. Т.е. заполнится поле. Реализация опадания такова, что фактически из этого времени возьмется только 0.65 (если в настройках стоит 1000мс, то падать будут 650мс). Поэтому этот факт важно учитывать
  • досыпание - время, за которое досыпятся ячейки в случае удаления найденного слова
  • задержка перед досыпом - задержка перед досыпанием для показа различных красивостей удаления. Нужно в связке с шаблоном ячейки
  • перемешивания - время за которое ячейки переместятся на свои позиции при использовании перемешивания (shuffle)
  • swap - время, за которое 2 ячейки поменяются местами при использовании swap
  • уровень - количество секунд на уровень. По истечению времени наступает проигрыш по времени
  • после проигрыша - это количество секунд добавляется после проигрыша при вызове состояния game_after_lose
  • автохинт - время бездействия игрока, по истечению которого начинают подсвечиваться правильные слова.
  • автохинт исчезновение - после указанного времени скрывается автохинт (мс)
  • между выделением букв (autocomplete) - с заданной паузой открываются буквы при autocomplete(мс)
  • между выделением слов (autocomplete) - с заданной паузой открываются слова при autocomplete(мс)
  • длительность ожидания выделения - длительность ожидания выделения (мс) после которой вызовется обработчик add_wait_over. Функционал отключен при значении -1

Перемешивание

Настройки перемешивания ячеек

  • номер easing-а - номер изинга, который берем для красивостей движения ячеек при перемешивании. Мне нравится 6 номер. Какие есть изинги можно найти тут.
Изинги
1 QUAD_IN_EASING
2 QUAD_OUT_EASING
3 QUAD_INOUT_EASING
4 BACK_IN_EASING
5 BACK_OUT_EASING
6 BACK_INOUT_EASING
7 SINE_IN_EASING
8 SINE_OUT_EASING
9 SINE_INOUT_EASING
10 CUBIC_IN_EASING
11 CUBIC_OUT_EASING
12 CUBIC_INOUT_EASING
13 QUART_IN_EASING
14 QUART_OUT_EASING
15 QUART_INOUT_EASING
16 QUINT_IN_EASING
17 QUINT_OUT_EASING
18 QUINT_INOUT_EASING
19 EXPO_IN_EASING
20 EXPO_OUT_EASING
21 EXPO_INOUT_EASING
22 ELASTIC_IN_EASING
23 ELASTIC_OUT_EASING
24 ELASTIC_INOUT_EASING
25 BOUNCE_IN_EASING
26 BOUNCE_OUT_EASING
27 BOUNCE_INOUT_EASING
28 CIRC_IN_EASING
29 CIRC_OUT_EASING
30 CIRC_INOUT_EASING
  • deltha - разброс по времени между стартом перемещения ячеек

Звуки

Для различных игровых действий можно вставлять звуки. Список доступных действий:

  • выбор ячейки
  • неверный выбор слова
  • найдено слово
  • хинт
  • перемешивание
  • swap

Шрифты

В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки.

Очки

  • очки - ссылка на счетчик, который отображает набранные очки
  • доп. очки - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих
  • очков за букву - количество очков за одну букву
  • коэффициент весов - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.
  • анимация полета очков - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние beg. Также в нее параметром score_per_word передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.

Стрелки

Объекты типа машина отображающий стрелку перехода.

  • при выборе - машина отображающая стрелку при выборе пользователем
  • при хинте побуквенно - машина отображающая стрелку при хинте побуквено
  • при хинте целиком - машина отображающая стрелку при хинте целиком

Другие параметры

  • таймер - ссылка на объект таймера для отображения оставшегося времени
  • счетчик залоченных - ссылка на счетчик, который отображает текущее количество залоченных ячеек
  • счетчик очков за слово - ссылка на счетчик, который отображает количество очков за последнее найденное слово

Добавляемые свойства

Тут в основном находятся обработчики различных игровых событий

  • игра окончена - закончилось время - в случае игры на время этот обработчик сработает, если время закончилось
  • победа в режиме Разбора - все слова на поле в режиме разбора найдены
  • если хинт не находит слово в режиме Аркада - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'
  • на поле не осталось залоченных ячеек - все залоченные ячейки разлочены
  • на поле не осталось опадающих предметов - в случае если на поле кроме букв есть еще другие предметы (в рамках механики "опусти предмет вниз"), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля
  • найдено слово - сработает, когда правильно нашли слово
  • хинт успешно сработает - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.
  • хинт невозможен - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик
  • ячейка разлочена - реакция на разлочку ячейки
  • падающий предмет достиг нижней строки - один из предметов опустился вниз
  • добавить цвет отгаданной ячейки - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле
  • ожидание выделения закончилось - изменить состояние объекта когда ожидание выделения завершилось
  • повторный выбор слова из словаря - изменить состояние объекта когда повторно выбрано слово из словаря
  • неправильно найденое слово - изменить состояние объекта когда неправильным путем выбрано правильное слово
  • найдено незагаданное слово - изменить состояние объекта когда найдено незагаданное слово из словаря

Состояния

  • init - объект подтягивает все заданные параметры, но отрисовка поля не происходит
  • start - отрисовка поля, старт таймера
  • game - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния hint
  • pause - поле прячется, таймер становится на паузу
  • resume - поле появляется, таймер продолжает время
  • shuffle - перемешивания букв на поле
  • swap - перестановка двух букв местами
  • game_after_lose - доигрывание с добавлением N секунд, где N параметр из вкладки Времена
  • next_level - запуск следующего уровня
  • hint - подсветка правильного слова на поле
  • hint_letter - вызов побуквенного хинта для текущего режима
  • next_level - переход к следующему уровню
  • game_after_lose - доигрывание после проигрыша с добавлением времени
  • shuffle - перемешивание
  • swap" desc - обмен буквами между 2мя ячейками
  • swap_fly" - перелет при обмене буквами между 2мя ячейками
  • win_1" desc="поле разобрано в режиме игры 1 (разбор)
  • refill" - перезаполнить поле буквами
  • highlight_first - в этом состоянии все буквы, кроме первых для каждого слова перейдут в состояние remove. Первые буквы каждого слова перейдут в состояние highlight
  • autocomplete - состояние автозаполнения
  • sel_clr - снять выделение
  • sel_clr_next - снять выделение со следующего хода (начать строить новую последовательность)
  • start_in_place - особое состояние старта (буквы не осыпаются сверху, а появляются уже на своих местах)

Шаблон ячейки

Отдельного описания заслуживает шаблон ячейки. Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект wordsearch клонирует и помещает в нужную ячейку сетки поля, вызывает ей соответствующее состояние и записывает ей ряд параметров. Состояния, которые обязательно должны быть в шаблоне ячейки:

  • init - в это состояние объект машинку не переводит, но в этом состоянии она будет находится сразу после клонирования, поэтому тут можно задать какие-то начальные значения параметров, например альфу, скейл и т.д.
  • set - в это состояние wordsearch переводит шаблон после клонирования. В этом состоянии устанавливаются такие параметры как графика подложки ячейки, буква, вес буквы, иконка перемещаемого предмета. Чтобы была возможность установить эти параметры подобъектам шаблона ячейки, то в него все эти параметры записываются.

Параметры:

    • ico_bg - id графики подложки ячейки. Это та анимация, которая указана в параметрах "графика ячейки".
    • char - буква, которую положим в текстовый объект
    • weight - вес буквы. Его сложим в каунтер. Желательно сделать проверку на отличие от нуля и в зависимости от этого показывать каунтер или нет
    • item_ico - id графики перемещаемого вниз предмета. Если -1, то предмета нет
  • normal - ячейка в нормальном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать нулевой кадр анимации графики ячейки
  • selected - ячейка в выделенном состоянии. В этом состоянии можно перекрасить шрифт буквы, перекрасить счетчик с весом буквы, указать 1й кадр анимации графики ячейки. Также можно сделать простую анимацию в виде пошатывания или скейла.
  • true - ячейка в состоянии правильно отгаданного слова. Можно поменять цвета шрифтов. Для того чтобы перекрашивать правильно выделенную ячейку в разные цвета в шаблон передается параметр ico_num. Этот параметр отвечает за номер кадра анимации. Т.е. в нашей графике ячейки может быть не 5 кадров, а больше. Все что после первых 5-и кадров - это дополнительные цвета для правильно выделенной ячейки. Если таких цветов нет, то номер кадра будет 2. ВАЖНО! Количества дополнительных кадров должно быть не меньше чем количество дополнительных цветов в добавляемых параметрах wordsearch.
  • false - ячейка в состоянии неправильного выделения. Можно перекрасить шрифты, проанимировать. Поменять кадр графики на номер 3.
  • hint - ячейка в состоянии подсветки хинтом. Можно менять цвета, анимировать. Номер кадра 4
  • shuffle - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние set
  • swap - ячейка в состоянии свапа.
  • remove - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние destroy
  • destroy - в этом состоянии у ячейки

Шаблон ячейки должен содержать минимум такие объекты как:

  1. картинка или машинка для отображения подложки ячейки
  2. текстовый объект для отображения буквы
  3. счетчик для отображения веса буквы
  4. картинка или машинка для отображения предмета, который нужно переместить вниз

Пример машинки шаблона Файл:Item cell words.zip

  • Для работы шаблона нужно обязательно указать в состоянии set для параметра var "cell_size" ваш объект wordsearch, которому и задаются размеры ячейки.

Wordsearch obj.png