Экранные действия, значения и функции (Screen Actions, Values, and Functions)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

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

Действия (Actions)[править | править код]

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

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

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


◇ Контрольные действия[править | править код]

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


Call(label, *args, **kwargs)
Завершает текущий оператор и вызывает label. Аргументы и именованные аргументы передаются в renpy.call().


Hide(screen, transition=None)
Приводит к тому, что экран с именем screen будет скрыт, если он показан.
transition
Если принимает значение не None, переход происходит при скрытии экрана.


Jump(label)

Вызывает передачу управления в label.


NullAction(*args, **kwargs)
Ничего не делает.
Может быть использовано для того, чтобы кнопка реагировала на события наведения/отмены наведения, фактически ничего не делая.


Return(value=None)
Заставляет текущее взаимодействие возвращать предоставленное значение, которое не должно быть None. Часто используется с меню и картой изображений, чтобы выбрать возвращаемое значение взаимодействия. Если экран вызывался с помощью оператора call screen, возвращаемое значение помещается в переменную _return.
Когда вы находитесь в меню, это возвращается из меню. В этом случае значение должно быть None.


Show(screen, transition=None, *args, **kwargs)
Приводит к отображению другого экрана. screen – строка, в которой указано имя экрана. Аргументы передаются на отображаемый экран.
Если принимает значение не None, transition используется для отображения нового экрана.


ShowTransient(screen, transition=None, *args, **kwargs)
Показывает переходный экран. Он будет скрыт после завершения текущего взаимодействия. Аргументы передаются на отображаемый экран.
Если принимает значение не None, transition используется для отображения нового экрана.


ToggleScreen(screen, transition=None, *args, **kwargs)
Переключает видимость screen. Если он в данный момент не отображается, отображается экран с указанными аргументами. Иначе экран будет скрыт.
Если принимает значение не None, transition используется для отображения и скрытия экрана.


◇ Действия с данными[править | править код]

Эти действия устанавливают или переключают данные.


AddToSet(set, value)
Добавляет value для set.
set
Набор для добавления. Это может быть набор или список языка Python, в этом случае значение добавляется к списку.
value
Значение для добавления или присоединения.


RemoveFromSet(set, value)
Удаляет value из set.
set
Набор для удаления из него. Это может быть набор или список.
value
Значение для добавления или присоединения.


SetDict(dict, key, value)
Приводит к тому, что значение key в dict присваивается value.


SetField(object, field, value)
Приводит к тому, что полю в объекте присваивается заданное значение. object – это объект, field – это строка, задающая имя поля для установки, а value – это значение, которое можно установить.


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


SetScreenVariable(name, value)
Вызывает присвоение name переменной, связанной с текущим экраном, значения value.


SetVariable(name, value)
Приводит к тому, что переменной с name присваивается значение value.
Аргумент name должен быть строкой и может быть простым именем, например "strength", или именем с точками, отделяющими переменную от полей, например "hero.strength" или "persistent.show_cutscenes".


ToggleDict(dict, key, true_value=None, false_value=None)
Переключает значение key в dict. Переключение означает инвертирование значения при выполнении действия.
true_value
Если принимает значение не None, тогда используется это истинное значение.
false_value
Если принимает значение не None, тогда используется это ложное значение.


ToggleField(object, field, true_value=None, false_value=None)
Переключает field на object. Переключение означает инвертирование логического значения этого поля при выполнении действия.
true_value
Если принимает значение не None, то это истинное значение, которое мы используем.
false_value
Если принимает значение не None, то это ложное значение, которое мы используем.


ToggleLocalVariable(name, true_value=None, false_value=None)
Переключает значение name в текущем локальном контексте.
Эта функция полезна только на экране, который использовался другой сценой, поскольку она предоставляет способ установки значения переменной внутри используемого экрана. Во всех остальных случаях предпочтительнее использовать ToggleScreenVariable(), так как она позволяет кэшировать большую часть экрана.
Должна быть создана в контексте, в котором установлена переменная - она не может быть передана откуда-то еще.
true_value
Если принимает значение не None, тогда используется это истинное значение.
false_value
Если принимает значение не None, тогда используется это ложное значение.


