텍스트 입력
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자로 제한합니다. 긴 이름 때문에 텍스트 배치가 흐트러지지 않도록 긴 이름으로 게임을 테스트해야 합니다. 반대로 입력란이 너무 짧으면 원하는 이름을 입력하지 못할 수도 있습니다.