Wordsearch
Объект 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% заполнено поле
Таблица и хинты
Правила игры
Времена
Перемешивание
Звуки
Для различных игровых действий можно вставлять звуки. Список доступных действий:
- выбор ячейки
- неверный выбор слова
- найдено слово
- хинт
- перемешивание
- swap
Шрифты
Очки
- очки - ссылка на счетчик, который отображает набранные очки
- доп. очки - ссылка на счетчик, который отображает очки второго игрока в режиме игры на двоих
- очков за букву - количество очков за одну букву
- коэффициент весов - все буквы имеют веса, которые определяются по редкости использования этой буквы в словаре. Этот коэффициент влияет на величину весов для букв. Веса домножаются на количество очков за букву.
- анимация полета очков - машинка, которая клонируется и помещается при нахождении правильного слова в координаты первой буквы. Машинке вызывается состояние beg. Также в нее параметром score_per_word передается количество очков за найденное слово. Машинка может содержать в себе счетчик, в который сложим эти очки.
Другие параметры
- таймер - ссылка на объект таймера для отображения оставшегося времени
- счетчик залоченных - ссылка на счетчик, который отображает текущее количество залоченных ячеек
- счетчик очков за слово - ссылка на счетчик, который отображает количество очков за последнее найденное слово
Добавляемые свойства
Тут в основном находятся обработчики различных игровых событий
- игра окончена - закончилось время - в случае игры на время этот обработчик сработает, если время закончилось
- победа в режиме Разбора - все слова на поле в режиме разбора найдены
- если хинт не находит слово в режиме Аркада - обработчик сработает, если после нажатия хинта не удалось найти на поле слово. В этом случае есть смысл вызвать состояние 'shuffle'
- на поле не осталось залоченных ячеек - все залоченные ячейки разлочены
- на поле не осталось опадающих предметов - в случае если на поле кроме букв есть еще другие предметы (в рамках механики "опусти предмет вниз"), то этот обработчик сработает, когда все ячейки с такими предметами будут опущены вниз и выведены с игрового поля
- найдено слово - сработает, когда правильно нашли слово
- хинт успешно сработает - после вызова состояния 'hint' если есть что подсвечивать, то вызовется этот обработчик.
- хинт невозможен - после вызова состояния 'hint' если нечего подсвечивать, то вызовется этот обработчик.
- ячейка разлочена - реакция на разлочку ячейки
- падающий предмет достиг нижней строки - один из предметов опцстился вниз
- добавить цвет отгаданной ячейки - это дополнительные цвета для окраски правильно отгаданных слов для того, чтобы отгаданные слова не сливались и их можно было различить на поле
Состояния
- init - объект подтягивает все заданные параметры, но отрисовка поля не происходит
- start - отрисовка поля, старт таймера
- game - вызывается механикой после start и в остальных необходимых случаях. Например после успеха вызова состояния hint
- pause - поле прячется, таймер становится на паузу
- resume - поле появляется, таймер продолжает время
- shuffle - перемешивания букв на поле
- swap - перестановка двух букв местами
- game_after_lose - доигрывание с добавлением N секунд, где N параметр из вкладки Времена
- next_level - запуск следующего уровня
- hint - подсветка правильного слова на поле
Шаблон ячейки
Отдельного описания заслуживает шаблон ячейки.