ToggleScreenVariable(name, true_value=None, false_value=None)
Переключает значение name переменной на текущем экране.
true_value
Если принимает значение не None, тогда используется это истинное значение.
false_value
Если принимает значение не None, тогда используется это ложное значение.


ToggleSetMembership(set, value)
Переключает принадлежность value в наборе. Если значение не входит в набор, оно добавляется. Иначе оно удаляется.
Кнопки с этим действием помечаются как выбранные тогда и только тогда, когда значение находится в наборе.
set
Набор для добавления или удаления из него. Это может быть набор или список. В случае списка добавляются новые элементы.
value
Значение для добавления или присоединения.


ToggleVariable(variable, true_value=None, false_value=None)
Переключает variable.
Аргумент переменной должен быть строкой и может быть простым именем, например "strength", или именем с точками, отделяющими переменную от полей, например "hero.strength" или "persistent.show_cutscenes".
true_value
Если принимает значение не None, тогда используется это истинное значение.
false_value
Если принимает значение не None, тогда используется это ложное значение.


◇ Действия меню[править | править код]

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


MainMenu(confirm=True)
Заставляет Ren'Py вернуться в главное меню.
confirm
Если принимает значение True, Ren'Py запрашивает у пользователя, хочет ли он вернуться в главное меню, а не возвращаться напрямую.


Quit(confirm=None)
Выход из игры.
confirm
Если принимает значение True, Ren'Py запрашивает у пользователя, хочет ли он выйти, а не выходит напрямую. Если принимает значение None, спрашивает тогда и только тогда, когда пользователь не находится в главном меню.


ShowMenu(screen=None, *args, **kwargs)
Заставляет нас войти в игровое меню, если мы ещё не там. Если мы находимся в меню игры, то это показывает экран или переходит к метке.
screen – обычно название экрана, который отображается с помощью механизма экрана. Если экран не существует, к нему добавляется "_screen" и эта метка переходит к нему.
  • ShowMenu("load")
  • ShowMenu("save")
  • ShowMenu("preferences")
Это также может быть использовано для отображения пользовательских экранов меню. Например, если у вас определён экран "stats", его можно отобразить как часть меню игры, используя:
  • ShowMenu("stats")
ShowMenu без аргумента войдет в меню игры на экране по умолчанию, взятом из _game_menu_screen.
Дополнительные аргументы и именованные аргументы передаются на экран.


Start(label=u'start')
Заставляет Ren'Py выскочить из контекста меню к указанной метке. Основная польза от этого заключается в запуске новой игры из главного меню. Часто используются:
  • Start() – начинает с начальной метки.
  • Start("foo") – начинает с метки "foo".


◇ Действия с файлами[править | править код]

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

name
Имя файла для сохранения. Это может быть строка или целое число. Оно объединяется со страницей, чтобы создать имя файла.
page
Страница, на которой выполняется это действие. Это одно из "auto", "quick" или положительного целого числа. Если принимает значение None, страница определяется автоматически на основе постоянного номера страницы.


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, это может привести игрока на страницу автоматического сохранения.


FileSave(name, confirm=True, newest=True, page=None, cycle=False, slot=False)
Сохраняет файл.
Кнопка с этим слотом выбирается, если она помечена как самый новый файл сохранения.
name
Имя слота для сохранения. Если принимает значение None, будет использован неиспользуемый слот (большое число в зависимости от текущего времени).
confirm
Если принимает значение True, мы предложим перед перезаписью файла.
newest
Игнорируется.
page
Имя страницы, на которой находится слот. Если принимает значение None, то используется текущая страница.
cycle
Если принимает значение True, то сохранение на предоставленной странице будет циклически выполняться перед показом пользователю. Слоты config.quicksave_slots используются в цикле.
slot
Если принимает значение True, name принимается за имя слота, а page игнорируется.


FileTakeScreenshot(*args, **kwargs)
Сделает скриншот, который будет использоваться при сохранении игры. Это можно использовать для обеспечения точности скриншота, сделав снимок экрана перед отображением экрана сохранения файла.


QuickLoad(confirm=True)
Выполняет быструю загрузку.
confirm
Если принимает значение True и отсутствует в главном меню, запросит подтверждение перед загрузкой файла.


QuickSave(message=u'Quick save complete.', newest=False)
Выполняет быстрое сохранение.
message
Сообщение, отображаемое пользователю после завершения быстрого сохранения.
newest
Установите значение True, чтобы пометить quicksave как самое новое сохранение.


