テキスト入力 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') link

この関数を呼び出すと、プレイヤーに対してテキスト入力画面が出てきます。これは入力されたテキストを返します。

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]")

python:
    povname = renpy.input("What is your name?", length=32)
    povname = povname.strip()

    if not povname:
         povname = "Pat Smith"

pov "My name is [povname]!"

この場合、入力の長さは32文字に制限されます。長い名前でゲームをテストし、そのような名前がテキストレイアウトを崩さないか確認するが大切です。同時に、短すぎて望む名前を入力出来なくならないようにしなくてはいけません。