Экранные действия, значения и функции

Ren'Py поставляется с рядом действий, значений и функций, предназначенных для использования с экранами и экранным языком.

Действия

Действия (actions) вызываются, когда кнопка (включая imagebuttons, textbuttons и hotspots) активируется, на неё наводится курсор или курсор убирается с неё. Действия могут определять, когда кнопка является выбранной или неактивной.

Помимо этих действий, действием может быть функция, не принимающая аргументов. Функция вызывается, когда инициируется действие. Если действие возвращает значение, то это значение возвращается из взаимодействия (interaction).

Вместо одного действия обычно можно предоставить список действий, и в этом случае действия из списка выполняются по порядку. Список действий является активным, если все действия в нём активны, и выбранным, если хотя бы одно из них выбрано; если в списке нет SensitiveIf() или SelectedIf() соответственно.

Управляющие действия

Это действия, которые управляют экранами, результатами взаимодействия и потоком управления.

Call(label, *args, **kwargs)

Завершает текущую инструкцию и вызывает метку label, заданную в виде строки. Позиционные и именованные аргументы передаются в renpy.call().

Hide(screen=None, transition=None, _layer=None, immediately=False)

Это действие скрывает экран, если он показан.

screen

Строка с именем экрана, который нужно скрыть, или None, чтобы скрыть текущий экран.

transition

Если не None, переход, который происходит при скрытии экрана.

_layer

Передаётся в качестве аргумента layer в renpy.hide_screen(). Игнорируется, если screen равно None.

immediately

Если True, экран скрывается немедленно, без события 'on hide'.

Jump(label)

Передаёт управление на метку label, заданную в виде строки.

NullAction()

Ничего не делает.

Можно использовать, чтобы кнопка реагировала на события наведения/снятия курсора, но при этом ничего не делала.

Return(value=None)

Вызывает возврат из текущего взаимодействия с указанным ненулевым значением. Часто используется с меню и imagemaps для выбора возвращаемого значения взаимодействия. Если экран был вызван с помощью инструкции call screen, возвращаемое значение помещается в переменную _return.

Находясь в меню, это действие возвращает из меню. (В этом случае значение должно быть None.)

Show(screen, transition=None, *args, **kwargs)

Показывает другой экран. screen — это строка с именем экрана. Аргументы передаются показываемому экрану.

Если не None, transition используется для показа нового экрана.

Это действие принимает именованные аргументы _layer, _zorder и _tag, которые имеют то же значение, что и в функции renpy.show_screen().

ShowTransient(screen, transition=None, *args, **kwargs)

Показывает временный экран (transient). Временный экран будет скрыт по завершении текущего взаимодействия. Аргументы передаются показываемому экрану.

Если не None, transition используется для показа нового экрана.

Это действие принимает именованные аргументы _layer, _zorder и _tag, которые имеют то же значение, что и в функции renpy.show_screen().

ToggleScreen(screen, transition=None, *args, **kwargs)

Переключает видимость экрана screen. Если он не показан, он показывается с предоставленными аргументами. В противном случае экран скрывается.

Если не None, transition используется для показа и скрытия экрана.

Это действие принимает именованные аргументы _layer, _zorder и _tag, которые имеют то же значение, что и в функции renpy.show_screen().

Действия с данными

Некоторые из этих действий, охватывающие наиболее распространенные случаи, следуют простому шаблону, показанному в следующей таблице:

Управляющие

Акцессоры

Variable

ScreenVariable

LocalVariable

Field

Dict

Set

SetVariable()

SetScreenVariable()

SetLocalVariable()

SetField()

SetDict()

Toggle

ToggleVariable()

ToggleScreenVariable()

ToggleLocalVariable()

ToggleField()

ToggleDict()

Cycle

CycleVariable()

CycleScreenVariable()

CycleLocalVariable()

CycleField()

CycleDict()

Increment

IncrementVariable()

IncrementScreenVariable()

IncrementLocalVariable()

IncrementField()

IncrementDict()

Акцессоры определяют цель, значение которой будет изменено, а управляющий определяет, каким будет новое значение. Их поведение относительно просто для понимания:

  • Действия -Variable изменяют значение глобальной переменной с именем name, находящейся в общем хранилище. Аргумент name должен быть строкой и может быть простым именем, таким как "strength", или именем с точками, разделяющими переменную и поля, например "hero.strength" или "persistent.show_cutscenes".

  • Действия -ScreenVariable изменяют значение переменной с именем name, связанной с текущим экраном верхнего уровня. В экране, используемом через use, это действие устанавливает переменную в контексте экрана, содержащего все используемые экраны.

  • Действия -LocalVariable изменяют значение переменной с именем name, локальной для экрана, в котором она находится. Это действие полезно только в экране, который был использован другим экраном через use (для получения дополнительной информации см. Use). Во всех остальных случаях следует предпочесть действия -ScreenVariable, так как они обеспечивают лучшую производительность и позволяют кэшировать большую часть экрана. Действия -LocalVariable должны быть созданы в контексте, в котором устанавливается переменная — их нельзя передать откуда-либо ещё.

  • Действия -Field изменяют значение поля с именем field объекта object.

  • Действия -Dict изменяют значение ключа key в словаре dict: они изменяют dict[key]. Это также работает со списками.

  • Действия Set- просто устанавливают значение цели равным переданному value. Обратите внимание, что это не имеет ничего общего со встроенным типом set в Python. target = value

  • Действия Toggle- инвертируют логическое значение своей цели между true_value (если задано и не None) и false_value (аналогично). Когда true_value и false_value оба равны None, target = not target

  • Действия Cycle- циклически перебирают предоставленные values, которые должны быть непустой последовательностью (списком, кортежем или диапазоном). Если значение цели отсутствует в последовательности на момент выполнения действия, оно устанавливается в первое значение в последовательности. Параметр loop (по умолчанию True) определяет, что происходит, когда values заканчиваются: если True, цикл начинается с начала, если False — вызывается исключение. Параметр reverse (по умолчанию False) переворачивает переданную последовательность values.

  • Действия Increment- добавляют amount к своей цели, по умолчанию равный 1, но может быть любого типа, совместимого с целью. target = target + amount

CycleDict(dict, key, values, *, reverse=False, loop=True)

Смотрите Действия с данными.

CycleField(object, field, values, *, reverse=False, loop=True)

Смотрите Действия с данными.

CycleLocalVariable(name, values, *, reverse=False, loop=True)

Смотрите Действия с данными.

CycleScreenVariable(name, values, *, reverse=False, loop=True)

Смотрите Действия с данными.

CycleVariable(name, values, *, reverse=False, loop=True)

Смотрите Действия с данными.

IncrementDict(dict, key, amount=1)

Смотрите Действия с данными.

IncrementField(object, field, amount=1)

Смотрите Действия с данными.

IncrementLocalVariable(name, amount=1)

Смотрите Действия с данными.

IncrementScreenVariable(name, amount=1)

Смотрите Действия с данными.

IncrementVariable(name, amount=1)

Смотрите Действия с данными.

SetDict(dict, key, value)

Смотрите Действия с данными.

SetField(object, field, value)

Смотрите Действия с данными.

SetLocalVariable(name, value)

Смотрите Действия с данными.

SetScreenVariable(name, value)