◇ Звуковые действия[править | править код]

PauseAudio(channel, value=True)
Устанавливает флаг паузы для channel.
Если value принимает значение True, канал приостанавливается. Если принимает значение False, канал не будет остановлен. Если «переключить», флаг паузы будет переключён.


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.
mixer
Микшер для установки громкости. Строка, как правило, "music", "sfx" или "voice".
value
Значение для установки громкости. Число от 0.0 до 1.0 включительно.


SetMute(mixer, mute)
Устанавливает состояние отключения звука одного или нескольких микшеров. Когда микшер отключен, аудиоканалы, связанные с этим микшером, перестанут воспроизводить звук.
mixer
Либо одна строка, задающая имя микшера, либо список строк, задающих список микшеров. Строки должны быть именами микшеров, обычно это "music", "sfx" или "voice".
mute
Значение True, чтобы отключить микшер, False, чтобы включить его.


Stop(channel, **kwargs)
Вызывает остановку аудиоканала.
channel
Канал для остановки звука.
Любые именованные аргументы слова передаются в renpy.music.stop().


ToggleMute(mixer)
Переключает состояние отключения звука одного или нескольких микшеров.
mixer
Либо одна строка, задающая имя микшера, либо список строк, задающих список микшеров. Строки должны быть именами микшеров, обычно это "music", "sfx" или "voice".


◇ Другие действия[править | править код]

Это другие действия, не встречающиеся больше нигде.


Confirm(prompt, yes, no=None, confirm_selected=False)
Запрашивает у пользователя подтверждение действия. Если пользователь нажимает кнопку «да», выполняется действие yes. Иначе выполняется действие no.
prompt
Подсказка для отображения пользователю.
confirm_selected
Если принимает значение True, подсказка будет отображаться, даже если действие yes уже выбрано. Если принимает значение False (по умолчанию), подсказка не будет отображаться, если выбрано действие yes.
Чувствительность и избирательность этого действия совпадают с чувствительностью действия yes.


DisableAllInputValues()
Отключает все активные значения InputValue. Это позволит переориентировать значение InputValue по умолчанию, если оно есть. Иначе никакое InputValue не будет сфокусировано.


Function(callable, *args, **kwargs)
Это действие вызывает callable с args и kwargs.
callable
Вызываемый объект.
args
Позиции аргументов, передаваемых в callable.
kwargs
Именованные аргументы, передаваемые в callable.
Это действие принимает необязательный именованный аргумент _update_screens, который по умолчанию имеет значение True. Когда принимает значение True, взаимодействие перезапускается и экраны обновляются после возврата функции.
Если функция возвращает значение, отличное от None, взаимодействие останавливается и возвращает это значение. При вызове с помощью оператора call screen, результат помещается в переменную _return.


Help(help=None)
Отображает справку.
Если определён экран с именем help, этот экран отображается с помощью ShowMenu(), а справка игнорируется.
help
Строка, используемая для поиска справки. Это используется следующим образом:
  • Если метка с таким именем существует, она вызывается в новом контексте.
  • Иначе это интерпретируется как указание имени файла, который должен быть открыт в веб-браузере.
Если help принимает значение None, config.help используется в качестве значения по умолчанию.


HideInterface(*args, **kwargs)
Вызывает скрытие интерфейса до тех пор, пока пользователь не нажмёт кнопку.


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


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


MouseMove(x, y, duration=0)
Перемещает указатель мыши на x, y. Если на устройстве нет указателя мыши или _preferences.mouse_move является False, это ничего не делает.
duration
Время, необходимое для выполнения перемещения, в секундах. В течение этого времени мышь может не реагировать на запросы.


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


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


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


RestartStatement(*args, **kwargs)
Это действие приводит к откату Ren'Py до текущего оператора, а затем к повторному запуску текущего оператора. Это может использоваться при изменении постоянной переменной, влияющей на способ отображения оператора.
Если запустить в контексте меню, он ожидает, пока игрок не выйдет в контекст верхнего уровня, прежде чем выполнить откат.


RollForward(*args, **kwargs)
Это действие вызывает повторный откат, если он возможен. Иначе оно нечувствительно.


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


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


