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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Шаблон ячейки)
(Шаблон ячейки)
Строка 204: Строка 204:
 
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''
 
*''shuffle'' - ячейка в состоянии перемещения. Перед попаданием в это состояние wordsearch переводит ее в состояние ''set''
 
*''swap'' - ячейка в состоянии свапа.
 
*''swap'' - ячейка в состоянии свапа.
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в другое состояние.
+
*''remove'' - ячейка находится в состоянии удаления после правильного нахождения слова. В этом состоянии можно проанимировать схлопывание и перевести самостоятельно в состояние ''destroy''
 +
*''destroy'' - в этом состоянии у ячейки
  
 
Шаблон ячейки должен содержать минимум такие объекты как:
 
Шаблон ячейки должен содержать минимум такие объекты как:

Версия 14:55, 29 сентября 2017

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


Объект 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 условия окончания: на время (есть фиксированное время за которое нужно успеть), на разблокировку (игра закончится, когда будут разблокированы все ячейки)
  • досыпание - досыпать или не досыпать ячейки при удалении слова
  • автоудаление - автоматически удалять слово при нахождении.

Времена

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

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

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

  • номер 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 - подсветка правильного слова на поле

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

Отдельного описания заслуживает шаблон ячейки. Чтобы ячейки в игре красиво анимировались существует шаблон ячейки. Это машина состояний, которую объект 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. картинка или машинка для отображения предмета, который нужно переместить вниз