Wordsearch — различия между версиями
Avereskun (обсуждение | вклад) (→Другие параметры) |
Astepin (обсуждение | вклад) (→Шаблон ячейки) |
||
(не показано 27 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{TOC right}} | {{TOC right}} | ||
− | + | [[Файл:Words example.jpg|300px|thumb|Пример игрового интерфейса]]<br> | |
− | [[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим с досыпанием. | + | [[Object|Объект]] '''Wordsearch''' дает возможность организовать ряд игр поиска слов на поле в виде сетки. Игра на данный момент имеет два настраиваемых режима: режим разбора поля и режим аркада (с досыпанием). |
=Словарь= | =Словарь= | ||
Строка 16: | Строка 16: | ||
=Настройка игровой сетки= | =Настройка игровой сетки= | ||
+ | *'''строк''' - количество строк игрового поля | ||
+ | *'''столбцов''' - количество столбцов игрового поля | ||
+ | *'''тип сетки''' - выбор типов сетки: прямоугольная, шестиугольная | ||
+ | *'''отсутствующие ячейки''' - номера ячеек через запятую, которые должны отсутствовать. В этом случае на их месте будет пустота. Таким образом можно полю придавать различную форму | ||
+ | *'''видимость сетки''' - показывать или нет сетку поля (рамочку) | ||
+ | *'''цвет''' - цвет этой сетки | ||
+ | |||
=Ячейка сетки= | =Ячейка сетки= | ||
+ | *'''размер ячейки''' - размер ячейки в пикселях. Размер поля формируется как сумма размеров ячеек и отступов между ними. Поэтому заранее установить фиксированный размер не получится | ||
+ | *'''отступ между ячейками''' - отступ между ячейками | ||
+ | *'''размер буквы относительно ячейки''' - размер буквы, помещаемой в ячейку. Измеряется от 0 до 1 | ||
+ | *'''графика ячейки''' - графика ячейки это анимация минимум из 5 кадров. 1 - графика в нормальном состоянии, 2 - графика выделенной ячейки, 3 - правильно отгаданное слово, 4 - неправильно отгаданное слово, 5 - слово выделенное хинтом | ||
+ | **'''прямоугольной''' - ссылка на графический ресурс (анимация) ячейки прямоугольной формы | ||
+ | **'''шестиугольной''' - ссылка на графический ресурс (анимация) ячейки шестиугольной формы | ||
+ | *'''графика блока ячейки''' - ссылка на графический ресурс, которым будет помечена залоченная ячейка. Ячейка может быть залоченной несколько раз. Этот ресурс помещается с левой стороны ячейки и с небольшим интервалом копируется столько раз сколько раз залочена ячейка. Не очень удобная реализация | ||
+ | *'''графика опадающей ячейки''' - ссылка на графический ресурс предмета, который нужно опустить вниз | ||
+ | *'''шаблон ячейки''' - машина, олицетворяющая собой ячейку, которая потом будет расклонирована. Нужна для создания всяких красивостей. Подробнее [[Wordsearch#Шаблон ячейки|тут]] | ||
+ | *'''ячейка без графики''' - в случае отсутствия графики для ячеек этими цветами они заливаются по умолчанию. 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 номер. Какие есть изинги можно найти [[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''' - разброс по времени между стартом перемещения ячеек | ||
+ | |||
=Звуки= | =Звуки= | ||
Для различных игровых действий можно вставлять звуки. Список доступных действий: | Для различных игровых действий можно вставлять звуки. Список доступных действий: | ||
Строка 32: | Строка 154: | ||
=Шрифты= | =Шрифты= | ||
+ | В этом разделе настраиваются шрифты для отображения букв на поле в случае если не указан шаблон ячейки. В нем почему-то всего 3 настройки: шрифт невыделенной ячейки, шрифт выделенной ячейки и шрифт правильно выделенной ячейки. | ||
+ | |||
=Очки= | =Очки= | ||
+ | *'''очки''' - ссылка на счетчик, который отображает набранные очки | ||
+ | *'''доп. очки''' - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих | ||
+ | *'''очков за букву''' - количество очков за одну букву | ||
+ | *'''коэффициент весов''' - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву. | ||
+ | *'''анимация полета очков''' - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние ''beg''. Также в нее параметром ''score_per_word'' передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки. | ||
+ | |||
+ | =Стрелки= | ||
+ | Объекты типа машина отображающий стрелку перехода. | ||
+ | *'''при выборе''' - машина отображающая стрелку при выборе пользователем | ||
+ | *'''при хинте побуквенно''' - машина отображающая стрелку при хинте побуквено | ||
+ | *'''при хинте целиком''' - машина отображающая стрелку при хинте целиком | ||
+ | |||
=Другие параметры= | =Другие параметры= | ||
*'''таймер''' - ссылка на объект таймера для отображения оставшегося времени | *'''таймер''' - ссылка на объект таймера для отображения оставшегося времени | ||
Строка 39: | Строка 175: | ||
=Добавляемые свойства= | =Добавляемые свойства= | ||
− | *''' ''' | + | Тут в основном находятся обработчики различных игровых событий |
+ | *'''игра окончена - закончилось время''' - в случае игры на время этот обработчик сработает, если время закончилось | ||
+ | *'''победа в режиме Разбора''' - все слова на поле в режиме разбора найдены | ||
+ | *'''если хинт не находит слово в режиме Аркада''' - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние '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'' - в этом состоянии у ячейки | ||
+ | |||
+ | Шаблон ячейки должен содержать минимум такие объекты как: | ||
+ | # картинка или машинка для отображения подложки ячейки | ||
+ | # текстовый объект для отображения буквы | ||
+ | # счетчик для отображения веса буквы | ||
+ | # картинка или машинка для отображения предмета, который нужно переместить вниз | ||
+ | |||
+ | Пример машинки шаблона [[Файл: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 - в этом состоянии у ячейки
Шаблон ячейки должен содержать минимум такие объекты как:
- картинка или машинка для отображения подложки ячейки
- текстовый объект для отображения буквы
- счетчик для отображения веса буквы
- картинка или машинка для отображения предмета, который нужно переместить вниз
Пример машинки шаблона Файл:Item cell words.zip
- Для работы шаблона нужно обязательно указать в состоянии set для параметра var "cell_size" ваш объект wordsearch, которому и задаются размеры ячейки.