Screenshot(*args, **kwargs)
Делает скриншот.


Scroll(id, direction, amount=u'step')
Вызывает Bar, Viewpor или Vpgrid.
id
Идентификатор панели, окна просмотра или vpgrid на текущем экране.
direction
Для vbar – это один из вариантов «увеличить» или «уменьшить». Для viewport или vpgrid – «горизонтальное увеличение», «вертикальное увеличение», «горизонтальное уменьшение» или «вертикальное уменьшение».
amount
Сумма для прокрутки. Это может быть количество пикселей, или "step" или "page".


SelectedIf(expression)
Это указывает на то, что одно действие в списке действий должно использоваться для определения, выбрана ли кнопка. Это имеет смысл только тогда, когда у кнопки есть список действий. Например:
# Кнопка выбирается, только если для mars_flag установлено значение True
textbutton "Marsopolis":
    action [ SelectedIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]
Действие внутри SelectedIf выполняется нормально при нажатии кнопки.


SensitiveIf(expression)
Это указывает на то, что одно действие в списке действий должно использоваться для определения чувствительности кнопки. Это имеет смысл только тогда, когда у кнопки есть список действий. Например:
# Кнопка чувствительна только в том случае, если 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 к происходящему.

Значение панелей (Bar Values)[править | править код]

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


AnimatedValue(value=0.0, range=1.0, delay=1.0, old_value=None)
Анимирует значение, требуя delay секунд, чтобы изменить значение от old_value к value.
value
Само значение, число.
range
Диапазон значений, число.
delay
Время, необходимое для анимации значения, в секундах. По умолчанию 1.0.
old_value
Старое значение. Если принимает значение None, то значение берется из замененного нами AnimatedValue, если оно есть. Иначе оно инициализируется значением value.


AudioPositionValue(channel=u'music', update_interval=0.1)
Значение, отображающее положение воспроизведения аудиофайла, воспроизводимого на channel.
update_interval
Как часто значение обновляется, в секундах.


DictValue(dict, key, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False)
Значение, позволяющее пользователю настроить значение клавиши в словаре.
dict
Словарь.
key
Клавиша.
range
Диапазон для настройки.
max_is_zero
Если принимает значение True, то при нулевом значении клавиши значение панели будет равно range, а все остальные значения будут смещены вниз на 1. Это работает в обе стороны - когда панель установлена на максимум, значение клавиши устанавливается до 0.
style
Стили созданной панели.
offset
Смещение, добавляемое к значению.
step
Количество, на которое нужно изменить панель. Если принимает значение None, по умолчанию используется 1/10 панели.
action
Если принимает значение не None, действие, вызываемое при изменении поля.


FieldValue(object, field, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False)
Значение панели, позволяющее пользователю настроить значение поля на объекте.
object
Объект.
field
Поле, строка.
range
Диапазон для настройки.
max_is_zero
Если принимает значение True, то при нулевом значении поля значение панели будет в диапазоне, а все остальные значения будут смещены вниз на 1. Это работает в обе стороны - когда панель установлена на максимум, поле имеет значение 0.
Для внутреннего пользования для некоторых настроек.
style
Стили созданной панели.
offset
Смещение, добавляемое к значению.
step
Количество, на которое нужно изменить панель. Если принимает значение None, по умолчанию используется 1/10 панели.
action
Если принимает значение не None, действие, вызываемое при изменении поля.


MixerValue(mixer)
Значение звукового микшера.
mixer
Название микшера для настройки. Обычно это "music", "sfx" или "voice", но разработчики могут создавать новые микшеры.


ScreenVariableValue(variable, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False)
Значение панели, которое регулирует значение переменной на экране.
variable
Строка, содержащая имя переменной для настройки.
range
Диапазон для настройки.
max_is_zero
Если принимает значение True, то при нулевом значении поля значение панели будет в диапазоне, а все остальные значения будут смещены вниз на 1. Это работает в обе стороны - когда панель установлена на максимум, поле имеет значение 0.
Для внутреннего пользования для некоторых настроек.
style
Стили созданной панели.
offset
Смещение, добавляемое к значению.
step
Количество, на которое нужно изменить панель. Если принимает значение None, по умолчанию используется 1/10 панели.
action
Если принимает значение не None, действие, вызываемое при изменении поля.


