Collapse
Объект «Collapse» дает возможность организовать ряд игр, основанных на 3х "модах".
Все эти механики являются играми на поле, основой, которого является регулярная решетка. Игра происходит при помощи фишек, расположенных в ячейках поля.
Содержание
Свойства
Общие параметры
- Слушатель - Объект типа matchbattle.
- Время партии - Время игры. По окончанию которого будет засчитано поражение.
Перегруженные правила
- Типов фишек - Число разновидностей типов фишек.
- Номер в фишках - Число номеров в фишках. Включая статические.
- Номер бомбы - Номер фишки, который соответствует бомбе. Не будет генерироваться сам по себе.
- Номер крестобомбы - Номер фишки, который соответствует крестобомбе, не будет генерироваться сам по себе.
- Статический номер - Номер фишки, которую нельзя добавить к пометке. Используется, например, для игры, в которой необходимо спустить статические объекты вниз, очистив при этом поле.
- Типов узлов - Число разновидностей типов нормальных узлов графа.
- Условия пометки - Условия для вхождения фишек в пометку. 0 - любые фишки, 1 - должен совпадать номер, 2 - должен совпадать цвет, 3 - должен совпадать номер и цвет фишек.
- Монотонность - Должны ли номера в первой пометке быть монотонной последовательностью.
- Мин.пометка - Минимальное число фишек помечаемых в первой пометке.
- Макс.пометка - Максимальное число фишек помечаемых в первой пометке.
- Время пометки - Пометка завершается спустя заданное в этом поле время.
- Переставлять - Фишки первой пометки переставляются.
- Уменьшать - Фишки первой пометки уменьшают свой номер.
- Удалять - Удалять ячейки первой пометки.
- Условие удаления - Условия для удаления фишек: 0 - не удалять, 1 - должен совпадать тип, 2 - должен совпадать номер, 3 - должен совпадать тип ИЛИ номер, 4 - должен совпадать тип И номер.
- Тип удаления - Тип удаления. 0 - заливка, 1 - вертикальные и горизонтальные линии, 2 - только сама пометка.
- Мин.удаление - Минимальное число фишек, которое можно удалить.
- Генерация без мачей - При генерации поля избегать готовых совпадений.
- Проверка после осыпания - После осыпания фишек ещё раз перепроверить возможные комбинации ходов.
- Добавление - Нужно ли добавлять фишки на поле. Или игра на разбор.
- Схлопывание - Нужно ли схлопывание (Ликвидация пустых столбцов).
- Менять тип узла - Увеличить ли тип нормальной ячейки, если над ней произошла трансформация фишек.
- Поддерживать число ходов - При осыпании фишек проверить поле на то, чтоб обязательно был возможный ход.
- Тащить фишку - Тащить первую фишку пометки за пальцем.
- Завершать пометку - Не ждать отпускания пальца для завершения пометки - актуально в тех случаях, когда в ней всегда одинаковое число фишек.
Перегруженные цели
- Очистить поле - Уничтожить соотв. % фишек. Не стоит комбинировать с досыпанием.
- Перекрасить поле - Перекрасить все ячейки поля в базовый тип.
- Уронить статические - Уронить все статические фишки на дно поля.
- Уничтожить фишек - Уничтожить фишек, количество через запятую.
Внешний вид
- Картинка - Графический ресурс картинки пазла.
- Фишки - Не рекомендуется использовать. Заменено на добавляемые параметр, см.ниже.
- Ячейки - Графический ресурс ячейки.
- Курсор - Курсор для выделения фишек.
- Колонок - Число колонок на которые разбивается пазл.
- Строк - Число строк на которые разбивается пазл.
- Авторазмер - Если 1, то для расчета размера ячеек используется картинка. 0 - размер ячейки = размер паззла / число ячеек
- Сетка? - Если 1, то будет показана сетка при разрезке картинки на блоки. При 0 - сетки не будет.
- Счетчик статических - Счетчик статических. Объект типа каунтер.
- Прогресс статических - Прогресс-бар статических. Объект типа progress.
Времена этапов
- невидимости - Начальная пауза перед откртыием пазлы.
- открытия - Время открытия исходной картинки (проявляется по alpha).
- показа - Время показа исходной картинки (после проявления).
- перемешивания - Время визуализации процесса перемешивания ячеек.
- финала - Время финального показа пазлы после её разбора, перед переходом к закрытию.
- закрытия - Время закрытия пазлы (в состояниия close, исчезает по alpha).
Времена игры
- перестановки - Время перестановки двух ячеек местами при их выборе.
- движения - Время движения фишек от одного узла к соседнему.
- движения верх - Время движения фишек от одного узла к соседнему при отскоке.
- отскока - Время движения фишек вверх при отскоке. Т.о. при дефолтных значениях фишка отскакивает на 200 / 600 треть высоты фишки"
- рождения и удаления - Время рождения и удаления фишки.
- поворота - Время поворота ячейки при повторном клике на нее.
- паузы - Время паузы перед началом перестановки или поворота.
- подсказки1 - Время за которое проявляется исходная картинка в состоянии hint.
- подсказки2 - Время в течении которого показывается после проявления исходная картинка в состоянии hint.
- подсказки3 - Время в течении которого закрывается после показа исходная картинка в состоянии hint.
Хинт при бездействии
- время задержки - Время бездействия, после которого следует показывать хинт.
- машина - Объект, который будет установлен между двумя фишками.
Генерация поля
- min размер кластера - min размер кластера из фишек одного типа
- max размер кластера - max размер кластера из фишек одного типа
Звуки
- нажатие на фишку - Звук нажатия на фишку.
- добавление фишки в выделение - Звук при выделении фишки (режим dots); звук воспроизводится с 2-й фишки.
- перемещение фишки - Звук перемещения фищки.
- возврат фишки - Звук возврата фищки при неудачном перемещении.
- падение фишки - Звук для падения фишки.
Добавляемые свойства
Изменить состояние / параметр объекта - выигрыш
- изменить состояние / параметр объекта в случае выигрыша.
Изменить состояние / параметр объекта - проигрыш
- изменить состояние / параметр объекта в случае проигрыша
Изменить состояние объекта - клик на одиночную
- изменить состояние объекта в случае клика на одиночную ячейку: открывает машину в которой необходимо объекту "Коллапс" установить состояние "del_last"
Звук фишки
- Удаление, появление.
Уровень сложности
- Номеров в фишках, Мин.размер кластера и Макс.размер кластера.
Графика фишки
- Обычная: графический ресурс перетаскивается из редактора ресурсов.
Эффект
- Объект, который будет вызываться при взрыве фишек. Должен иметь состояние beg.
Эффект крестобомбы
- Эффект, который будет использоваться при взрыве крестобомбы. Должен иметь состояние beg.
Состояния
- beg - пауза перед open
- open - появляется по alpha-каналу
- start - запустить новую игру (объект применяет все данные из лейаута + из файла уровней);
- sel1 - ждем окончания первой пометки
- sel1_end - показываем окончание первой пометки
- sel1_transf1 - первая трансформация первой пометки
- sel1_transf2 - вторая трансформация первой пометки
- sel2 - ждем окончания второй пометки
- sel2_end - показываем окончание второй пометки
- sel2_trands1 - первая трансформация второй пометки
- sel2_trands2 - вторая трансформация второй пометки
- born - рождение фишек
- move - перемещаем фишки
- aftermatch - проверяем, не случилось ли чего-то после движения/добавления фишек
- close - исчезает по alpha-каналу
- end - недоступна, невидима
- rotate_left - повернуть влево на 90 градусов
- rotate_right - повернуть вправо на 90 градусов
- undo - отменить один ход
- remove_color
- remove_single
- shuffle_cols
- remove_last - удалить последнюю кликнутую ячейку (покупное удаление одиночных)
Файл уровней
Объект умеет загружать настройки из файла уровней, для этих целей у объекта должны быть заданы:
- файл уровня(levelFile) - путь к xml файлу уровней;
- номер уровня(levelNum) - id уровня из файла уровней;
На текущий момент объект вычитывает уровень из файла только при старте, т.е. чтобы сменить уровень нужно или сменить экран или проинитить сцену с коллапсом.
Структура файла
<levels> <!-- style --> <style id="3"> <tokens norm="355"/> <tokens norm="356"/> </style> <!-- levels --> <level id="1" rows="2" cols="2" numTokenNums="2" > <field> 0,0, 0,0 </field> </level> <level id="2" rows="2" cols="2" numTokenNums="2" > <field> 0,0, 0,0 </field> </level> </levels> Где <style> - стиль в котором перечисляем настройки фишек (resID); <level> - один игровой уровень <field> - стартовая настройка поля
Поле
Итак поле для объекта это строка которая имеет разделитель фишки "," при этом пробелы игнорируются. Код каждой фишки может состоять от 1 до 5-ти символов "NTKXY". Т.е. объект воспринимает поле как последовательность "NTKXY,NTKXY,NTKXY,NTKXY".
Значение символов:
- N - индекс фишки объекта ( стартует с "0");
- 0 - рандомная обычная фишка;
- 0-9 - рандомная обычная фишка;
- * - "дырка" (пустая ячейка) которая никогда не заполнится;
- # - "разовая дырка" (пустая ячейка) которая может заполнится (для Аркады);
Цели
Важно указать в самом объекте флаг "перегрузка целей"(override_goal) и зануляем все параметры в теге "перегруженные цели" - чтобы не добавлялись цели которые нам не нужны (уронить статические, очистить поле).
- goalAny - выбить N фишек (у объекте параметр goal_any);
- goalLines - выжить N генераций линий, для Аркады (у объекта параметр goal_lines);
- goalLocks - убрать N замков (у объекта параметр goal_locks);
- goalTokens - выбить N фишек конкретного цвета (последовательность через запятую для каждого нужного цвета); Объект пишет N параметров в себя goal_num_%N%, где %N% - номер фишки (нумерация с 0);Важно задавать количество цветов numTokenNums не меньшим чем количество целей - иначе уровень нельзя будет пройти;
Параметры
- id - id уровня (объект возьмёт первый уровень который совпадёт по id);
- cols - высота поля;
- rows - ширина поля;
- numTokenNums - количество цветов которые будет генерировать объект(если у вас режим дотсы - будьте бдительны, статическая фишка тоже считается цветом, и по-умолчанию она будет первой фишкой);
- needCollapse - схлопывание фишек при пустой вертикальной линии;
- needBirth - досыпание фишек (для аркады можно не указывать);
- style - id стиля, применит указанный стиль (применит настройки фишек из стиля и запишет в себя строку tokenStyle (resID фишек через запятую));
- chameleonTime - время изменения фишки-Хамелеон (у объекта параметр currentDt);
- chameleonColors - перечень цветов, которые будет менять фишка-Хамелеон (у объекта параметр chameleonColors);
Бонусы
Аркада
Режим в котором ряд фишек добавляется снизу через время со сдвигом поля вверх. При этом проигрышь случается в случае когда мы не можем добавить ряд (размер поля увеличивается). В данном режиме очень не желательно использовать отмену действия (состояние undo).
- dt0 - если больше 0 - включается режим аркады;
- n - количество линий через которое время уменьшиться на множитель;
- mult - множитель на которое уменьшиться время;
При работе режима, объект записывает строку (nextLine) в которой указан добавляемый ряд (цифры эквиваленты индексу фишки) и пинает обработчик - "запланирована новая линия в аркаде".
Пример
S:\!MOBILE\!!!EditorGames\Wiki_sample\test_collaps.zip