Skip to main content

with

Команда, у которой есть 3 назначения:

Синтаксис

with [transition] |strict|
  • transition — название перехода и его параметры. Тип перехода зависит от того, для чего используется команда. Подробнее об этом далее.
  • strict — флаг. Если указан, команда будет осуществлять только переходы экрана.

Переход фона со спрайтами

Спавнит спрайты персонажей на фоне до того, как он появится на экране. Таким образом, фон будет выведен уже со спрайтами.

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

scene bg akihibara_night
show hi
show ca at right
with dissolve
# dissolve - переход фона

Таким образом, фон появится сразу со спрайтами:

Демонстрация

Если у любой команды, стоящей выше with, будет указан переход — команда не сработает — будет предпринята попытка скомбинировать команды спрайтов, стоящих выше (до первого найденного перехода), или попытка осуществить переход экрана. Если ничего из этого не вышло, появится ошибка.

Переход нескольких спрайтов

Спавнит (или наоборот убирает) несколько спрайтов с одним переходом.

Возьмём пример выше и пропишем у команды scene собственный переход:

# у команды scene теперь собственный переход
scene bg akihibara_night with pattern bottomleft
show hi
show ca at right
with dissolve
# теперь dissolve - переход спрайтов

Теперь одновременно при помощи dissolve будут появляться только спрайты, т.к. у команды scene определён собственный переход:

Демонстрация

Переходы экрана

Также команда with может использоваться для осуществления переходов экрана. Такой тип переходов будет автоматически подразумеваться, если выше нет команды для вывода фона и/или команд для вывода/скрытия спрайтов, или же у ближайшей команды указан собственный переход.

Если по какой-то причине вам нужно будет осуществить переход экрана, когда выше находятся другие команды без собственных переходов (scene, show, hide) — вы можете воспользоваться флагом strict. При указании этого флага, команда будет интерпретироваться только как команда для перехода экрана, игнорируя все вышестоящие команды.