StaticValue(value=0.0, range=1.0)
Позволяет статически указывать значение.
value
Само значение, число.
range
Диапазон значения.


VariableValue(variable, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False)
Значение панели, позволяющее пользователю настроить значение переменной в хранилище по умолчанию.
variable
Строка, содержащая имя переменной для настройки.
range
Диапазон для настройки.
max_is_zero
Если принимает значение True, то при нулевом значении поля значение панели будет в диапазоне, а все остальные значения будут смещены вниз на 1. Это работает в обе стороны - когда панель установлена на максимум, поле имеет значение 0.
Для внутреннего пользования для некоторых настроек.
style
Стили созданной панели.
offset
Смещение, добавляемое к значению.
step
Количество, на которое нужно изменить панель. Если принимает значение None, по умолчанию используется 1/10 панели.
action
Если принимает значение не None, действие, вызываемое при изменении поля.


XScrollValue(viewport)
Значение настройки, которая горизонтально прокручивает область просмотра с заданным идентификатором на текущем экране. Окно просмотра должно быть определено до того, как появится панель с этим значением.


YScrollValue(viewport)
Значение настройки, которая вертикально прокручивает область просмотра с заданным идентификатором на текущем экране. Окно просмотра должно быть определено до того, как появится панель с этим значением.

Входные значения (Input Values)[править | править код]

Входные значения используются при вводе текста, чтобы установить текст по умолчанию, принять измененный текст, ответить на клавишу enter и определить, является ли текст редактируемым по умолчанию. Чтобы создать новое входное значение, создайте подкласс класса InputValue.

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


DictInputValue(dict, key, default=True, returnable=False)
Входное значение, которое обновляет key в dict.
default
Если принимает значение True, этот ввод можно редактировать по умолчанию.
returnable
Если принимает значение True, значение этого ввода будет возвращено, когда пользователь нажмёт клавишу enter.


FieldInputValue(object, field, default=True, returnable=False)
Входное значение, которое обновляет field на object.
field
Строка, задающая название поля.
default
Если принимает значение True, этот ввод можно редактировать по умолчанию.
returnable
Если принимает значение True, значение этого ввода будет возвращено, когда пользователь нажмёт клавишу enter.


FilePageNameInputValue(pattern=u'Page {}', auto=u'Automatic saves', quick=u'Quick saves', page=None, default=False)
Входное значение, которое обновляет имя страницы файла.
pattern
Используется для имени страницы по умолчанию. Подстановка в стиле Python выполняется так, что {} заменяется номером страницы.
auto
Название страницы автосохранения.
quick
Название страницы быстрого сохранения.
page
Если задано, то указывается номер отображаемой страницы. Обычно это следует оставить как None, чтобы задать текущую страницу.
default
Если принимает значение True, этот ввод можно редактировать по умолчанию.


ScreenVariableInputValue(variable, default=True, returnable=False)
Входное значение, которое обновляет переменную.
variable
Строка, задающая имя переменной для обновления.
default
Если принимает значение True, этот ввод можно редактировать по умолчанию.
returnable
Если принимает значение True, значение этого ввода будет возвращено, когда пользователь нажмёт клавишу enter.


VariableInputValue(variable, default=True, returnable=False)
Входное значение, которое обновляет variable.
variable
Строка, задающая имя переменной для обновления.
default
Если принимает значение True, этот ввод можно редактировать по умолчанию.
returnable
Если принимает значение True, значение этого ввода будет возвращено, когда пользователь нажмёт клавишу enter.

Функции и классы (Functions and Classes)[править | править код]

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


◇ Настройки[править | править код]

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


