Ввод текста (Text Input)

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

С некоторыми ограничениями Ren'Py может запросить у пользователя ввести небольшое количество текста. Запрос на ввод данных осуществляется при помощи функции renpy.input, которая возвращает введённый текст, что позволяет сохранить его в переменной или обработать иным образом.

В Linux ввод текста ограничивается языками, которые не требуют поддержки метода ввода (IME). Большинство западных языков должны работать, но китайский, японский и корейский языки, скорее всего, работать не будут.


Функция renpy.input определяется следующим образом:

renpy.input(prompt, default=, allow=None, exclude='{}', length=None, with_none=None, pixel_width=None, screen='input)

При вызове этой функции на экране всплывает окно с просьбой к пользователю ввести тот или иной текст. Функция возвращает введённый пользователем текст.
prompt
Строка "приглашение ввода", отображаемая на экране перед игроком.
default
Строка с первоначальным текстом, который будет отредактирован игроком.
allow
Если значение не None, строка определяет список символов, которые будут разрешены в вводимом тексте.
exclude
Если значение не None, если символ присутствует в этой строке, он запрещен для ввода в тексте.
length
Если значение не None, параметр задает максимальную длину вводимой строки. Тут должно быть целое число.
pixel_width
Если значение не None, ввод будет ограничен шириной в несколько пикселей в шрифте, используемом вводом для отображения текста.
screen
Имя экрана, который принимает входные данные. Если не задан, используется экран input.
Если config.disable_input принимает значение True, функция возвращает только значение default.


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

define pov = Character("[povname]")

label start:
python:
    povname = renpy.input("Как тебя зовут?")
    povname = povname.strip()

    if not povname:
         povname = "Пэт Смит"

pov "Меня зовут [povname]!"

И еще небольшой пример использования функции renpy.input от переводчиков:

label start:
    "Скажи мне..."
    $ password = renpy.input(u"...пароль?", default="Text.", length=5, allow="input")    
    if  password == (u""):
        "Неверно."
        jump password
    elif password == (u"input"):
        jump password

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

Статья "Text Input" на английском языке.


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