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

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Стартовая генерация бонусов)
Строка 301: Строка 301:
 
Для того чтобы стартово на поле были бонусы (рандомное место положение), мы указываем следующие настройки:
 
Для того чтобы стартово на поле были бонусы (рандомное место положение), мы указываем следующие настройки:
 
startBomb'''N'''="'''4'''";
 
startBomb'''N'''="'''4'''";
где '''N''' - номер бонуса ( нумерация с "0"(первая цветная бомба));
+
где '''N''' - номер бонуса ( нумерация с "0"(первая цветная бомба));
    '''4''' - требуемое количество;
+
    '''4''' - требуемое количество;
  
 
===Генерация бонусов при досыпании===
 
===Генерация бонусов при досыпании===

Версия 14:10, 16 июля 2018

Объект «Collapse» дает возможность организовать ряд игр, основанных на 3х "модах".
Все эти механики являются играми на поле, основой, которого является регулярная решетка. Игра происходит при помощи фишек, расположенных в ячейках поля.

27-12-2013 14-15-18.png
27-12-2013 16-18-35.png


Свойства

Общие параметры

  • Слушатель - Объект типа matchbattle.
  • Время партии - Время игры. По окончанию которого будет засчитано поражение.


Перегруженные правила

  • Типов фишек - Число разновидностей типов фишек.
  • Номер в фишках(numTokenNums) - Число номеров в фишках которые (для текущего уровня). Включая статические.
  • макс. номеров в фишках(numTokenNumsMax) - Максимальное число номеров в фишках. Включая статические.
  • Номер бомбы - Номер фишки, который соответствует бомбе. Не будет генерироваться сам по себе.
  • Номер крестобомбы - Номер фишки, который соответствует крестобомбе, не будет генерироваться сам по себе.
  • Статический номер - Номер фишки, которую нельзя добавить к пометке. Используется, например, для игры, в которой необходимо спустить статические объекты вниз, очистив при этом поле.
  • Типов узлов - Число разновидностей типов нормальных узлов графа.
  • Условия пометки - Условия для вхождения фишек в пометку. 0 - любые фишки, 1 - должен совпадать номер, 2 - должен совпадать цвет, 3 - должен совпадать номер и цвет фишек.
  • Монотонность - Должны ли номера в первой пометке быть монотонной последовательностью.
  • Мин.пометка - Минимальное число фишек помечаемых в первой пометке.
  • Макс.пометка - Максимальное число фишек помечаемых в первой пометке.
  • Время пометки - Пометка завершается спустя заданное в этом поле время.
  • Переставлять - Фишки первой пометки переставляются.
  • Уменьшать - Фишки первой пометки уменьшают свой номер.
  • Удалять - Удалять ячейки первой пометки.
  • Условие удаления - Условия для удаления фишек: 0 - не удалять, 1 - должен совпадать тип, 2 - должен совпадать номер, 3 - должен совпадать тип ИЛИ номер, 4 - должен совпадать тип И номер.
  • Тип удаления - Тип удаления. 0 - заливка, 1 - вертикальные и горизонтальные линии, 2 - только сама пометка.
  • Мин.удаление - Минимальное число фишек, которое можно удалить.
  • Генерация без мачей - При генерации поля избегать готовых совпадений.
  • Проверка после осыпания - После осыпания фишек ещё раз перепроверить возможные комбинации ходов.
  • Добавление(needBirth) - Нужно ли добавлять фишки на поле. Или игра на разбор; Можно перегрузить настройками уровня;
  • Схлопывание(needCollapse) - Нужно ли схлопывание (Ликвидация пустых столбцов);Можно перегрузить настройками уровня;
  • Менять тип узла - Увеличить ли тип нормальной ячейки, если над ней произошла трансформация фишек.
  • Поддерживать число ходов - При осыпании фишек проверить поле на то, чтоб обязательно был возможный ход.
  • Тащить фишку - Тащить первую фишку пометки за пальцем.
  • Завершать пометку - Не ждать отпускания пальца для завершения пометки - актуально в тех случаях, когда в ней всегда одинаковое число фишек.