Preference(name, value=None, range=None)
Создаёт соответствующее действие или значение из настройки. Имя настройки должно быть именем, заданным в стандартных меню, в то время как значение должно быть либо именем выбора, "переключателем", чтобы переключаться между вариантами выбора, конкретным значением, либо не указываться в случае кнопок.
Действия, которые можно использовать с кнопками и горячими точками:
  • 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") - включить автоматический режим мыши.
  • Preference("automatic move", "disable") - отключить автоматический режим мыши.
  • 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("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") - включение озвучивания текста на экране для людей с ослабленным зрением.
  • Preference("self voicing", "disable") - отключение озвучивания текста на экране для людей с ослабленным зрением.
  • Preference("self voicing", "toggle") - переключение озвучивания текста на экране для людей с ослабленным зрением.
  • Preference("clipboard voicing", "enable") - включение озвучивания буфера обмена.
  • Preference("clipboard voicing", "disable") - отключение озвучивания буфера обмена.
  • Preference("clipboard voicing", "toggle") - переключение озвучивания буфера обмена.
  • Preference("debug voicing", "enable") - включение озвучивания текста на экране отладки.
  • Preference("debug voicing", "disable") - отключение озвучивания текста на экране отладки.
  • Preference("debug voicing", "toggle") - переключение озвучивания текста на экране отладки.
  • Preference("rollback side", "left") - прикосновение к левой стороне экрана вызывает откат.
  • Preference("rollback side", "right") - прикосновение к правой стороне экрана вызывает откат.
  • Preference("rollback side", "disable") - прикосновение к экрану не вызовет откат.
  • Preference("gl powersave", True) - снижение частоты кадров для экономии энергии.
  • Preference("gl powersave", False) - не сбрасывайте частоту кадров, чтобы обеспечить экономию энергии.
  • Preference("gl powersave", "auto") - включение энергосбережения при работе от аккумулятора.
  • Preference("gl framerate", None) - работает на частоте кадров дисплея.
  • Preference("gl framerate", 60) - работает с заданной частотой кадров.
  • Preference("gl tearing", True) - разрывы, а не пропуск кадров.
  • Preference("gl tearing", False) - пропускает кадры, а не разрывает их.
  • Preference("font transform", "opendyslexic") - устанавливает преобразование специальных возможностей шрифта в opendyslexic.
  • Preference("font transform", "dejavusans") - устанавливает преобразование специальных возможностей шрифта в deja vu sans.
  • Preference("font transform", None) - отключает преобразование специальных возможностей шрифта.
  • Preference("font size", 1.0) - устанавливает коэффициент масштабирования размера шрифта.
  • Preference("font line spacing", 1.0) - устанавливает коэффициент масштабирования вертикального интервала шрифта специальных возможностей.


Значения, которые можно использовать с панелями:
  • Preference("text speed")
  • Preference("auto-forward time")
  • Preference("music volume")
  • Preference("sound volume")
  • Preference("voice volume")
  • Preference("mixer <mixer> volume")
  • Preference("font size")
  • Preference("font line spacing")
Параметр range может быть задан для определения диапазона определенных панелей. Для "скорость текста" по умолчанию используется значение 200 cps. Для "скорость авточтения" по умолчанию используется значение 30.0 секунд на фрагмент текста. Это максимумы, а не значения по умолчанию.


◇ Геймпад[править | править код]

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


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


GamepadExists(developer=True)
Функция, которая возвращает значение True, если геймпад присутствует, а иначе значение False.
developer
Заставляет эту функцию всегда возвращать значение True, тогда как config.developer - True.


◇ Функции файла[править | править код]

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


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


FileCurrentScreenshot(empty=None, **properties)
Отображаемый объект, который показывает скриншот, который будет сохранен с текущим файлом, если снимок экрана был сделан при входе в меню или с помощью FileTakeScreenshot().
Если текущего скриншота нет, то на его месте отображается пустой снимок экрана. Если пустое значение равно None, по умолчанию используется Null().


FileJson(name, key=None, empty=None, missing=None, page=None, slot=False)
Получает доступ к информации Json, связанной с name.
Если key принимает значение None, возвращает всему Json другой объект или empty, если слот пуст.
Иначе это возвращает json[key], если key определен в объекте json сохранения, missing, если есть сохранение с заданным именем, но оно не содержит key или empty, если слот сохранения пуст.
Json добавляется в слот сохранения с помощью обратных вызовов, зарегистрированных с помощью config.save_json_callbacks.


FileLoadable(name, page=None, slot=False)
Функция, которая возвращает значение True, если файл загружаемый, иначе False.


FileNewest(name, page=None, slot=False)
Возвращает значение True, если это самый новый слот файла, иначе False.


FilePageName(auto=u'a', quick=u'q')
Возвращает имя текущей страницы файла в виде строки. Если это обычная страница, то она возвращает номер страницы. Иначе возвращается auto или quick.