Смотрите Действия с данными.

SetVariable(name, value)

Смотрите Действия с данными.

ToggleDict(dict, key, true_value=None, false_value=None)

Смотрите Действия с данными.

ToggleField(object, field, true_value=None, false_value=None)

Смотрите Действия с данными.

ToggleLocalVariable(name, true_value=None, false_value=None)

Смотрите Действия с данными.

ToggleScreenVariable(name, true_value=None, false_value=None)

Смотрите Действия с данными.

ToggleVariable(name, true_value=None, false_value=None)

Смотрите Действия с данными.

Следующие действия с данными не соответствуют вышеуказанному шаблону. Некоторые из них связаны с типом Python set, не путать с действиями Set- выше.

AddToSet(set, value)

Добавляет value в set.

set

Множество, в которое нужно добавить. Это может быть множество Python или список, в этом случае значение добавляется в конец списка.

value

Значение, которое нужно добавить.

RemoveFromSet(set, value)

Удаляет value из set.

set

Множество, из которого нужно удалить. Это может быть множество или список.

value

Значение, которое нужно удалить.

ToggleSetMembership(set, value)

Переключает членство value в set. Если значения нет в множестве, оно добавляется. В противном случае, оно удаляется.

Кнопки с этим действием отмечаются как выбранные тогда и только тогда, когда значение находится в множестве.

set

Множество, в которое нужно добавить или из которого удалить. Это может быть множество или список. В случае списка новые элементы добавляются в конец.

value

Значение, которое нужно добавить или удалить.

Действия меню

Эти действия вызывают меню или в основном полезны в главном или игровом меню.

Continue(regexp='[^_]', confirm=True)

Вызывает загрузку последнего сохранения. Предназначение этой функции — загрузить последнее сохранение игрока из главного меню.

regexp

Если присутствует, будет использоваться в renpy.newest_slot. Стандартный шаблон продолжит игру с любого сохранения, включая быстрые и автоматические сохранения. Если вы хотите продолжать только с сохранений, созданных игроком, установите это значение в r"\d".

confirm

Если true, Ren'Py спросит пользователя, хочет ли он продолжить с того места, где остановился, если он находится не в главном меню.

Вызывает возврат Ren'Py в главное меню.

confirm

Если true, Ren'Py спросит пользователя, желает ли он вернуться в главное меню, вместо прямого возврата.

save

Если true, игра сохраняется в _quit_slot перед тем, как Ren'Py перезапустится и вернет пользователя в главное меню. Игра не сохраняется, если _quit_slot равен None.

Quit(confirm=None)

Выход из игры.

confirm

Если true, запрашивает у пользователя подтверждение на выход, вместо немедленного выхода. Если None, запрос появится только в том случае, если пользователь находится не в главном меню.

ShowMenu(screen=_game_menu_screen, *args, _transition=config.intra_transition, **kwargs)

Заставляет нас войти в игровое меню, если мы еще не там. Если мы находимся в игровом меню, то эта функция показывает экран или переходит к метке.

screen обычно является именем экрана, который отображается с помощью механизма экранов. Если экран не существует, к его имени добавляется "_screen", и осуществляется переход к этой метке. Ему передаются *args и **kwargs. Если экран не существует, к его имени добавляется "_screen", и осуществляется переход к этой метке, игнорируя args и kwargs.

Если задан необязательный именованный аргумент _transition, меню будет менять экраны, используя указанный переход. Если он не указан вручную, используется переход по умолчанию config.intra_transition.

  • ShowMenu("load")

  • ShowMenu("save")

  • ShowMenu("preferences")

Это также можно использовать для отображения пользовательских экранов меню. Например, если у вас определен экран "stats", его можно показать как часть игрового меню с помощью:

  • ShowMenu("stats")

Вызов ShowMenu без аргумента войдет в игровое меню на экране по умолчанию, взятом из _game_menu_screen.

Дополнительные позиционные и именованные аргументы передаются экрану.

Start(label='start')

Вызывает выход Ren'Py из контекста меню и переход к указанной метке. Основное применение — запуск новой игры из главного меню. Типичные примеры использования:

  • Start() - Начать с метки start.

  • Start("foo") - Начать с метки "foo".

Файловые действия

Эти действия управляют сохранением, загрузкой и удалением файлов. Многие из них принимают аргументы name и page.

name

Имя файла для сохранения. Может быть строкой или целым числом. Оно объединяется со страницей для создания имени файла.

page

Страница, на которую действует это действие. Может быть "auto", "quick" или положительным целым числом. Если None, страница определяется автоматически на основе номера постоянной страницы.

Они преобразуются в имя слота с помощью config.file_slotname_callback, если он установлен.

FileAction(name, page=None, **kwargs)

"Делает правильную вещь" с файлом. Это означает загрузку, если отображается экран загрузки (текущий экран называется "load"), и сохранение в противном случае.

name

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

page

Страница, на которую файл будет сохранён или с которой будет загружен. Если None, используется текущая страница.

Другие именованные аргументы передаются в FileLoad или FileSave.

FileDelete(name, confirm=True, page=None, slot=False)

Удаляет файл.

name

Имя слота для удаления.

confirm

Если true и вы не в главном меню, запрашивать подтверждение перед удалением файла.

page

Страница, с которой будет удалён файл. Если None, используется текущая страница.

slot

Если True, name рассматривается как имя слота, а page игнорируется.

FileLoad(name, confirm=True, page=None, newest=True, cycle=False, slot=False)

Загружает файл.

name

Имя слота для загрузки. Если None, будет использован неиспользуемый слот, и, следовательно, файл не будет загружаемым.

confirm

Если true и вы не в главном меню, запрашивать подтверждение перед загрузкой файла.

page

Страница, с которой будет загружен файл. Если None, используется текущая страница.

newest

Если true, кнопка выбирается, если это самый новый файл.

cycle

Игнорируется.

slot

Если True, name рассматривается как имя слота, а page игнорируется.

FilePage(page)

Устанавливает страницу файлов на page, которая должна быть одной из "auto", "quick" или целым числом.

FilePageNext(max=None, wrap=False, auto=True, quick=True)

Переходит на следующую страницу файлов.

max

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

wrap

Если true, можно перейти на первую страницу, находясь на последней странице файлов, при условии, что max задан.

auto

Если true и wrap задан, это может перенести игрока на страницу автоматических сохранений.

quick

Если true и wrap задан, это может перенести игрока на страницу автоматических сохранений.

FilePagePrevious(max=None, wrap=False, auto=True, quick=True)

Переходит на предыдущую страницу файлов, если это возможно.

max

Если задано, должно быть целым числом, указывающим номер максимальной страницы файлов, на которую можно перейти. Это необходимо для включения wrap.

wrap

Если true, можно перейти на последнюю страницу, находясь на первой, при условии, что max задан.

auto

Если true, это может перенести игрока на страницу автоматических сохранений.

quick

Если true, это может перенести игрока на страницу автоматических сохранений.

FileSave(name, confirm=True, newest=True, page=None, cycle=False, slot=False, action=None)

Сохраняет файл.

Кнопка с этим слотом выбирается, если он помечен как самое новое сохранение.

name

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

confirm

Если true, будет выводиться запрос перед перезаписью файла.

newest

Игнорируется.