Перегруженные цели

  • Очистить поле - Уничтожить соотв. % фишек. Не стоит комбинировать с досыпанием.
  • Перекрасить поле - Перекрасить все ячейки поля в базовый тип.
  • Уронить статические - Уронить все статические фишки на дно поля.
  • Уничтожить фишек - Уничтожить фишек, количество через запятую.


Внешний вид

  • Картинка - Графический ресурс картинки пазла.
  • Фишки - Не рекомендуется использовать. Заменено на добавляемые параметр, см.ниже.
  • Ячейки - Графический ресурс ячейки.
  • Курсор - Курсор для выделения фишек.
  • Колонок - Число колонок на которые разбивается пазл.
  • Строк - Число строк на которые разбивается пазл.
  • Авторазмер - Если 1, то для расчета размера ячеек используется картинка. 0 - размер ячейки = размер паззла / число ячеек
  • Сетка? - Если 1, то будет показана сетка при разрезке картинки на блоки. При 0 - сетки не будет.
  • Счетчик статических - Счетчик статических. Объект типа каунтер.
  • Прогресс статических - Прогресс-бар статических. Объект типа progress.
  • стиль(style) - стиль фишек (перегрузка арта фишек; артом из файла уровня); Стиль указанный в настройках уровня перебьёт стиль объекта; Получается вот такой приоритет (Арт из объекта -> Стиль указанный в объекте -> Стиль указанный в уровне);
  • анимация рождения(dropBorn) - тип рождения фишек объектом (скалирование/падение сверху), может быть перегруженно файлом уровня;
  • бомбы - Прогресс-бар статических. Объект типа progress.


Времена этапов

  • невидимости - Начальная пауза перед откртыием пазлы.
  • открытия - Время открытия исходной картинки (проявляется по alpha).
  • показа - Время показа исходной картинки (после проявления).
  • перемешивания - Время визуализации процесса перемешивания ячеек.
  • финала - Время финального показа пазлы после её разбора, перед переходом к закрытию.
  • закрытия - Время закрытия пазлы (в состояниия close, исчезает по alpha).


Времена игры

  • перестановки - Время перестановки двух ячеек местами при их выборе.
  • движения - Время движения фишек от одного узла к соседнему.
  • движения верх - Время движения фишек от одного узла к соседнему при отскоке.
  • отскока - Время движения фишек вверх при отскоке. Т.о. при дефолтных значениях фишка отскакивает на 200 / 600 треть высоты фишки"
  • рождения и удаления - Время рождения и удаления фишки.
  • поворота - Время поворота ячейки при повторном клике на нее.
  • паузы - Время паузы перед началом перестановки или поворота.
  • подсказки1 - Время за которое проявляется исходная картинка в состоянии hint.
  • подсказки2 - Время в течении которого показывается после проявления исходная картинка в состоянии hint.
  • подсказки3 - Время в течении которого закрывается после показа исходная картинка в состоянии hint.


Хинт при бездействии

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


Генерация поля

  • min размер кластера - min размер кластера из фишек одного типа
  • max размер кластера - max размер кластера из фишек одного типа


Звуки

  • нажатие на фишку - Звук нажатия на фишку.
  • добавление фишки в выделение - Звук при выделении фишки (режим dots); звук воспроизводится с 2-й фишки.
  • перемещение фишки - Звук перемещения фищки.
  • возврат фишки - Звук возврата фищки при неудачном перемещении.
  • падение фишки - Звук для падения фишки.
  • применение крестовой бомбы(sndcross) - звук при применении крестовой бомбы;
  • применение горизонтальной бомбы(sndhor) - звук при применении горизонтальной бомбы;
  • применение вертикальной бомбы(sndver) - звук при применении вертикальной бомбы.

Специальные типы фишек

  • nt_lock - графический ресурс фона при работающем "замке";
  • nt_lock_ - графический ресурс поверх графики фишки при работающем "замке" (последовательность клипов через ","; первый клип д.б. задан, но он не используется; далее клипы по возрастанию жизни);

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