FileSaveName(name, empty=u, page=None, slot=False)
Возвращает save_name, которое действовало при сохранении файла, или empty, если файл не существует.


FileScreenshot(name, empty=None, page=None, slot=False)
Возвращает скриншот, связанный с данным файлом. Если файл не загружается, то empty возвращается, если только оно не равно None и в этом случае создаётся отображаемое значение Null.
Возвращаемое значение является отображаемым объектом.


FileSlotName(slot, slots_per_page, auto=u'a', quick=u'q', format=u'%s%d')
Возвращает имя пронумерованного слота. Это предполагает, что слоты на обычных страницах нумеруются в линейном порядке, начиная с 1, а номера страниц начинаются с 1. Когда слот равен 2, а slots_per_page равен 10, а другие переменные имеют значения по умолчанию:
  • Когда отображается первая страница, возвращается "2".
  • Когда отображается вторая страница, возвращается "12".
  • Когда отображается автоматическая страница, возвращается "a2".
  • Когда отображается страница быстрого сохранения, возвращается "q2".
slot
Номер слота для доступа.
slots_per_page
Количество слотов на странице.
auto
Префикс, используемый для автоматической страницы.
quick
Префикс, используемый для страницы быстрого сохранения.
format
Код форматирования для использования. При этом задаются два аргумента: строка, задающая префикс страницы, и целое число, задающее номер слота.


FileTime(name, format=u'%b %d, %H
%M', empty=u, page=None, slot=False)
Возвращает время сохранения файла, отформатированного в соответствии с предоставленным format. Если файл не найден, то возвращается empty.
Возвращаемое значение является строкой.


FileUsedSlots(page=None, highest_first=True)
Возвращает список используемых числовых файловых слотов на странице.
page
Название страницы, которая будет сканироваться. Если принимает значение None, используется текущая страница.
highest_first
Если принимает значение True, то первым в списке будет указан слот файла с наибольшим номером. Иначе слот с наименьшим номером будет указан первым.


◇ Функции бокового изображения[править | править код]

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


SideImage()
Возвращает боковое изображение, связанное с текущим говорящим персонажем, или значение Null отображаемого объекта, если такого бокового изображения не существует.


◇ Всплывающие подсказки[править | править код]

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

Вот пример:

screen tooltip_example():
    vbox:
        textbutton "Север":
            action Return("n")
            tooltip "На встречу с белым медведем."

        textbutton "Юг":
            action Return("s")
            tooltip "Аж до самых тропиков."

        textbutton "Восток":
            action Return("e")
            tooltip "Мы можем насладиться рассветом."

        textbutton "Запад":
            action Return("w")
            tooltip "Куда пойти, чтобы увидеть лучшие закаты."

        $ tooltip = GetTooltip()

        if tooltip:
            text "[tooltip]"


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


◇ Прежняя версия всплывающей подсказки[править | править код]


Предупреждение! Описанное в данном разделе устарело из-за вышеизложенного, но вы можете встретить это в более старых проектах.


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


class Tooltip(default)
Объект всплывающей подсказки можно использовать для определения части экрана, которая обновляется при наведении курсором мыши на область.
У объекта всплывающей подсказки есть поле value, для которого устанавливается значение default, передаваемое конструктору при создании всплывающей подсказки. При наведении указателя мыши на кнопку, использующую действие, поле значения изменяется на значение, связанное с действием.
Action(value)
Возвращает действие, которое обычно используется в качестве свойства hovered кнопки. При наведении курсора на кнопку поле значения этой подсказки устанавливается в value. Когда кнопка теряет фокус, поле значения этой всплывающей подсказки возвращается к значению по умолчанию.


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

screen tooltip_test:

    default tt = Tooltip("Кнопка не выбрана.")

    frame:
        xfill True

        has vbox

        textbutton "Один.":
            action Return(1)
            hovered tt.Action("Самый одинокий номер.")

        textbutton "Два.":
            action Return(2)
            hovered tt.Action("Вот что для этого нужно.")

        textbutton "Три.":
            action Return(3)
            hovered tt.Action("Толпа.")

        text tt.value

Источник[править | править код]

Статья "Screen Actions, Values, and Functions" на английском языке.


На главную страницу Официальная документация движка Вернуться к началу статьи