텍스트 입력

Ren'Py는 몇 가지 제한 아래 사용자에게 짧은 텍스트를 입력하도록 요청할 수 있습니다. renpy.input() 함수로 입력을 요청하며, 반환된 입력 텍스트를 변수에 저장하거나 다른 방식으로 처리할 수 있습니다.

Linux에서는 입력기(IME) 지원이 필요 없는 언어만 입력할 수 있습니다. 대부분의 서양 언어는 작동하지만, 중국어, 일본어, 한국어는 작동하지 않을 가능성이 높습니다.

renpy.input 함수는 다음과 같이 정의됩니다.

renpy.input(default='', allow=None, exclude='{}', length=None, pixel_width=None, screen='input', mask=None, copypaste=True, multiline=False, **kwargs)

이 함수를 호출하면 플레이어에게 텍스트 입력을 요청하는 창이 나타납니다. 입력한 텍스트를 반환합니다.

prompt

플레이어에게 표시할 안내 문자열입니다.

default

플레이어가 편집할 초기 텍스트 문자열입니다.

allow

None이 아니라면 텍스트에서 허용할 문자들을 나열한 문자열입니다.

exclude

None이 아니라면 이 문자열에 포함된 문자는 텍스트에 입력할 수 없습니다.

length

None이 아니라면 입력 문자열의 최대 길이를 나타내는 정수여야 합니다.

pixel_width

None이 아니라면 입력에서 사용하는 글꼴로 텍스트를 표시했을 때의 너비를 이 픽셀 수로 제한합니다.

screen

입력을 받는 스크린의 이름입니다. 지정하지 않으면 input 스크린을 사용합니다.

mask

None이 아니라면 플레이어에게 보이는 입력 텍스트를 대체할 한 글자 문자열입니다. 비밀번호를 숨기는 등의 용도로 사용합니다.

copypaste

참이면 이 입력에서 복사와 붙여넣기를 허용합니다.

multiline

참이면 커서를 다음 줄로 이동할 수 있습니다.

config.disable_input이 True이면 이 함수는 default만 반환합니다.

show_로 시작하는 키워드는 접두사를 제거한 뒤 스크린에 전달합니다.

지원 라이브러리의 제약 때문에 Android와 웹 플랫폼에서는 이 함수로 알파벳 문자만 입력할 수 있습니다.

renpy.input을 사용하는 게임은 보통 Python의 표준 문자열 처리 함수로 결과를 추가 처리합니다. 다음 예제는 플레이어의 이름을 물은 뒤 앞뒤의 공백을 제거합니다. 이름이 비어 있으면 기본 이름으로 바꾸고, 마지막으로 사용자에게 표시합니다.

define pov = Character("[povname]")

python:
    povname = renpy.input("이름이 무엇인가요?", length=32)
    povname = povname.strip()

    if not povname:
         povname = "팻 스미스"

pov "제 이름은 [povname]입니다!"

이 예제에서는 입력 길이를 32자로 제한합니다. 긴 이름 때문에 텍스트 배치가 흐트러지지 않도록 긴 이름으로 게임을 테스트해야 합니다. 반대로 입력란이 너무 짧으면 원하는 이름을 입력하지 못할 수도 있습니다.