文本輸入 link

Ren’Py可以提示用戶輸入一小段文本,但有一些限制條件。renpy.input() 函數完成提示,並返回輸入的文本,允許將其保存在某個變數或者其他進程中。

在Linux平台上,文本輸入不需要輸入法(IME)支持。大部分西方語言都能正常工作,但中文、日文和韓文則不行。

renpy.input函數定義如下:

renpy.input(prompt, default=u'', allow=None, exclude=u'{}', length=None, with_none=None, pixel_width=None, screen=u'input', mask=None, copypaste=True, **kwargs) link

調用該函數會彈出一個窗口,要求用戶輸入文本。函數返回用戶輸入的文本。

prompt

向用戶顯示的提示字串。

default

允許用戶編輯內容的初始化文本字串。

allow

若非None,這是允許輸入文本使用的字元列表。

exclude

若非None,這是不允許輸入文本使用的字元列表。

length

若非None,這項必須是一個整數,給定了輸入字串的最大長度。

pixel_width

若非None,輸入被限制在給定的像素寬度。

screen

接受輸入的界面名稱。如果沒有指定,預設使用 input 界面。

mask

若非空,在輸入時會用單字元的字串代替用戶輸入的文本,類似密碼輸入。

copypaste

若為True,可以使用複製黏貼。

如果 config.disable_input 的值為True,該函數只會返回 default 的值。

前綴為 show_ 的關鍵字參數將去掉前追後傳入指定的界面。

使用renpy.input通常還需要在後面處理輸入結果,可以使用標準的Python字串操作函數。例如,下面的腳本會詢問用戶使用的名字並移除開頭和結尾的空白。如果輸入的名字為空,會自動替換為一個預設的名字。最後向用戶顯示。

define pov = Character("[povname]")

python:
    povname = renpy.input("你的名字是什麼?", length=32)
    povname = povname.strip()

    if not povname:
         povname = "帕特·史密斯"

pov "我的名字是 [povname]!"