page

Имя страницы, на которой находится слот. Если None, используется текущая страница.

cycle

Если true, то сохранения на указанной странице будут циклически сдвигаться перед показом пользователю. В цикле используется config.quicksave_slots слотов.

slot

Если True, name рассматривается как имя слота, а page игнорируется.

action

Действие, которое выполняется после завершения сохранения. Выполняется только в случае успешного сохранения.

FileTakeScreenshot()

Делает снимок экрана, который будет использоваться при сохранении игры. Это можно использовать для обеспечения точности снимка, сделав его до того, как будет показан экран сохранения.

QuickLoad(confirm=True)

Выполняет быструю загрузку.

confirm

Если true и вы не в главном меню, запрашивать подтверждение перед загрузкой файла.

QuickSave(message='Quick save complete.', newest=False)

Выполняет быстрое сохранение.

message

Сообщение для отображения пользователю после завершения быстрого сохранения.

newest

Установите в true, чтобы отметить быстрое сохранение как самое новое.

Действия синхронизации

DownloadSync()

Это действие начинает процесс загрузки Sync с сервера Ren'Py Sync.

UploadSync()

Это действие начинает процесс загрузки последних сохранений на сервер Ren'Py Sync.

Аудио-действия

Концепция каналов и их работа, а также большая часть информации об аудио в Ren'Py, объясняется в Аудио.

GetMixer(mixer, db=False)

Возвращает громкость mixer.

db

Если true, возвращает громкость в децибелах. Если false, по умолчанию, возвращает громкость как число от 0.0 до 1.0.

PauseAudio(channel, value=True)

Устанавливает флаг паузы для channel.

Если value равно True, канал ставится на паузу. Если False, канал снимается с паузы. Если "toggle", флаг паузы переключается.

Play(channel, file, selected=None, **kwargs)

Вызывает воспроизведение аудиофайла на заданном канале.

channel

Канал, на котором будет воспроизводиться звук.

file

Файл для воспроизведения.

selected

Если True, кнопки, использующие это действие, будут отмечены как выбранные, если файл воспроизводится на канале. Если False, это действие не приведет к тому, что кнопка начнет воспроизведение. Если None, кнопка отмечается как выбранная, если канал является музыкальным, и не отмечается в противном случае.

Любые другие именованные аргументы передаются в renpy.music.play().

Queue(channel, file, **kwargs)

Помещает аудиофайл в очередь на заданном канале.

channel

Канал, на котором будет воспроизводиться звук.

file

Файл для воспроизведения.

Любые именованные аргументы передаются в renpy.music.queue()

SetMixer(mixer, volume)

Устанавливает громкость mixer в value.

mixer

Микшер, громкость которого нужно установить. Строка, обычно одна из: "main", "music", "sfx" или "voice". См. Громкость для получения дополнительной информации о микшерах.

value

Значение, в которое нужно установить громкость. Число от 0.0 до 1.0, включительно.

SetMute(mixer, mute)

Устанавливает состояние заглушения для одного или нескольких микшеров. Когда микшер заглушен, аудиоканалы, связанные с ним, прекращают воспроизведение звука.

mixer

Либо одна строка с именем микшера, либо список строк с именами микшеров. Строки должны быть именами микшеров.

mute

True, чтобы заглушить микшер, False, чтобы включить звук.

Stop(channel, **kwargs)

Вызывает остановку аудиоканала.

channel

Канал, на котором нужно остановить звук.

Любые именованные аргументы передаются в renpy.music.stop()

ToggleMute(mixer)

Переключает состояние заглушения одного или нескольких микшеров.

mixer

Либо одна строка с именем микшера, либо список строк с именами микшеров. Строки должны быть именами микшеров.

Действия с фокусом

CaptureFocus(name='default')

Если в момент выполнения этого действия какой-либо displayable находится в фокусе, прямоугольник, содержащий этот displayable, сохраняется под именем name. Этот прямоугольник затем можно получить с помощью действия GetFocusRect() или свойства focus отображаемого объекта Nearrect.

Если ни один displayable не находится в фокусе, предыдущий захват с таким именем удаляется.

name

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

ClearFocus(name='default')

Очищает сохранённый прямоугольник фокуса, захваченный с помощью CaptureFocus(). Если name равен None, очищаются все прямоугольники фокуса.

GetFocusRect(name='default')

Если прямоугольник фокуса с заданным именем был сохранён (либо с помощью CaptureFocus(), либо автоматически всплывающей подсказкой), возвращает прямоугольник (x, y, h, w). В противном случае возвращает None.

name

Имя для получения прямоугольника фокуса. Имя "tooltip" является особенным, так как оно захватывается автоматически при изменении всплывающей подсказки (tooltip).

ToggleFocus(name='default')

Если прямоугольник фокуса существует, очищает его, в противном случае — захватывает.

name

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

Другие действия

Это другие действия, не найденные нигде ещё.

Confirm(prompt, yes, no=None, confirm_selected=False, **kwargs)

Запрашивает у пользователя подтверждение действия. Если пользователь нажимает "да", выполняется действие yes. В противном случае выполняется действие no.

prompt

Запрос, отображаемый пользователю.

confirm_selected

Если true, запрос будет отображен, даже если действие yes уже выбрано. Если false (по умолчанию), запрос не будет отображаться, если действие yes выбрано.

Дополнительные именованные аргументы, не начинающиеся с _, передаются экрану.

Чувствительность (sensitivity) и выбранность (selectedness) этого действия соответствуют тем же состояниям у действия yes.

Смотрите renpy.confirm() для функциональной версии этого действия.

CopyToClipboard(s)

Копирует строку s в системный буфер обмена, если это возможно. Это должно работать на настольных и мобильных платформах, но не будет работать в вебе.

DisableAllInputValues()

Отключает все активные InputValue. Это переведет фокус на InputValue по умолчанию, если он есть. В противном случае ни один InputValue не будет в фокусе.

EditFile(filename=None, line=1)

Запрашивает у Ren'Py открытие данного файла в текстовом редакторе, если это возможно. Это будет работать на некоторых платформах, но не на других.

filename

Если задано, имя файла для открытия. Если None, используются текущее имя файла и номер строки, при этом line игнорируется.

line

Номер строки, на которой нужно открыть файл.

ExecJS(code)

Выполняет данный исходный код JavaScript. Это поддерживается только в вебе и вызовет исключение на других платформах. Скрипт выполняется асинхронно в контексте окна, и возвращаемое значение недоступно.

code

Исходный код JavaScript для выполнения.

Function(callable, *args, _update_screens=True, **kwargs)

Это Действие (Action) вызывает callable(*args, **kwargs).

callable

Вызываемый объект. Предполагается, что если два вызываемых объекта равны при сравнении, вызов любого из них будет эквивалентен.

args

позиционные аргументы, которые будут переданы в callable.

kwargs

именованные аргументы, которые будут переданы в callable.

_update_screens

Если true, взаимодействие перезапускается, и экраны обновляются после возврата из функции.

Если функция возвращает значение, не равное None, взаимодействие прекращается и возвращает это значение. (При вызове с помощью инструкции call screen результат помещается в переменную _return.)

Вместо использования действия Function вы можете определить свой собственный подкласс класса Action. Это позволит вам дать имя действию и определить, когда оно должно быть выбрано и чувствительно.

