Функция обратного вызова для Character (Character Callbacks)

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

Ren'Py включает возможность выполнения обратных вызовов при возникновении различных событий в ходе диалога. Это можно сделать, задав аргумент callback в Character(), либо установив переменные config.character_callback или config.all_character_callbacks.


Функция обратного вызова для Character вызывается с одним позиционным аргументом, представляющим произошедшее событие. К возможным событиям можно отнести:

"begin"
Вызывается в начале оператора say.
"show"
Вызывается перед отображением каждого сегмента диалога. Диалог может быть разделен на несколько сегментов с помощью текстовых тегов {w} или {p}, но всегда состоит как минимум из одного сегмента.
"show_done"
Вызывается после отображения каждого сегмента диалога.
"slow_done"
Вызывается после завершения отображения замедленного текста. Следует отметить, что это событие может произойти после "end" в тех случаях, когда диалог не вызывает взаимодействие.
"end"
Вызывается в конце оператора say.


Функция обратного вызова вызывается хотя бы с одним именованным аргументом:

interact
Принимает значение True, если диалог вызывает взаимодействие.


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

Пример (Example)[править | править код]

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

init python:
    def beepy_voice(event, interact=True, **kwargs):
        if not interact:
            return

        if event == "show_done":
            renpy.sound.play("beeps.ogg")
        elif event == "slow_done":
            renpy.sound.stop()

define pike = Character("Кристофер Пайк", callback=beepy_voice)

label start:

    pike "Итак, квартировался на Талос IV, занимаясь своими делами, когда..."

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

  1. Статья "Character Callbacks" на английском языке.
  2. Помощь при переводе статьи "Character Callbacks" на русский язык: "Launchpad: character-callbacks"

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