+.png Изменить состояние / параметр объекта - выигрыш

- изменить состояние / параметр объекта в случае выигрыша.

+.png Изменить состояние / параметр объекта - проигрыш

- изменить состояние / параметр объекта в случае проигрыша

+.png Изменить состояние объекта - клик на одиночную

- изменить состояние объекта в случае клика на одиночную ячейку: открывает машину в которой необходимо объекту "Коллапс" установить состояние "del_last"

+.png Изменить состояние объекта - запланирована новая линия в аркаде

- изменить состояние объекта при старте отсчёта времени для генерации следующей линии в режиме Аркада (в объект пишется перечень фишек(nextLine), которые будут добавлены и время до их добавления (currentDt))

+.png Звук фишки

- Удаление, появление.

+.png Уровень сложности

- Номеров в фишках, Мин.размер кластера и Макс.размер кластера.

+.png Графика фишки

- Обычная: графический ресурс перетаскивается из редактора ресурсов.

+.png Эффект

- Объект, который будет вызываться при взрыве фишек. Должен иметь состояние beg.

+.png Эффект бомбы

- Объект, который при взрыве фишек посредством бонуса бомба(цветная или обычная) будет склонирован и будет передано состояние "beg". Данному объекту будет записано параметры:

  • effectOriginX,effectOriginY - координаты бонуса, который вызвал схлопывание(в координатах объекта); Эффект самой бомбы (которая взорвалась) получает координаты (0;0);
  • additionalNum - номер фишки; (для удобства, бонусы смещены до 100 номера(первый бонус иммет номер 100(первая цветная бомба)));

П.С. данный эффект генерируется только при взрыве бомбы из поля (бонусы запущенные через matchbattle - не создают эффект);

+.png Эффект крестобомбы

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

Нумерация фишек объектом

Фишки которые использует объект, нумеруются от 0 до N. Данная нумерация зависит от количества цветов. Последовательность выглядит как:

  • 0 - обычная цветная фишка (рандомного цвета - при запуске игры изменится на цветную фишку в диапазоне [1,numTokenNums])
  • [1;n] - цветные фишки (n==numTokenNumsMax, максимальное количество цветов);
  • [n+1;n+n] - цветные бомбы;
  • n+n+1 - обычная бомба;
  • n+n+2 - горизонтальная бомба;
  • n+n+3 - вертикальная бомба;
  • n+n+4 - крестовая бомба;
  • n+n+5 - ячейка-Хамелеон;

Вычитаемые параметры

  • tokenStyle - перечень основных клипов для фишек ("," -разделитель;клипы фишек "norm");
  • bombClips - перечень клипов бонусов (по порядку "нумерации фишек"; первый клип - первая цветная бомба);
  • nextLine - перечень номеров фишек следующего ряда для режима Аркада ("," - разделитель; все номера бонусов смещены и начинаются с 100 (для удобства чтения); т.е. первая цветная бомба имеет номер 100, дальше по порядку);
  • currentDt - время между генерациями следующего ряда(режим Аркада);
  • chameleonColors - номера цветных фишек, используемых для ячейки-Хамелеон;
  • level_cols - количество строчек поля текущего уровня;
  • level_rows - количество колонок поля текущего уровня;
  • lastMouseDnX,lastMouseDnY - координаты X,Y последнего нажатия мыши в координатах родительского объекта;
  • goal_any - текущее значение цели - выбить N фишек;
  • goal_lines - текущее значение цели - выжить N генераций линий(Аркада);
  • goal_locks - текущее значение цели - убрать N замков;
  • goal_num_%N% - текущее значение цели - выбить m фишек N-го цвета (%N% - номер цвета фишки (нумерация с 0));


Файл уровней

Объект умеет загружать настройки из файла уровней, для этих целей у объекта должны быть заданы:

  • файл уровня(levelFile) - путь к xml файлу уровней;
  • номер уровня(levelNum) - id уровня из файла уровней;