Help(help=None)

Отображает помощь.

help

Строка, которая используется для поиска помощи. Используется следующим образом:

  • Если существует метка с таким именем, она вызывается в новом контексте.

  • В противном случае это интерпретируется как имя файла, который следует открыть в веб-браузере.

Если help равно None, в качестве значения по умолчанию используется config.help. Если и оно равно None, в новом контексте отображается экран config.help_screen, если он существует. В противном случае ничего не происходит.

HideInterface()

Вызывает скрытие интерфейса до тех пор, пока пользователь не щелкнет мышью. Обычно это происходит при нажатии клавиши H в игре на Ren'Py.

If(expression, true=None, false=None)

Возвращает true, если expression истинно, и false в противном случае. Используйте это для выбора действия на основе выражения. Обратите внимание, что значение по умолчанию, None, может использоваться как действие, которое делает кнопку неактивной.

InvertSelected(action)

Инвертирует состояние выбора предоставленного действия, проксируя все остальные методы.

MouseMove(x, y, duration=0)

Перемещает указатель мыши в точку (x, y). Если на устройстве нет указателя мыши, Ren'Py не может его переместить, или если настройка "automatic move" равна False, эта функция ничего не делает.

Маловероятно, что это будет работать на платформах Linux с Wayland, Android, iOS или Web.

duration

Время в секундах, которое займет перемещение. В течение этого времени мышь может не отвечать на запросы.

Notify(message)

Отображает message с помощью renpy.notify().

OpenDirectory(directory)

Открывает directory в файловом браузере. directory указывается относительно config.basedir.

OpenURL(url)

Вызывает открытие url в веб-браузере.

QueueEvent(event, up=False)

Ставит в очередь данное событие с помощью renpy.queue_event().

RestartStatement()

Это действие заставляет Ren'Py откатиться к состоянию до текущей инструкции, а затем повторно выполнить эту инструкцию. Это может быть полезно при изменении persistent-переменной, которая влияет на отображение инструкции.

Если запущено в контексте меню, оно ждет, пока игрок не выйдет в контекст верхнего уровня, прежде чем выполнить откат.

RollForward()

Это действие вызывает перемотку вперед (rollforward), если она возможна. В противном случае оно нечувствительно (insensitive).

Rollback(*args, force='menu', **kwargs)

Это действие вызывает откат (rollback), когда откат возможен. В противном случае ничего не происходит.

Аргументы передаются в renpy.rollback(). Это включает аргумент force, который здесь по умолчанию равен "menu".

RollbackToIdentifier(identifier)

Это вызывает откат к идентификатору. Идентификаторы для отката возвращаются как часть объектов HistoryEntry.

Screenshot()

Делает скриншот.

Scroll(id, direction, amount='step', delay=0.0)

Вызывает прокрутку Bar, Viewport или Vpgrid.

id

ID элемента bar, viewport или vpgrid на текущем экране.

direction

Для vbar - одно из "increase" или "decrease". Для viewport или vpgrid - одно из "horizontal increase", "vertical increase", "horizontal decrease" или "vertical decrease".

amount

Величина прокрутки. Может быть числом пикселей, или "step" (шаг), или "page" (страница).

delay

Если не равно нулю, прокрутка будет анимироваться в течение указанного количества секунд.

SelectedIf(action, /)

Это указывает, что одно действие из списка действий должно использоваться для определения, выбрана ли кнопка. Это имеет смысл только тогда, когда у кнопки есть список действий. Например:

# Кнопка выбрана только если mars_flag равен True
textbutton "Marsopolis":
    action [ SelectedIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]

Действие внутри SelectedIf выполняется как обычно при нажатии кнопки.

SensitiveIf(action, /)

Это указывает, что одно действие из списка действий должно использоваться для определения, чувствительна ли кнопка. Это имеет смысл только тогда, когда у кнопки есть список действий. Например:

# Кнопка чувствительна только если mars_flag равен True
textbutton "Marsopolis":
    action [ SensitiveIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]

Действие внутри SensitiveIf выполняется как обычно при нажатии кнопки.

Skip(fast=False, confirm=False)

Вызывает начало пропуска в игре. Если игра находится в контексте меню, она возвращается в игру. В противном случае просто включается режим пропуска.

fast

Если true, пропускает напрямую до следующего выбора в меню.

confirm

Если true, запрашивает подтверждение перед началом пропуска.

With(transition)

Вызывает выполнение transition.

Дополнительные действия доступны на других страницах этой документации, такие как Language, Replay и EndReplay, gui.SetPreference и gui.TogglePreference, StylePreference и голосовые действия.

Другие действия могут быть созданы с помощью класса Action.

Значения для шкал (Bar Values)

Значения для шкал (Bar values) используются с барами (bars) для установки значения шкалы и для того, чтобы шкала могла изменять соответствующее свойство. Чтобы создать новое значение шкалы, унаследуйте класс BarValue. Все классы, имеющие ключевое слово step, также принимают ключевое слово force_step, поведение которого описано в ui.adjustment().

AnimatedValue(value=0.0, range=1.0, delay=1.0, old_value=None)

Анимирует значение, изменяя его от old_value до value в течение delay секунд.

value

Само значение, число.

range

Диапазон значения, число.

delay

Время для анимации значения в секундах. По умолчанию 1.0.

old_value

Старое значение. Если None, значение берётся из заменённого AnimatedValue (если таковой был). В противном случае оно инициализируется как value.

AudioPositionValue(channel='music', update_interval=0.1)

Значение, которое показывает позицию воспроизведения аудиофайла в канале channel.

update_interval

Как часто обновляется значение, в секундах.

