Ввод текста (Text Input)
С некоторыми ограничениями 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" на английском языке.
На главную страницу | Официальная документация движка | Вернуться к началу статьи |