На текущий момент объект вычитывает уровень из файла только при старте, т.е. чтобы сменить уровень нужно или сменить экран или проинитить сцену с коллапсом.

Структура файла

<levels>
     <style id="3">
          <tokens norm="355"/>
          <tokens norm="356"/>
     </style>
     <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> - стартовая настройка поля


Поле

Поле указывается в файле уровня: <level><field>NTKXY,NTKXY,NTKXY,NTKXY</field></level>

Поле объекта - это строка которая имеет разделитель фишек ","(пробелы,табуляции и символы переноса игнорируются). Код каждой фишки может состоять от 1-го до 5-ти символов ("NTKXY"). Т.е. объект воспринимает поле как последовательность "NTKXY,NTKXY,NTKXY,NTKXY".

Значение символов:

  • N - индекс фишки объекта ( стартует с "0");
    • 0 - рандомная цветная фишка (цвет получится в диапазоне [1;numTokenNums]);
    • [1;m] - цветная фишка;
    • *' - "дырка" (пустая ячейка) которая никогда не заполнится;
    • # - "разовая дырка" (пустая ячейка) которая может заполнится (для Аркады);
    • B - маркер который говорит, что данная фишка является бомбой, номер бомбы указывается в следующем поле(T):
      • 0 - цветная бомба 1-го цвета;
      • [1;m-1] - цветная бомба с 2-го по (m-1) цвета;
      • m - обычная бомба (взрывает всё в радиусе);
    • Z - маркер который говорит, что данная фишка является бонусом, после цветных бомб, номер бомбы указывается в следующем поле (T):
      • 0 - обычная бомба (взрывает всё в радиусе);
      • 1 - горизонтальная бомба;
      • 2 - вертикальная бомба;
      • 3 - крестовая бомба;
      • 4 - ячейка-Хамелеон;
  • T - используется как дополнительное поле, для поля предыдущего поля (N);
  • K - покраска фона (фон имеет жизнь, и при каждом матчинге, уменьшает её, при этом меняет меняется клип):
    • 0 - нет покраски;
  • X - специальный функционал:
    • 0 - обычная ячейка;
    • Z - замок с жизнью(ячейка залочена, не даём на неё нажимать если есть жизнь), при каждом матчинге жизнь уменьшается, количество жизней задаётся параметром Y(если параметр не указан, считаем == 1):
      • 0 - нет жизни (но смысла в этом мало);
      • [1;n] - количество жизней;
  • Y - используется как дополнительное поле, для поля X;


Цели

Важно указать в самом объекте флаг "перегрузка целей"(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);

Стартовая генерация бонусов

Для того чтобы стартово на поле были бонусы (рандомное место положение), мы указываем следующие настройки: startBombN="4";

где N - номер бонуса ( нумерация с "0"(первая цветная бомба));
    4 - требуемое количество;

Генерация бонусов при досыпании

Для уровней с досыпанием (режим аркада, тоже считается с досыпанием), мы можем указать перечень бонусов и вероятность их генерации:

  • bombProbArray - перечень бонусов через ","(нумерация с "0"(первая цветная бомба));
  • bombProb - общая вероятность генерации бонусов (бонус будет выбран из списка bombProbArray рандомно);


Аркада

Режим в котором ряд фишек добавляется снизу через время со сдвигом поля вверх. При этом проигрышь случается в случае когда мы не можем добавить ряд (размер поля увеличивается). В данном режиме очень не желательно использовать отмену действия (состояние undo).

  • dt0 - если больше 0 - включается режим аркады;
  • n - количество линий через которое время уменьшиться на множитель;
  • mult - множитель на которое уменьшиться время;

При работе режима, объект записывает строку (nextLine) в которой указан добавляемый ряд (цифры эквиваленты индексу фишки) и пинает обработчик - "запланирована новая линия в аркаде".

Пример

S:\!MOBILE\!!!EditorGames\Wiki_sample\test_collaps.zip