DictValue(dict, key, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

Значение для bar, которое позволяет пользователю изменять значение по ключу в словаре или элемента по определённому индексу в списке.

dict

Словарь или список.

key

Ключ, или индекс при использовании списка.

range

Диапазон для регулировки. Должен быть указан, если не заданы max и min.

max_is_zero

Если True, то, когда значение ключа или индекса равно нулю, значение bar будет равно range, а все остальные значения будут сдвинуты на 1. Это работает в обе стороны: когда bar установлен на максимум, значение ключа или индекса становится равным 0.

Используется внутри Ren'Py для некоторых настроек.

style

Стили создаваемого bar.

offset

Смещение, добавляемое к значению.

step

Величина, на которую изменяется bar. Если None, по умолчанию составляет 1/10 от bar.

force_step

Если True, bar может принимать только дискретные значения с шагом, заданным в step. Если False, bar может принимать любое значение в пределах диапазона.

action

Если не None, действие, вызываемое при изменении значения ключа или индекса.

min

Минимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

max

Максимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

FieldValue(object, field, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

Значение для bar, которое позволяет пользователю изменять значение поля объекта.

object

Объект.

field

Имя поля, строка.

range

Диапазон для регулировки. Должен быть указан, если не заданы max и min.

max_is_zero

Если True, то, когда значение поля равно нулю, значение bar будет равно range, а все остальные значения будут сдвинуты на 1. Это работает в обе стороны: когда bar установлен на максимум, значение поля становится равным 0.

Используется внутри Ren'Py для некоторых настроек.

style

Стили создаваемого bar.

offset

Смещение, добавляемое к значению.

step

Величина, на которую изменяется bar. Если None, по умолчанию составляет 1/10 от bar.

force_step

Если True, bar может принимать только дискретные значения с шагом, заданным в step. Если False, bar может принимать любое значение в пределах диапазона.

action

Если не None, действие, вызываемое при изменении значения поля.

min

Минимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

max

Максимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

LocalVariableValue(variable, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

Значение для bar, которое изменяет значение переменной в экране, используемом через use.

Для доступа к переменной в экране верхнего уровня предпочтительнее использовать ScreenVariableValue().

Для дополнительной информации смотрите Use.

Это значение должно быть создано в том же контексте, в котором установлена переменная — его нельзя передать откуда-либо ещё.

variable

Строка, задающая имя переменной для изменения.

range

Диапазон для регулировки. Должен быть указан, если не заданы max и min.

max_is_zero

Если True, то, когда значение локальной переменной равно нулю, значение bar будет равно range, а все остальные значения будут сдвинуты на 1. Это работает в обе стороны: когда bar установлен на максимум, значение локальной переменной становится равным 0.

Используется внутри Ren'Py для некоторых настроек.

style

Стили создаваемого bar.

offset

Смещение, добавляемое к значению.

step

Величина, на которую изменяется bar. Если None, по умолчанию составляет 1/10 от bar.

force_step

Если True, bar может принимать только дискретные значения с шагом, заданным в step. Если False, bar может принимать любое значение в пределах диапазона.

action

Если не None, действие, вызываемое при изменении значения локальной переменной.

min

Минимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

max

Максимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

MixerValue(mixer, step=None, force_step=False)

Значение аудиомикшера.

mixer

Имя микшера для регулировки. Обычно это одно из: "main", "music", "sfx" или "voice". Смотрите Громкость для дополнительной информации.

step

Величина, на которую изменяется bar. Если None, по умолчанию составляет 1/10 от bar. Для MixerValue это количество децибел, на которое изменяется громкость.

force_step

Если True, bar может принимать только дискретные значения с шагом, заданным в step. Если False, bar может принимать любое значение в пределах диапазона.

ScreenVariableValue(variable, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

Значение для bar, которое изменяет значение переменной в экране.

В экране, используемом через use, это значение нацелено на переменную в контексте экрана, содержащего используемые экраны. Чтобы обратиться к переменным внутри экрана, используемого через use (и только в этом случае), используйте LocalVariableValue().

variable

Строка, задающая имя переменной для изменения.

range

Диапазон для регулировки. Должен быть указан, если не заданы max и min.

max_is_zero

Если True, то, когда значение переменной экрана равно нулю, значение bar будет равно range, а все остальные значения будут сдвинуты на 1. Это работает в обе стороны: когда bar установлен на максимум, значение переменной экрана становится равным 0.

Используется внутри Ren'Py для некоторых настроек.

style

Стили создаваемого bar.

offset

Смещение, добавляемое к значению.

step

Величина, на которую изменяется bar. Если None, по умолчанию составляет 1/10 от bar.

force_step

Если True, bar может принимать только дискретные значения с шагом, заданным в step. Если False, bar может принимать любое значение в пределах диапазона.

action

Если не None, действие, вызываемое при изменении значения переменной экрана.

min

Минимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

max

Максимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

StaticValue(value=0.0, range=1.0)

Позволяет статически задать значение.

value

Само значение, число.

range

Диапазон значения.

VariableValue(variable, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

Значение для bar, которое позволяет пользователю изменять значение переменной в хранилище по умолчанию.

variable

Параметр variable должен быть строкой и может быть простым именем, например "strength", или содержать точки для разделения переменной и полей, например "hero.strength" или "persistent.show_cutscenes".

range

Диапазон для регулировки. Должен быть указан, если не заданы max и min.

max_is_zero

Если True, то, когда значение переменной равно нулю, значение bar будет равно range, а все остальные значения будут сдвинуты на 1. Это работает в обе стороны: когда bar установлен на максимум, значение переменной становится равным 0.

Используется внутри Ren'Py для некоторых настроек.

style

Стили создаваемого bar.

offset

Смещение, добавляемое к значению.

step

Величина, на которую изменяется bar. Если None, по умолчанию составляет 1/10 от bar.

force_step

Если True, bar может принимать только дискретные значения с шагом, заданным в step. Если False, bar может принимать любое значение в пределах диапазона.

action

Если не None, действие, вызываемое при изменении значения переменной.

min

Минимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

max

Максимальное значение bar. Если заданы min и max, range и offset вычисляются на их основе.

XScrollValue(viewport)

Значение adjustment, которое горизонтально прокручивает viewport с заданным id на текущем экране. viewport должен быть определён до того, как будет определён bar с этим значением.

YScrollValue(viewport)

Значение adjustment, которое вертикально прокручивает viewport с заданным id на текущем экране. viewport должен быть определён до того, как будет определён bar с этим значением.

Значения для полей ввода (Input Values)

Значения для полей ввода (Input values) используются с текстовыми полями ввода для установки текста по умолчанию, для принятия измененного текста, для реакции на нажатие клавиши Enter и для определения, является ли текст редактируемым по умолчанию. Чтобы создать новое значение для поля ввода, унаследуйте класс InputValue.

Определенные в Ren'Py значения для полей ввода наследуются от InputValue, что означает, что все значения также включают методы Enable(), Disable() и Toggle(), которые возвращают действия, соответственно включающие, отключающие и переключающие режим редактирования. См. также действие DisableAllInputValues().

DictInputValue(dict, key, default=True, returnable=False)

Значение ввода, которое обновляет dict[key].

dict

Может быть объектом dict или списком.

default

Если истинно, это поле ввода может быть редактируемым по умолчанию.

returnable

Если истинно, значение этого поля ввода будет возвращено, когда пользователь нажмёт enter.

FieldInputValue(object, field, default=True, returnable=False)

Значение ввода, которое обновляет поле field в объекте object.

field

Строка, задающая имя поля.

default

Если истинно, это поле ввода может быть редактируемым по умолчанию.

returnable

Если истинно, значение этого поля ввода будет возвращено, когда пользователь нажмёт enter.

FilePageNameInputValue(pattern='Page {}', auto='Automatic saves', quick='Quick saves', page=None, default=False)

Значение ввода, которое обновляет имя страницы сохранения файла.

pattern

Используется для имени страницы по умолчанию. Выполняется подстановка в стиле Python, так что {} заменяется номером страницы.

auto

Имя страницы автосохранения.

quick

Имя страницы быстрого сохранения.

page

Если указан, номер отображаемой страницы. Обычно это следует оставлять как None, чтобы использовать текущую страницу.

default

Если истинно, это поле ввода может быть редактируемым по умолчанию.

LocalVariableInputValue(variable, default=True, returnable=False)

Значение ввода, которое обновляет локальную переменную в экране, используемом через use.

Для обращения к переменной в экране верхнего уровня, предпочтительнее использовать ScreenVariableInputValue().

Для получения дополнительной информации см. Use.

Этот объект должен быть создан в контексте, где установлена переменная — его нельзя передать из другого места.

variable

Строка, задающая имя обновляемой переменной.

default

Если истинно, это поле ввода может быть редактируемым по умолчанию.

returnable

Если истинно, значение этого поля ввода будет возвращено, когда пользователь нажмёт enter.

ScreenVariableInputValue(variable, default=True, returnable=False)

Значение ввода, которое обновляет переменную в экране.

В экране, используемом через use, это обращается к переменной в контексте экрана, содержащего используемый экран(ы). Для обращения к переменным внутри экрана, используемого через use, и только в этом случае, используйте LocalVariableInputValue().

variable

Строка, задающая имя обновляемой переменной.

default

Если истинно, это поле ввода может быть редактируемым по умолчанию.

returnable

Если истинно, значение этого поля ввода будет возвращено, когда пользователь нажмёт enter.

VariableInputValue(variable, default=True, returnable=False)

Значение ввода, которое обновляет variable.

variable

Строка, задающая имя обновляемой переменной.

Параметр variable должен быть строкой и может быть простым именем, например, "strength", или именем с точками, разделяющими переменную и поля, например, "hero.strength" или "persistent.show_cutscenes".

default

Если истинно, это поле ввода может быть редактируемым по умолчанию.

returnable

Если истинно, значение этого поля ввода будет возвращено, когда пользователь нажмёт enter.

Функции и классы

Эти функции и классы полезны при работе с экранами.

Настройки (Preferences)

Хотя все настройки могут быть определены на основе действий и значений, приведенных выше, для выбора правильных требуется некоторое знание Ren'Py. Конструктор настроек упрощает это, создавая действие или значение в зависимости от имён, используемых в экране настроек по умолчанию.

Preference(name, value=None, range=None)

Эта функция создаёт соответствующее действие или значение из настройки (preference). Имя настройки должно быть таким же, как в стандартных меню, а значение должно быть либо именем выбора, "toggle" для переключения между вариантами, конкретным значением, либо отсутствовать в случае кнопок.

Действия, которые можно использовать с кнопками и хотспотами:

  • Preference("display", "fullscreen") - отображать в полноэкранном режиме.

  • Preference("display", "window") - отображать в оконном режиме с масштабом 1x.

  • Preference("display", 2.0) - отображать в оконном режиме с масштабом 2.0x.

  • Preference("display", "any window") - отображать в оконном режиме с предыдущим размером.

  • Preference("display", "toggle") - переключить режим отображения.

  • Preference("transitions", "all") - показывать все переходы.

  • Preference("transitions", "none") - не показывать переходы.

  • Preference("transitions", "toggle") - переключить показ переходов.

  • Preference("video sprites", "show") - показывать все видеоспрайты.

  • Preference("video sprites", "hide") - использовать изображения-заменители, где возможно.

  • Preference("video sprites", "toggle") - переключить использование изображений-заменителей.

  • Preference("show empty window", "show") - Разрешить инструкциям "window show" и "window auto" показывать пустое окно вне инструкции say.

  • Preference("show empty window", "hide") - Запретить вышеуказанное.

  • Preference("show empty window", "toggle") - Переключить вышеуказанное.

  • Preference("text speed", 0) - мгновенное появление текста.

  • Preference("text speed", 142) - установить скорость текста 142 символа в секунду.

  • Preference("joystick") - Показать настройки джойстика.

  • Preference("skip", "seen") - Пропускать только виденные сообщения.

  • Preference("skip", "all") - Пропускать невиденные сообщения.

  • Preference("skip", "toggle") - Переключить между пропуском виденных и всех сообщений.

  • Preference("begin skipping") - Начать пропуск.

  • Preference("after choices", "skip") - Пропускать после выборов.

  • Preference("after choices", "stop") - Останавливать пропуск после выборов.

  • Preference("after choices", "toggle") - Переключить пропуск после выборов.

  • Preference("auto-forward time", 0) - Установить бесконечное время авто-прокрутки.

  • Preference("auto-forward time", 10) - Установить время авто-прокрутки (единица — секунды на 250 символов).

  • Preference("auto-forward", "enable") - Включить режим авто-прокрутки.

  • Preference("auto-forward", "disable") - Выключить режим авто-прокрутки.

  • Preference("auto-forward", "toggle") - Переключить режим авто-прокрутки.

  • Preference("auto-forward after click", "enable") - Оставаться в режиме авто-прокрутки после клика.

  • Preference("auto-forward after click", "disable") - Выйти из режима авто-прокрутки после клика.

  • Preference("auto-forward after click", "toggle") - Переключить режим авто-прокрутки после клика.

  • Preference("automatic move", "enable") - Разрешить Ren'Py автоматически перемещать мышь с помощью действия MouseMove().

  • Preference("automatic move", "disable") - Отключить действие MouseMove().

  • Preference("automatic move", "toggle") - Переключить режим автоматического перемещения мыши.

  • Preference("wait for voice", "enable") - Ждать завершения текущего воспроизводимого голоса перед авто-прокруткой.

  • Preference("wait for voice", "disable") - Не ждать завершения текущего воспроизводимого голоса перед авто-прокруткой.

  • Preference("wait for voice", "toggle") - Переключить ожидание голоса.

  • Preference("voice sustain", "enable") - Продолжать воспроизведение голоса после текущей интеракции.

  • Preference("voice sustain", "disable") - Не продолжать воспроизведение голоса после текущей интеракции.

  • Preference("voice sustain", "toggle") - Переключить продолжение голоса.

  • Preference("music mute", "enable") - Отключить звук для микшера музыки.

  • Preference("music mute", "disable") - Включить звук для микшера музыки.

  • Preference("music mute", "toggle") - Переключить звук для микшера музыки.

  • Preference("sound mute", "enable") - Отключить звук для микшера звуков.

  • Preference("sound mute", "disable") - Включить звук для микшера звуков.

  • Preference("sound mute", "toggle") - Переключить звук для микшера звуков.

  • Preference("voice mute", "enable") - Отключить звук для микшера голоса.

  • Preference("voice mute", "disable") - Включить звук для микшера голоса.

  • Preference("voice mute", "toggle") - Переключить звук для микшера голоса.

  • Preference("mixer <mixer> mute", "enable") - Отключить звук для указанного микшера.

  • Preference("mixer <mixer> mute", "disable") - Включить звук для указанного микшера.

  • Preference("mixer <mixer> mute", "toggle") - Переключить звук для указанного микшера.

  • Preference("all mute", "enable") - Отключить звук для каждого отдельного микшера.

  • Preference("all mute", "disable") - Включить звук для каждого отдельного микшера.

  • Preference("all mute", "toggle") - Переключить звук для каждого отдельного микшера.

  • Preference("main volume", 0.5) - Установить регулировку громкости, применяемую ко всем каналам.

  • Preference("music volume", 0.5) - Установить громкость музыки.

  • Preference("sound volume", 0.5) - Установить громкость звуков.

  • Preference("voice volume", 0.5) - Установить громкость голоса.

  • Preference("mixer <mixer> volume", 0.5) - Установить громкость указанного микшера.

  • Preference("emphasize audio", "enable") - Усилить аудиоканалы, указанные в config.emphasize_audio_channels.

  • Preference("emphasize audio", "disable") - Не усиливать аудиоканалы.

  • Preference("emphasize audio", "toggle") - Переключить усиление аудио.

  • Preference("self voicing", "enable") - Включает self-voicing (самоозвучивание).

  • Preference("self voicing", "disable") - Отключает self-voicing.

  • Preference("self voicing", "toggle") - Переключает self-voicing.

  • Preference("self voicing volume drop", 0.5) - Уменьшает громкость микшеров, не связанных с голосом, когда активно self-voicing.

  • Preference("clipboard voicing", "enable") - Включает озвучивание из буфера обмена.

  • Preference("clipboard voicing", "disable") - Отключает озвучивание из буфера обмена.

  • Preference("clipboard voicing", "toggle") - Переключает озвучивание из буфера обмена.

  • Preference("debug voicing", "enable") - Включает отладку self-voicing.

  • Preference("debug voicing", "disable") - Отключает отладку self-voicing.

  • Preference("debug voicing", "toggle") - Переключает отладку self-voicing.

  • Preference("rollback side", "left") - Касание левой стороны экрана вызывает откат.

  • Preference("rollback side", "right") - Касание правой стороны экрана вызывает откат.

  • Preference("rollback side", "disable") - Касание экрана не будет вызывать откат.

  • Preference("gl powersave", True) - Снизить частоту кадров для экономии энергии.

  • Preference("gl powersave", False) - Не снижать частоту кадров для экономии энергии.

  • Preference("gl framerate", None) - Работать с частотой кадров дисплея.

  • Preference("gl framerate", 60) - Работать с указанной частотой кадров.

  • Preference("gl tearing", True) - Допускать разрывы изображения (tearing) вместо пропуска кадров.

  • Preference("gl tearing", False) - Пропускать кадры вместо допущения разрывов.

  • Preference("font transform", "opendyslexic") - Устанавливает трансформацию шрифта для доступности в opendyslexic.

  • Preference("font transform", "dejavusans") - Устанавливает трансформацию шрифта для доступности в deja vu sans.

  • Preference("font transform", None) - Отключает трансформацию шрифта для доступности.

См. config.font_transforms о том, как добавить трансформации шрифтов.

  • Preference("font size", 1.0) - Устанавливает коэффициент масштабирования размера шрифта для доступности.

  • Preference("font line spacing", 1.0) - Устанавливает коэффициент масштабирования вертикального межстрочного интервала для доступности.

  • Preference("system cursor", "disable") - Использовать курсор, определённый в config.mouse или config.mouse_displayable.

  • Preference("system cursor", "enable") - Использовать системный курсор, игнорируя config.mouse.

  • Preference("system cursor", "toggle") - Переключить системный курсор.

  • Preference("high contrast text", "enable") - Включает белый текст на чёрном фоне.

  • Preference("high contrast text", "disable") - Отключает высококонтрастный текст.

  • Preference("high contrast text", "toggle") - Переключает высококонтрастный текст.

  • Preference("audio when minimized", "enable") - Включает воспроизведение звуков, когда окно свёрнуто.

  • Preference("audio when minimized", "disable") - Отключает воспроизведение звуков, когда окно свёрнуто.

  • Preference("audio when minimized", "toggle") - Переключает воспроизведение звуков при свёрнутом окне.

  • Preference("audio when unfocused", "enable") - Включает воспроизведение звуков, когда окно не в фокусе.

  • Preference("audio when unfocused", "disable") - Отключает воспроизведение звуков, когда окно не в фокусе.

  • Preference("audio when unfocused", "toggle") - Переключает воспроизведение звуков при отсутствии фокуса.

  • Preference("web cache preload", "enable") - Включает предзагрузку веб-кэша.

  • Preference("web cache preload", "disable") - Отключает предзагрузку веб-кэша и удаляет предзагруженные данные.

  • Preference("web cache preload", "toggle") - Переключает состояние предзагрузки веб-кэша.

  • Preference("voice after game menu", "enable") - Продолжать воспроизведение голоса при входе в игровое меню.

  • Preference("voice after game menu", "disable") - Останавливать воспроизведение голоса при входе в игровое меню.

  • Preference("voice after game menu", "toggle") - Переключает состояние воспроизведения голоса после входа в игровое меню.

  • Preference("restore window position", "enable") - Восстанавливать положение окна при запуске игры.

  • Preference("restore window position", "disable") - Не восстанавливать положение окна при запуске игры.

  • Preference("restore window position", "toggle") - Переключает состояние восстановления положения окна.

  • Preference("mono audio", "enable") - Принудительно смешивать аудио в моно.

  • Preference("mono audio", "disable") - Отключает принудительное смешивание аудио в моно.

  • Preference("mono audio", "toggles") - Переключает режим моно аудио.

Значения, которые можно использовать с ползунками (bars):

  • Preference("text speed")

  • Preference("auto-forward time")

  • Preference("main volume")

  • Preference("music volume")

  • Preference("sound volume")

  • Preference("voice volume")

  • Preference("mixer <mixer> volume")

  • Preference("self voicing volume drop")

  • Preference("font size")

  • Preference("font line spacing")

  • Preference("font kerning")

Параметр range можно задать, чтобы указать диапазон некоторых ползунков. Для "text speed" он по умолчанию равен 200 cps. Для "auto-forward time" он по умолчанию равен 30.0 секунд на порцию текста. (Это максимумы, а не значения по умолчанию.)

Действия, которые можно использовать с кнопками:

  • Preference("renderer menu") - Показать меню рендерера.

  • Preference("accessibility menu") - Показать меню специальных возможностей.

  • Preference("reset") - Сбросить настройки до значений по умолчанию.

Эти экраны предназначены для внутреннего использования и не подлежат настройке.

GetCharacterVolume(voice_tag)

Возвращает громкость, связанную с voice_tag, число от 0.0 до 1.0, которое интерпретируется как доля громкости микшера для канала voice.

Геймпад (Gamepad)

Эти функции и действия работают с геймпадом.

GamepadCalibrate()

Действие, которое запускает процедуру калибровки геймпада.

GamepadExists(developer=True)

Функция, которая возвращает true, если геймпад присутствует, и false в противном случае.

developer

Заставляет эту функцию всегда возвращать true, пока config.developer истинно.

Файловые функции

Эти функции возвращают полезную информацию о файлах. Они используют ту же страницу по умолчанию, что и файловые действия.

FileCurrentPage()

Возвращает текущую страницу файлов в виде строки.

class FileCurrentScreenshot(empty=None, **properties)

Отображаемый объект, который показывает снимок экрана, который будет сохранён с текущим файлом, если снимок был сделан при входе в меню или с помощью FileTakeScreenshot().

Если текущего снимка экрана нет, вместо него отображается empty. (Если empty равно None, по умолчанию используется Null().)

FileJson(name, key=None, empty=None, missing=None, page=None, slot=False)

Получает доступ к информации в формате Json, связанной с name.

Всегда возвращает empty, если слот пуст.

В противном случае, если key равен None, возвращает весь словарь, содержащий данные Json.

В противном случае возвращает json[key], если key определён в json-объекте сохранения, и missing, если сохранение с таким именем существует, но не содержит key.

Такие Json-данные добавляются в слот сохранения с помощью коллбэков, зарегистрированных через config.save_json_callbacks.

По умолчанию определены следующие ключи:

_save_name

Значение save_name на момент сохранения игры.

_renpy_version

Версия Ren'Py, с помощью которой было создано сохранение.

_version

Значение config.version на момент создания сохранения.

_game_runtime

Результат вызова renpy.get_game_runtime().

_ctime

Время создания сохранения в секундах с 1 января 1970 года, UTC.

FileLoadable(name, page=None, slot=False)

Это функция, которая возвращает true, если файл можно загрузить, и false в противном случае.

FileNewest(name, page=None, slot=False)

Возвращает True, если это самый новый слот сохранения, или False в противном случае.

FilePageName(auto='a', quick='q')

Возвращает имя текущей страницы файлов в виде строки. Если это обычная страница, возвращается её номер. В противном случае, возвращается auto или quick.

FileSaveName(name, empty='', page=None, slot=False)

Возвращает save_name, которое было действующим на момент сохранения файла, или empty, если файл не существует.

FileScreenshot(name, empty=None, page=None, slot=False)

Возвращает снимок экрана, связанный с данным файлом. Если файл не может быть загружен, возвращается empty, если только он не равен None, и в этом случае создаётся Null displayable.

Возвращаемое значение — displayable.

FileSlotName(slot, slots_per_page, auto='a', quick='q', format='%s%d')

Возвращает имя нумерованного слота. Предполагается, что слоты на обычных страницах нумеруются в линейном порядке, начиная с 1, и что номера страниц также начинаются с 1. Когда slot равен 2, а slots_per_page равен 10, и другие переменные имеют значения по умолчанию:

  • Когда отображается первая страница, возвращается "2".

  • Когда отображается вторая страница, возвращается "12".

  • Когда отображается страница автосохранений, возвращается "a2".

  • Когда отображается страница быстрых сохранений, возвращается "q2".

slot

Номер слота для доступа.

slots_per_page

Количество слотов на странице.

auto

Префикс для страницы автосохранений.

quick

Префикс для страницы быстрых сохранений.

format

Используемый код форматирования. Ему передаются два аргумента: строка, содержащая префикс страницы, и целое число, содержащее номер слота.

FileTime(name, format='%b %d, %H:%M', empty='', page=None, slot=False)

Возвращает время сохранения файла, отформатированное в соответствии с предоставленным format. Если файл не найден, возвращается empty.

Возвращаемое значение — строка.

FileUsedSlots(page=None, highest_first=True)

Возвращает список использованных числовых слотов на странице.

page

Имя страницы для сканирования. Если None, используется текущая страница.

highest_first

Если true, первым в списке будет слот с самым большим номером. В противном случае, первым будет слот с самым меньшим номером.

Функции для боковых изображений (Side Image)

Эта функция возвращает боковое изображение для использования.

HasSideImage()

Возвращает True, если боковое изображение будет отображено для текущего взаимодействия, и False в противном случае. Эта функция становится доступной раньше, чем SideImage (которая действительна только в начале взаимодействия), и поэтому может использоваться на экране say, чтобы сделать разметку условной в зависимости от наличия бокового изображения.

SideImage()

Возвращает боковое изображение, связанное с текущим говорящим персонажем, или отображаемый объект Null, если такого бокового изображения не существует. Это может быть трансформация между двумя боковыми изображениями, если она установлена.

Другие функции

CurrentScreenName()

Возвращает имя текущего экрана или None, если текущего экрана нет. В случае экрана, включённого с помощью use, эта функция возвращает имя включающего экрана, а не имя включаемого.

Всплывающие подсказки (Tooltips)

Теперь к всплывающим подсказкам можно получить доступ через свойство tooltip, доступное для всех отображаемых объектов, и функцию GetTooltip. Функция GetTooltip возвращает значение свойства tooltip, когда отображаемый объект получает фокус.

Напоминаем, что значения, передаваемые в свойство tooltip, должны поддерживать операцию сравнения на равенство.

Вот пример:

screen tooltip_example():
    vbox:
        textbutton "North":
            action Return("n")
            tooltip "To meet a polar bear."

        textbutton "South":
            action Return("s")
            tooltip "All the way to the tropics."

        textbutton "East":
            action Return("e")
            tooltip "So we can embrace the dawn."

        textbutton "West":
            action Return("w")
            tooltip "Where to go to see the best sunsets."

        $ tooltip = GetTooltip()

        if tooltip:
            text "[tooltip]"

Отображаемый объект Nearrect можно использовать для отображения всплывающих подсказок в стиле "popup" и он поддерживает специальное имя фокуса "tooltip", которому присваивается местоположение последнего фокуса, установившего подсказку:

screen tooltip_example2():
    frame:

        padding (20, 20)
        align (.5, .3)

        has vbox

        textbutton "North":
            action Return("n")
            tooltip "To meet a polar bear."

        textbutton "South":
            action Return("s")
            tooltip "All the way to the tropics."

        textbutton "East":
            action Return("e")
            tooltip "So we can embrace the dawn."

        textbutton "West":
            action Return("w")
            tooltip "Where to go to see the best sunsets."

    # This has to be the last thing shown in the screen.

    $ tooltip = GetTooltip()

    if tooltip:

        nearrect:
            focus "tooltip"
            prefer_top True

            frame:
                xalign 0.5
                text tooltip
GetTooltip(screen=None, last=False)

Возвращает всплывающую подсказку (tooltip) для элемента в фокусе или None, если ни один элемент не находится в фокусе.

screen

Если не None, это должно быть имя или тег экрана. Если указано, эта функция возвращает подсказку, только если элемент в фокусе является частью этого экрана.

last

Если истинно, возвращает последнее не-None значение, которое эта функция могла бы вернуть.

Устаревшее

Предупреждение

Этот способ был заменён вышеописанным, но вы можете встретить его в старых проектах.

Класс tooltip изменяет экран, когда курсор наводится на кнопку.

class Tooltip(default)

Объект всплывающей подсказки (tooltip) можно использовать для определения части экрана, которая обновляется, когда мышь наводится на определенную область.

Объект tooltip имеет поле value, которое устанавливается в значение default, переданное в конструктор при создании tooltip'а. Когда кнопка, использующая действие, созданное tooltip'ом, оказывается под курсором, поле value изменяется на значение, связанное с этим действием.

Action(value)

Возвращает действие, которое обычно используется как свойство hovered для кнопки. Когда курсор наведен на кнопку, поле value этого tooltip'а устанавливается в value. Когда кнопка теряет фокус, поле value этого tooltip'а возвращается к значению по умолчанию.

При использовании tooltip с экраном обычным поведением является создание объекта tooltip в инструкции default. Затем значение tooltip и метод action можно использовать внутри экрана. Порядок использования внутри экрана не имеет значения — можно использовать значение до того, как будет использовано действие.

Всплывающие подсказки могут принимать любое значение. Хотя в примере ниже мы используем инструкцию text для отображения строки на экране, также возможно использовать инструкцию add для добавления отображаемого объекта. Возможно и более сложное поведение.

screen tooltip_test:

    default tt = Tooltip("No button selected.")

    frame:
        xfill True

        has vbox

        textbutton "One.":
            action Return(1)
            hovered tt.Action("The loneliest number.")

        textbutton "Two.":
            action Return(2)
            hovered tt.Action("Is what it takes.")

        textbutton "Three.":
            action Return(3)
            hovered tt.Action("A crowd.")

        text tt.value