스크린 액션, 값, 함수

Ren'Py에는 스크린과 스크린 언어에서 사용하는 여러 액션, 값, 함수가 포함되어 있습니다.

액션

액션은 이미지 버튼, 텍스트 버튼, 핫스폿 등을 실행하거나 마우스를 올리거나 내릴 때 호출됩니다. 버튼의 선택 또는 비활성 여부를 결정할 수도 있습니다.

이 액션들 외에 인수를 받지 않는 함수도 액션이 될 수 있습니다. 액션 실행 시 함수를 호출하며, 값을 반환하면 그 값이 상호작용 결과가 됩니다.

보통 단일 액션 대신 리스트를 지정하면 순서대로 실행합니다. SensitiveIf()가 없으면 모든 액션이 활성일 때 리스트가 활성이고, SelectedIf()가 없으면 하나라도 선택 상태일 때 리스트가 선택 상태입니다.

제어 액션

스크린, 상호작용 결과, 제어 흐름을 관리합니다.

Call(label, *args, **kwargs)

현재 문을 끝내고 문자열 label을 호출합니다. 위치 및 키워드 인수는 renpy.call()에 전달합니다.

Hide(screen=None, transition=None, _layer=None, immediately=False)

표시 중인 스크린을 숨깁니다.

screen

숨길 스크린 이름 문자열입니다. None이면 현재 스크린을 숨깁니다.

transition

None이 아니면 숨길 때 실행할 화면 전환입니다.

_layer

renpy.hide_screen()의 layer 인수로 전달합니다. screen이 None이면 무시합니다.

immediately

True이면 'on hide' 이벤트 없이 즉시 숨깁니다.

Jump(label)

문자열로 지정한 label로 제어를 넘깁니다.

NullAction()

아무 일도 하지 않습니다.

실제 동작 없이 버튼이 마우스 진입/이탈에 반응하게 할 수 있습니다.

Return(value=None)

현재 상호작용에서 지정한 None 이외의 값을 반환합니다. 메뉴와 이미지맵에서 반환값을 정할 때 자주 사용합니다. call screen으로 호출했다면 _return에 저장됩니다.

메뉴에서는 메뉴에서 나옵니다. 이 경우 값은 None이어야 합니다.

Show(screen, transition=None, *args, **kwargs)

다른 스크린을 표시합니다. screen은 스크린 이름 문자열이며 인수는 표시할 스크린에 전달합니다.

transition이 None이 아니면 새 스크린 표시 시 사용합니다.

_layer, _zorder, _tag 키워드 인수를 받으며 의미는 renpy.show_screen()과 같습니다.

ShowTransient(screen, transition=None, *args, **kwargs)

일시적인 스크린을 표시합니다. 현재 상호작용이 끝나면 숨깁니다. 인수는 표시할 스크린에 전달합니다.

transition이 None이 아니면 새 스크린 표시 시 사용합니다.

_layer, _zorder, _tag 키워드 인수를 받으며 의미는 renpy.show_screen()과 같습니다.

ToggleScreen(screen, transition=None, *args, **kwargs)

screen의 표시 여부를 전환합니다. 표시 중이 아니면 지정한 인수로 표시하고, 표시 중이면 숨깁니다.

transition이 None이 아니면 표시와 숨기기에 사용합니다.

_layer, _zorder, _tag 키워드 인수를 받으며 의미는 renpy.show_screen()과 같습니다.

데이터 액션

가장 흔한 사례를 다루는 여러 액션은 다음 표의 단순한 규칙을 따릅니다.

관리 방식

접근 방식

Variable

ScreenVariable

LocalVariable

Field

Dict

Set

SetVariable()

SetScreenVariable()

SetLocalVariable()

SetField()

SetDict()

Toggle

ToggleVariable()

ToggleScreenVariable()

ToggleLocalVariable()

ToggleField()

ToggleDict()

Cycle

CycleVariable()

CycleScreenVariable()

CycleLocalVariable()

CycleField()

CycleDict()

Increment

IncrementVariable()

IncrementScreenVariable()

IncrementLocalVariable()

IncrementField()

IncrementDict()

접근 방식은 바꿀 대상을, 관리 방식은 새 값을 결정합니다. 동작은 다음과 같습니다.

  • -Variable은 일반 스토어에서 name이라는 전역 변수의 값을 바꿉니다. name은 "strength" 같은 단순 이름 또는 "hero.strength", "persistent.show_cutscenes"처럼 점으로 필드를 구분한 문자열이어야 합니다.

  • -ScreenVariable은 현재 최상위 스크린의 name 변수 값을 바꿉니다. use된 스크린에서는 모든 use 스크린을 감싸는 최상위 스크린의 컨텍스트에서 설정합니다.

  • -LocalVariable은 현재 스크린의 지역 name 변수 값을 바꿉니다. 다른 스크린에 use된 경우에만 유용합니다. use를 참고하세요. 그 밖에는 성능과 캐시 효율이 더 좋은 -ScreenVariable을 권장합니다. -LocalVariable 액션은 변수를 설정할 컨텍스트에서 만들어야 하며 외부에서 전달할 수 없습니다.

  • -Field는 object 객체의 field 필드 값을 바꿉니다.

  • -Dict는 dict 딕셔너리의 key 값, 즉 dict[key]를 바꿉니다. 리스트에서도 작동합니다.

  • Set-은 대상에 지정한 value를 설정합니다. Python 내장 형식 set과는 관계없습니다. target = value

  • Toggle-은 대상의 불리언 값을 반전합니다. true_value와 false_value가 지정되어 None이 아니면 두 값 사이를 전환합니다. true_value와 false_value가 모두 None이면 target = not target입니다.

  • Cycle-은 비어 있지 않은 list, tuple, range 시퀀스인 values를 순환합니다. 실행 시 대상 값이 없으면 첫 값으로 설정합니다. 기본값이 True인 loop는 values의 끝에서 True이면 처음으로, False이면 예외를 발생시킵니다. 기본값이 False인 reverse는 전달한 values의 순서를 뒤집습니다.

  • Increment-는 대상에 amount를 더합니다. 기본값은 1이며 대상과 호환되는 모든 형식이 가능합니다. target = target + amount

CycleDict(dict, key, values, *, reverse=False, loop=True)

데이터 액션을 참고하세요.

CycleField(object, field, values, *, reverse=False, loop=True)

데이터 액션을 참고하세요.

CycleLocalVariable(name, values, *, reverse=False, loop=True)

데이터 액션을 참고하세요.

CycleScreenVariable(name, values, *, reverse=False, loop=True)

데이터 액션을 참고하세요.

CycleVariable(name, values, *, reverse=False, loop=True)

데이터 액션을 참고하세요.

IncrementDict(dict, key, amount=1)

데이터 액션을 참고하세요.

IncrementField(object, field, amount=1)

데이터 액션을 참고하세요.

IncrementLocalVariable(name, amount=1)

데이터 액션을 참고하세요.

IncrementScreenVariable(name, amount=1)

데이터 액션을 참고하세요.

IncrementVariable(name, amount=1)

데이터 액션을 참고하세요.

SetDict(dict, key, value)

데이터 액션을 참고하세요.

SetField(object, field, value)

데이터 액션을 참고하세요.

SetLocalVariable(name, value)

데이터 액션을 참고하세요.

SetScreenVariable(name, value)

데이터 액션을 참고하세요.

SetVariable(name, value)

데이터 액션을 참고하세요.

ToggleDict(dict, key, true_value=None, false_value=None)

데이터 액션을 참고하세요.

ToggleField(object, field, true_value=None, false_value=None)

데이터 액션을 참고하세요.

ToggleLocalVariable(name, true_value=None, false_value=None)

데이터 액션을 참고하세요.

ToggleScreenVariable(name, true_value=None, false_value=None)

데이터 액션을 참고하세요.

ToggleVariable(name, true_value=None, false_value=None)

데이터 액션을 참고하세요.

다음 데이터 액션은 위 규칙을 따르지 않습니다. 일부는 Python의 set 형식과 관련되며 위의 Set- 액션과 혼동하지 않아야 합니다.

AddToSet(set, value)

set에 value를 추가합니다.

set

추가할 집합입니다. Python set 또는 list이며, 리스트이면 끝에 추가합니다.

value

추가할 값입니다.

RemoveFromSet(set, value)

set에서 value를 제거합니다.

set

제거할 대상 set 또는 list입니다.

value

제거할 값입니다.

ToggleSetMembership(set, value)

set에서 value의 포함 여부를 전환합니다. 없으면 추가하고, 있으면 제거합니다.

값이 집합에 있는 경우에만 버튼이 선택 상태가 됩니다.

set

추가하거나 제거할 set 또는 list입니다. 리스트에서는 새 항목을 끝에 추가합니다.

value

추가할 값입니다.

파일 액션

파일 저장, 불러오기, 삭제를 처리합니다. 많은 액션이 name과 page를 받습니다.

name

저장할 파일 이름입니다. 문자열이나 정수이며 페이지와 합쳐 파일명을 만듭니다.

page

액션의 대상 페이지입니다. "auto", "quick" 또는 양의 정수입니다. None이면 영구 페이지 번호를 기준으로 자동 결정합니다.

config.file_slotname_callback이 설정되어 있으면 이를 사용해 슬롯 이름으로 변환합니다.

FileAction(name, page=None, **kwargs)

상황에 맞게 처리합니다. 현재 스크린 이름이 "load"이면 불러오고, 그 밖에는 저장합니다.

name

저장하거나 불러올 슬롯 이름입니다. None이면 현재 시각에 기반한 큰 숫자의 미사용 슬롯을 사용합니다.

page

저장하거나 불러올 페이지입니다. None이면 현재 페이지입니다.

다른 키워드 인수는 FileLoad 또는 FileSave에 전달합니다.

FileDelete(name, confirm=True, page=None, slot=False)

파일을 삭제합니다.

name

삭제할 슬롯 이름입니다.

confirm

참이고 메인 메뉴 밖이면 파일을 불러오기 전에 확인합니다.

page

불러올 파일의 페이지입니다. None이면 현재 페이지입니다.

slot

True이면 name을 슬롯 이름으로 해석하고 page는 무시합니다.

FileLoad(name, confirm=True, page=None, newest=True, cycle=False, slot=False)

파일을 불러옵니다.

name

불러올 슬롯 이름입니다. None이면 미사용 슬롯을 사용하므로 불러올 수 없습니다.

confirm

참이고 메인 메뉴 밖이면 불러오기 전에 확인합니다.

page

불러올 파일의 페이지입니다. None이면 현재 페이지입니다.

newest

참이면 최신 파일일 때 버튼이 선택 상태가 됩니다.

cycle

무시합니다.

slot

True이면 name을 슬롯 이름으로 해석하고 page는 무시합니다.

FilePage(page)

파일 페이지를 "auto", "quick" 또는 정수인 page로 설정합니다.

FilePageNext(max=None, wrap=False, auto=True, quick=True)

다음 파일 페이지로 이동합니다.

max

설정하면 이동 가능한 최대 파일 페이지 번호의 정수여야 합니다.

wrap

참이고 max가 있으면 마지막 페이지에서 처음으로 이동할 수 있습니다.

auto

참이고 wrap이 설정되어 있으면 자동 저장 페이지로 이동할 수 있습니다.

quick

참이고 wrap이 설정되어 있으면 자동 저장 페이지로 이동할 수 있습니다.

FilePagePrevious(max=None, wrap=False, auto=True, quick=True)

가능하면 이전 파일 페이지로 이동합니다.

max

설정하면 이동 가능한 최대 파일 페이지 번호의 정수여야 합니다. wrap을 활성화하려면 필수입니다.

wrap

참이고 max가 있으면 첫 페이지에서 마지막으로 이동할 수 있습니다.

auto

참이면 자동 저장 페이지로 이동할 수 있습니다.

quick

참이면 자동 저장 페이지로 이동할 수 있습니다.

FileSave(name, confirm=True, newest=True, page=None, cycle=False, slot=False, action=None)

파일을 저장합니다.

이 슬롯이 최신 저장으로 표시되어 있으면 버튼이 선택 상태가 됩니다.

name

저장할 슬롯 이름입니다. None이면 현재 시각에 기반한 큰 숫자의 미사용 슬롯을 사용합니다.

confirm

참이면 덮어쓰기 전에 확인합니다.

newest

무시합니다.

page

슬롯이 있는 페이지 이름입니다. None이면 현재 페이지입니다.

cycle

참이면 지정한 페이지의 저장을 순환시킨 뒤 표시합니다. config.quicksave_slots개의 슬롯을 사용합니다.

slot

True이면 name을 슬롯 이름으로 해석하고 page는 무시합니다.

action

저장 완료 후 실행할 액션입니다. 성공한 경우에만 실행합니다.

FileTakeScreenshot()

저장용 스크린샷을 찍습니다. 저장 스크린을 표시하기 전에 찍으면 정확한 게임 화면을 보관할 수 있습니다.

QuickLoad(confirm=True)

빠른 불러오기를 수행합니다.

confirm

참이고 메인 메뉴 밖이면 불러오기 전에 확인합니다.

QuickSave(message='Quick save complete.', newest=False)

빠른 저장을 수행합니다.

message

빠른 저장 완료 시 표시할 메시지입니다.

newest

참이면 빠른 저장을 최신 저장으로 표시합니다.

동기화 액션

DownloadSync()

Ren'Py Sync 서버에서 동기화 데이터를 다운로드하는 과정을 시작합니다.

UploadSync()

최근 저장을 Ren'Py Sync 서버에 업로드하는 과정을 시작합니다.

오디오 액션

채널의 개념과 작동 방식 등 Ren'Py 오디오의 대부분은 오디오에 설명되어 있습니다.

GetMixer(mixer, db=False)

mixer의 음량을 반환합니다.

db

참이면 데시벨로 반환합니다. 기본값인 거짓이면 0.0부터 1.0 사이 숫자로 반환합니다.

PauseAudio(channel, value=True)

channel의 일시 정지 플래그를 설정합니다.

value가 True이면 정지, False이면 재개, "toggle"이면 전환합니다.

Play(channel, file, selected=None, **kwargs)

지정한 채널에서 오디오 파일을 재생합니다.

channel

소리를 재생할 채널입니다.

file

재생할 파일입니다.

selected

True이면 해당 파일이 채널에서 재생 중일 때 버튼이 선택 상태가 됩니다. False이면 이 액션은 버튼의 재생 시작을 유발하지 않습니다. None이면 music 채널일 때만 선택 상태로 표시합니다.

다른 키워드 인수는 renpy.music.play()에 전달합니다.

Queue(channel, file, **kwargs)

지정한 채널의 재생 대기열에 오디오 파일을 넣습니다.

channel

소리를 재생할 채널입니다.

file

재생할 파일입니다.

키워드 인수는 renpy.music.queue()에 전달합니다.

SetMixer(mixer, volume)

mixer의 음량을 value로 설정합니다.

mixer

음량을 설정할 믹서 문자열입니다. 보통 "main", "music", "sfx", "voice" 중 하나입니다. 자세한 내용은 음량을 참고하세요.

value

설정할 음량입니다. 0.0과 1.0을 포함한 범위의 숫자입니다.

SetMute(mixer, mute)

하나 이상의 믹서의 음소거 상태를 설정합니다. 음소거하면 연결된 채널의 오디오 재생이 멈춥니다.

mixer

믹서 이름 문자열 하나 또는 믹서 이름 문자열 리스트입니다.

mute

True이면 음소거하고 False이면 해제합니다.

Stop(channel, **kwargs)

오디오 채널을 멈춥니다.

channel

소리를 멈출 채널입니다.

키워드 인수는 renpy.music.stop()에 전달합니다.

ToggleMute(mixer)

하나 이상의 믹서의 음소거 상태를 전환합니다.

mixer

믹서 이름 문자열 하나 또는 믹서 이름 문자열 리스트입니다.

포커스 액션

CaptureFocus(name='default')

실행 시 포커스된 디스플레이어블이 있으면 그 사각형을 name으로 저장합니다. GetFocusRect() 또는 Nearrect의 focus 속성으로 가져올 수 있습니다.

포커스된 디스플레이어블이 없으면 같은 이름의 이전 캡처를 제거합니다.

name

저장할 포커스 사각형 이름 문자열입니다. "tooltip"은 툴팁이 바뀌면 자동 캡처하는 특별한 이름입니다.

ClearFocus(name='default')

CaptureFocus()로 저장한 사각형을 지웁니다. name이 None이면 모두 지웁니다.

GetFocusRect(name='default')

CaptureFocus()나 툴팁 자동 캡처로 해당 이름의 사각형이 저장되어 있으면 (x, y, h, w)를 반환합니다. 없으면 None입니다.

name

가져올 포커스 사각형 이름입니다. "tooltip"은 툴팁이 바뀌면 자동 캡처하는 특별한 이름입니다.

ToggleFocus(name='default')

포커스 사각형이 있으면 지우고, 없으면 캡처합니다.

name

저장할 포커스 사각형 이름 문자열입니다. "tooltip"은 툴팁이 바뀌면 자동 캡처하는 특별한 이름입니다.

그 밖의 액션

다른 곳에 분류되지 않은 액션입니다.

Confirm(prompt, yes, no=None, confirm_selected=False, **kwargs)

실행 여부를 사용자에게 확인합니다. 예를 클릭하면 yes 액션, 그 밖에는 no 액션을 실행합니다.

prompt

표시할 안내 문구입니다.

confirm_selected

참이면 yes가 이미 선택 상태여도 확인합니다. 기본값인 거짓이면 yes가 선택 상태일 때 확인하지 않습니다.

_로 시작하지 않는 추가 키워드는 스크린에 전달합니다.

이 액션의 활성 및 선택 상태는 yes와 같습니다.

함수 버전은 renpy.confirm()을 참고하세요.

CopyToClipboard(s)

가능하면 문자열 s를 시스템 클립보드에 복사합니다. 데스크톱과 모바일에서는 작동하지만 웹에서는 작동하지 않습니다.

DisableAllInputValues()

활성 InputValue를 모두 비활성화합니다. 기본 InputValue가 있으면 다시 포커스를 주고, 없으면 어느 것에도 포커스를 주지 않습니다.

EditFile(filename=None, line=1)

가능하면 지정한 파일을 텍스트 편집기로 열도록 요청합니다. 플랫폼에 따라 작동 여부가 다릅니다.

filename

열 파일명입니다. None이면 현재 파일명과 줄 번호를 사용하며 line은 무시합니다.

line

파일에서 열 줄 번호입니다.

ExecJS(code)

JavaScript 소스를 실행합니다. 웹에서만 지원하며 다른 플랫폼에서는 예외가 발생합니다. window 컨텍스트에서 비동기로 실행하고 반환값은 얻을 수 없습니다.

code

실행할 JavaScript 코드입니다.

Function(callable, *args, _update_screens=True, **kwargs)

callable(*args, **kwargs)를 호출하는 액션입니다.

callable

호출 가능 객체입니다. 두 객체가 동등하면 어느 쪽을 호출해도 같다고 가정합니다.

args

callable에 전달할 위치 인수입니다.

kwargs

callable에 전달할 키워드 인수입니다.

_update_screens

참이면 함수 반환 후 상호작용을 다시 시작하고 스크린을 갱신합니다.

함수가 None 이외의 값을 반환하면 상호작용을 끝내고 그 값을 반환합니다. call screen으로 호출했다면 _return에 저장합니다.

Function 대신 Action의 하위 클래스를 정의하면 이름과 활성 및 선택 조건을 정할 수 있습니다.

Help(help=None)

도움말을 표시합니다.

help

도움말을 찾는 문자열입니다. 다음 방식으로 사용합니다.

  • 같은 이름의 레이블이 있으면 새 컨텍스트에서 호출합니다.

  • 없으면 웹 브라우저로 열 파일명으로 해석합니다.

help가 None이면 config.help를 기본값으로 사용합니다. 그것도 None이면 config.help_screen이 있을 경우 새 컨텍스트에서 표시하고, 없으면 아무 일도 하지 않습니다.

HideInterface()

사용자가 클릭할 때까지 인터페이스를 숨깁니다. 일반적으로 H 키를 누르면 하는 동작입니다.

If(expression, true=None, false=None)

expression이 참이면 true, 아니면 false를 반환합니다. 표현식에 따라 액션을 고를 때 사용합니다. 기본값 None은 버튼을 비활성화하는 액션으로 사용할 수 있습니다.

InvertSelected(action)

다른 메서드는 위임하면서 지정한 액션의 선택 상태를 반전합니다.

MouseMove(x, y, duration=0)

마우스를 x, y로 이동합니다. 포인터가 없거나 이동할 수 없거나 "automatic move" preference가 False이면 아무 일도 하지 않습니다.

Wayland Linux, Android, iOS, 웹에서는 작동하지 않을 가능성이 높습니다.

duration

이동 시간입니다. 단위는 초이며, 이동 중 마우스가 반응하지 않을 수 있습니다.

Notify(message)

renpy.notify()로 message를 표시합니다.

OpenDirectory(directory)

파일 탐색기에서 directory를 엽니다. directory는 config.basedir 기준 상대 경로입니다.

OpenURL(url)

웹 브라우저에서 url을 엽니다.

QueueEvent(event, up=False)

renpy.queue_event()로 이벤트를 큐에 넣습니다.

RestartStatement()

현재 문 이전으로 롤백한 뒤 현재 문을 다시 실행합니다. 표시 방식에 영향을 주는 영구 변수를 바꿀 때 사용할 수 있습니다.

메뉴 컨텍스트에서는 최상위 컨텍스트로 나올 때까지 기다렸다가 롤백합니다.

RollForward()

가능하면 롤포워드합니다. 불가능하면 비활성 상태입니다.

Rollback(*args, force='menu', **kwargs)

가능하면 롤백합니다. 불가능하면 아무 일도 하지 않습니다.

인수는 renpy.rollback()에 전달합니다. force의 여기서의 기본값은 "menu"입니다.

RollbackToIdentifier(identifier)

식별자 위치로 롤백합니다. 롤백 식별자는 HistoryEntry 객체의 일부로 반환됩니다.

Screenshot()

스크린샷을 찍습니다.

Scroll(id, direction, amount='step', delay=0.0)

Bar, Viewport 또는 Vpgrid를 스크롤합니다.

id

현재 스크린의 bar, viewport, vpgrid ID입니다.

direction

vbar는 "increase", "decrease" 중 하나입니다. viewport와 vpgrid는 "horizontal increase", "vertical increase", "horizontal decrease", "vertical decrease" 중 하나입니다.

amount

스크롤할 픽셀 수 또는 "step", "page"입니다.

delay

0이 아니면 이 초 동안 스크롤 애니메이션을 적용합니다.

SelectedIf(action, /)

액션 리스트 중 하나로 버튼 선택 여부를 결정하게 합니다. 버튼에 액션 리스트가 있을 때만 의미가 있습니다. 예를 들면 다음과 같습니다.

# The button is selected only if mars_flag is True
textbutton "마르소폴리스":
    action [ SelectedIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]

SelectedIf 내부 액션은 클릭하면 정상 실행됩니다.

SensitiveIf(action, /)

액션 리스트 중 하나로 버튼 활성 여부를 결정하게 합니다. 버튼에 액션 리스트가 있을 때만 의미가 있습니다. 예를 들면 다음과 같습니다.

# The button is sensitive only if mars_flag is True
textbutton "마르소폴리스":
    action [ SensitiveIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]

SensitiveIf 내부 액션은 클릭하면 정상 실행됩니다.

Skip(fast=False, confirm=False)

건너뛰기를 시작합니다. 메뉴 컨텍스트이면 게임으로 돌아가며, 그 밖에는 건너뛰기만 활성화합니다.

fast

참이면 다음 선택지까지 바로 건너뜁니다.

confirm

참이면 시작 전에 확인합니다.

With(transition)

transition을 실행합니다.

다른 페이지에는 Language, Replay, EndReplay, gui.SetPreference, gui.TogglePreference, StylePreference, 음성 액션 등의 추가 액션이 있습니다.

Action 클래스로 다른 액션도 만들 수 있습니다.

바 값

바 값을 설정하고 바가 기반 속성을 조절하게 합니다. 새 값을 만들려면 BarValue를 상속합니다. step 키워드가 있는 모든 클래스는 ui.adjustment()에서 설명한 force_step도 받습니다.

AnimatedValue(value=0.0, range=1.0, delay=1.0, old_value=None)

delay초 동안 old_value에서 value로 값이 변하는 애니메이션입니다.

value

값을 나타내는 숫자입니다.

range

범위를 나타내는 숫자입니다.

delay

애니메이션 시간입니다. 초 단위이며 기본값은 1.0입니다.

old_value

이전 값입니다. None이면 대체한 AnimatedValue가 있을 경우 거기서 가져옵니다. 없으면 value로 초기화합니다.

AudioPositionValue(channel='music', update_interval=0.1)

channel에서 재생 중인 오디오 파일의 재생 위치를 나타내는 값입니다.

update_interval

값의 갱신 주기입니다. 단위는 초입니다.

DictValue(dict, key, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

딕셔너리 키 또는 리스트의 특정 인덱스 요소를 조절하는 바 값입니다.

dict

dict 또는 list입니다.

key

키 또는 리스트 인덱스입니다.

range

조절 범위입니다. max와 min이 없으면 필수입니다.

max_is_zero

True이면 키나 인덱스의 값이 0일 때 바 값은 range이며 다른 값은 1씩 내려갑니다. 양방향으로 적용되어 바를 최대로 설정하면 실제 값은 0이 됩니다.

일부 환경설정에서 내부적으로 사용합니다.

style

생성한 바의 스타일입니다.

offset

값에 더할 오프셋입니다.

step

바를 바꿀 양입니다. None이면 전체의 1/10입니다.

force_step

True이면 step의 불연속 단계만 가능하며, False이면 범위 내 모든 값이 가능합니다.

action

None이 아니면 키나 인덱스의 값이 바뀔 때 호출할 액션입니다.

min

최솟값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

max

최댓값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

FieldValue(object, field, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

객체 필드의 값을 조절하는 바 값입니다.

object

대상 객체입니다.

field

필드 이름 문자열입니다.

range

조절 범위입니다. max와 min이 없으면 필수입니다.

max_is_zero

True이면 필드 값이 0일 때 바 값은 range이며 다른 값은 1씩 내려갑니다. 양방향으로 적용되어 바를 최대로 설정하면 필드 값은 0이 됩니다.

일부 환경설정에서 내부적으로 사용합니다.

style

생성한 바의 스타일입니다.

offset

값에 더할 오프셋입니다.

step

바를 바꿀 양입니다. None이면 전체의 1/10입니다.

force_step

True이면 step의 불연속 단계만 가능하며, False이면 범위 내 모든 값이 가능합니다.

action

None이 아니면 필드 값이 바뀔 때 호출할 액션입니다.

min

최솟값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

max

최댓값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

LocalVariableValue(variable, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

use된 스크린의 변수 값을 조절합니다.

최상위 스크린 변수에는 ScreenVariableValue()를 권장합니다.

자세한 내용은 use를 참고하세요.

변수를 설정할 컨텍스트에서 생성해야 하며 외부에서 전달할 수 없습니다.

variable

조절할 변수 이름 문자열입니다.

range

조절 범위입니다. max와 min이 없으면 필수입니다.

max_is_zero

True이면 지역 변수 값이 0일 때 바 값은 range이며 다른 값은 1씩 내려갑니다. 양방향으로 적용되어 바를 최대로 설정하면 지역 변수 값은 0이 됩니다.

일부 환경설정에서 내부적으로 사용합니다.

style

생성한 바의 스타일입니다.

offset

값에 더할 오프셋입니다.

step

바를 바꿀 양입니다. None이면 전체의 1/10입니다.

force_step

True이면 step의 불연속 단계만 가능하며, False이면 범위 내 모든 값이 가능합니다.

action

None이 아니면 지역 변수 값이 바뀔 때 호출할 액션입니다.

min

최솟값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

max

최댓값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

MixerValue(mixer, step=None, force_step=False)

오디오 믹서의 값입니다.

mixer

조절할 믹서 이름입니다. 보통 "main", "music", "sfx", "voice" 중 하나입니다. 음량을 참고하세요.

step

바를 바꿀 양입니다. None이면 전체의 1/10입니다. MixerValue에서는 음량을 바꿀 데시벨 수입니다.

force_step

True이면 step의 불연속 단계만 가능하며, False이면 범위 내 모든 값이 가능합니다.

ScreenVariableValue(variable, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

스크린 변수 값을 조절하는 바 값입니다.

use된 스크린에서는 모든 use 스크린을 감싸는 스크린의 변수를 대상으로 합니다. use된 스크린 내부 변수를 조절하려는 경우에만 LocalVariableValue()를 사용합니다.

variable

조절할 변수 이름 문자열입니다.

range

조절 범위입니다. max와 min이 없으면 필수입니다.

max_is_zero

True이면 스크린 변수 값이 0일 때 바 값은 range이며 다른 값은 1씩 내려갑니다. 양방향으로 적용되어 바를 최대로 설정하면 스크린 변수 값은 0이 됩니다.

일부 환경설정에서 내부적으로 사용합니다.

style

생성한 바의 스타일입니다.

offset

값에 더할 오프셋입니다.

step

바를 바꿀 양입니다. None이면 전체의 1/10입니다.

force_step

True이면 step의 불연속 단계만 가능하며, False이면 범위 내 모든 값이 가능합니다.

action

None이 아니면 스크린 변수 값이 바뀔 때 호출할 액션입니다.

min

최솟값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

max

최댓값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

StaticValue(value=0.0, range=1.0)

값을 정적으로 지정합니다.

value

값을 나타내는 숫자입니다.

range

값의 범위입니다.

VariableValue(variable, range=None, max_is_zero=False, style='bar', offset=0, step=None, action=None, force_step=False, min=None, max=None)

기본 스토어 변수의 값을 사용자가 조절하게 하는 바 값입니다.

variable

variable은 "strength" 같은 단순 이름 또는 "hero.strength", "persistent.show_cutscenes"처럼 점으로 필드를 구분한 문자열이어야 합니다.

range

조절 범위입니다. max와 min이 없으면 필수입니다.

max_is_zero

True이면 변수 값이 0일 때 바 값은 range이며 다른 값은 1씩 내려갑니다. 양방향으로 적용되어 바를 최대로 설정하면 변수 값은 0이 됩니다.

일부 환경설정에서 내부적으로 사용합니다.

style

생성한 바의 스타일입니다.

offset

값에 더할 오프셋입니다.

step

바를 바꿀 양입니다. None이면 전체의 1/10입니다.

force_step

True이면 step의 불연속 단계만 가능하며, False이면 범위 내 모든 값이 가능합니다.

action

None이 아니면 변수 값이 바뀔 때 호출할 액션입니다.

min

최솟값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

max

최댓값입니다. min과 max를 모두 지정하면 range와 offset을 계산합니다.

XScrollValue(viewport)

현재 스크린에서 지정한 ID의 뷰포트를 가로로 스크롤하는 조정 값입니다. 이 값을 쓰는 바보다 뷰포트를 먼저 정의해야 합니다.

YScrollValue(viewport)

현재 스크린에서 지정한 ID의 뷰포트를 세로로 스크롤하는 조정 값입니다. 이 값을 쓰는 바보다 뷰포트를 먼저 정의해야 합니다.

입력 값

텍스트 입력의 기본값 설정, 변경 수신, Enter 처리, 기본 편집 가능 여부 결정에 사용합니다. 새 값을 만들려면 InputValue를 상속합니다.

Ren'Py의 입력 값은 InputValue를 상속하므로 편집을 활성화, 비활성화, 전환하는 액션을 반환하는 Enable(), Disable(), Toggle() 메서드가 있습니다. DisableAllInputValues()도 참고하세요.

DictInputValue(dict, key, default=True, returnable=False)

dict[key]를 갱신하는 입력 값입니다.

dict

dict 객체 또는 list입니다.

default

참이면 기본적으로 편집 가능할 수 있습니다.

returnable

참이면 Enter를 누를 때 입력 값을 반환합니다.

FieldInputValue(object, field, default=True, returnable=False)

object의 field를 갱신하는 입력 값입니다.

field

필드 이름 문자열입니다.

default

참이면 기본적으로 편집 가능할 수 있습니다.

returnable

참이면 Enter를 누를 때 입력 값을 반환합니다.

FilePageNameInputValue(pattern='Page {}', auto='Automatic saves', quick='Quick saves', page=None, default=False)

파일 페이지 이름을 갱신하는 입력 값입니다.

pattern

기본 페이지 이름에 사용합니다. Python 방식의 치환으로 {}를 페이지 번호로 바꿉니다.

auto

자동 저장 페이지 이름입니다.

quick

빠른 저장 페이지 이름입니다.

page

지정하면 표시할 페이지 번호입니다. 보통 None으로 두어 현재 페이지를 사용해야 합니다.

default

참이면 기본적으로 편집 가능할 수 있습니다.

LocalVariableInputValue(variable, default=True, returnable=False)

use된 스크린의 지역 변수를 갱신하는 입력 값입니다.

최상위 스크린 변수에는 ScreenVariableInputValue()를 권장합니다.

자세한 내용은 use를 참고하세요.

변수를 설정할 컨텍스트에서 생성해야 하며 외부에서 전달할 수 없습니다.

variable

갱신할 변수 이름 문자열입니다.

default

참이면 기본적으로 편집 가능할 수 있습니다.

returnable

참이면 Enter를 누를 때 입력 값을 반환합니다.

ScreenVariableInputValue(variable, default=True, returnable=False)

스크린 변수를 갱신하는 입력 값입니다.

use된 스크린에서는 모든 use 스크린을 감싸는 스크린의 변수를 대상으로 합니다. use된 스크린 내부 변수를 대상으로 하는 경우에만 LocalVariableInputValue()를 사용합니다.

variable

갱신할 변수 이름 문자열입니다.

default

참이면 기본적으로 편집 가능할 수 있습니다.

returnable

참이면 Enter를 누를 때 입력 값을 반환합니다.

VariableInputValue(variable, default=True, returnable=False)

variable을 갱신하는 입력 값입니다.

variable

갱신할 변수 이름 문자열입니다.

variable은 "strength" 같은 단순 이름 또는 "hero.strength", "persistent.show_cutscenes"처럼 점으로 필드를 구분한 문자열이어야 합니다.

default

참이면 기본적으로 편집 가능할 수 있습니다.

returnable

참이면 Enter를 누를 때 입력 값을 반환합니다.

함수와 클래스

스크린과 함께 사용하면 유용한 함수와 클래스입니다.

환경설정

위의 액션과 값으로 모든 환경설정을 정의할 수 있지만 올바른 것을 고르려면 Ren'Py 지식이 필요합니다. 환경설정 생성자는 기본 환경설정 스크린의 이름에 따라 알맞은 액션이나 값을 만들어 이를 쉽게 합니다.

Preference(name, value=None, range=None)

환경설정에 맞는 액션이나 값을 만듭니다. 이름은 표준 메뉴의 이름이어야 합니다. 값은 선택 항목 이름, 항목을 순환하는 "toggle", 특정 값이며, 버튼이면 생략할 수 있습니다.

버튼과 핫스폿에서 사용할 액션은 다음과 같습니다.

  • Preference("display", "fullscreen") - 전체 화면으로 표시합니다.

  • Preference("display", "window") - 보통 크기 1배의 창으로 표시합니다.

  • Preference("display", 2.0) - 보통 크기 2.0배의 창으로 표시합니다.

  • Preference("display", "any window") - 이전 크기의 창으로 표시합니다.

  • Preference("display", "toggle") - 화면 모드를 전환합니다.

  • Preference("transitions", "all") - 모든 화면 전환을 표시합니다.

  • Preference("transitions", "none") - 화면 전환을 표시하지 않습니다.

  • Preference("transitions", "toggle") - 화면 전환을 전환합니다.

  • Preference("video sprites", "show") - 모든 동영상 스프라이트를 표시합니다.

  • Preference("video sprites", "hide") - 가능하면 이미지로 대체합니다.

  • Preference("video sprites", "toggle") - 이미지 대체 동작을 전환합니다.

  • Preference("show empty window", "show") - "window show"와 "window auto"가 say 문 밖에서도 빈 창을 표시하도록 허용합니다.

  • Preference("show empty window", "hide") - 위 동작을 막습니다.

  • Preference("show empty window", "toggle") - 위 동작을 전환합니다.

  • Preference("text speed", 0) - 텍스트를 즉시 표시합니다.

  • Preference("text speed", 142) - 초당 142자로 설정합니다.

  • Preference("joystick") - 조이스틱 환경설정을 표시합니다.

  • Preference("skip", "seen") - 읽은 메시지만 건너뜁니다.

  • Preference("skip", "all") - 읽지 않은 메시지도 건너뜁니다.

  • Preference("skip", "toggle") - 읽은 메시지만 또는 모두 건너뛰기를 전환합니다.

  • Preference("begin skipping") - 건너뛰기를 시작합니다.

  • Preference("after choices", "skip") - 선택지 이후에도 건너뜁니다.

  • Preference("after choices", "stop") - 선택지 이후 건너뛰기를 멈춥니다.

  • Preference("after choices", "toggle") - 선택지 이후 건너뛰기를 전환합니다.

  • Preference("auto-forward time", 0) - 자동 진행 시간을 무한대로 설정합니다.

  • Preference("auto-forward time", 10) - 자동 진행 시간을 설정합니다. 단위는 250자당 초입니다.

  • Preference("auto-forward", "enable") - 자동 진행을 활성화합니다.

  • Preference("auto-forward", "disable") - 자동 진행을 비활성화합니다.

  • Preference("auto-forward", "toggle") - 자동 진행을 전환합니다.

  • Preference("auto-forward after click", "enable") - 클릭 후에도 자동 진행을 유지합니다.

  • Preference("auto-forward after click", "disable") - 클릭 후 자동 진행을 끕니다.

  • Preference("auto-forward after click", "toggle") - 클릭 후 자동 진행을 전환합니다.

  • Preference("automatic move", "enable") - MouseMove()로 자동 마우스 이동을 허용합니다.

  • Preference("automatic move", "disable") - MouseMove()를 비활성화합니다.

  • Preference("automatic move", "toggle") - 자동 마우스 이동을 전환합니다.

  • Preference("wait for voice", "enable") - 재생 중인 음성이 끝난 뒤 자동 진행합니다.

  • Preference("wait for voice", "disable") - 음성 완료를 기다리지 않고 자동 진행합니다.

  • Preference("wait for voice", "toggle") - 음성 대기를 전환합니다.

  • Preference("voice sustain", "enable") - 현재 상호작용 이후에도 음성을 유지합니다.

  • Preference("voice sustain", "disable") - 현재 상호작용 이후에는 음성을 유지하지 않습니다.

  • Preference("voice sustain", "toggle") - 음성 유지를 전환합니다.

  • Preference("music mute", "enable") - music 믹서를 음소거합니다.

  • Preference("music mute", "disable") - music 음소거를 해제합니다.

  • Preference("music mute", "toggle") - music 음소거를 전환합니다.

  • Preference("sound mute", "enable") - sound 믹서를 음소거합니다.

  • Preference("sound mute", "disable") - sound 음소거를 해제합니다.

  • Preference("sound mute", "toggle") - sound 음소거를 전환합니다.

  • Preference("voice mute", "enable") - voice 믹서를 음소거합니다.

  • Preference("voice mute", "disable") - voice 음소거를 해제합니다.

  • Preference("voice mute", "toggle") - voice 음소거를 전환합니다.

  • Preference("mixer <mixer> mute", "enable") - 지정한 믹서를 음소거합니다.

  • Preference("mixer <mixer> mute", "disable") - 지정한 믹서의 음소거를 해제합니다.

  • Preference("mixer <mixer> mute", "toggle") - 지정한 믹서의 음소거를 전환합니다.

  • Preference("all mute", "enable") - 각 믹서를 모두 음소거합니다.

  • Preference("all mute", "disable") - 각 믹서의 음소거를 모두 해제합니다.

  • Preference("all mute", "toggle") - 각 믹서의 음소거를 전환합니다.

  • Preference("main volume", 0.5) - 모든 채널에 적용하는 조정값을 설정합니다.

  • Preference("music volume", 0.5) - 음악 음량을 설정합니다.

  • Preference("sound volume", 0.5) - 효과음 음량을 설정합니다.

  • Preference("voice volume", 0.5) - 음성 음량을 설정합니다.

  • Preference("mixer <mixer> volume", 0.5) - 지정한 믹서 음량을 설정합니다.

  • Preference("emphasize audio", "enable") - config.emphasize_audio_channels의 채널을 강조합니다.

  • Preference("emphasize audio", "disable") - 오디오 채널을 강조하지 않습니다.

  • Preference("emphasize audio", "toggle") - 오디오 강조를 전환합니다.

  • Preference("self voicing", "enable") - 자체 음성 출력을 활성화합니다.

  • Preference("self voicing", "disable") - 자체 음성 출력을 비활성화합니다.

  • Preference("self voicing", "toggle") - 자체 음성 출력을 전환합니다.

  • Preference("self voicing volume drop", 0.5) - 자체 음성 출력 중 비음성 믹서 음량을 낮춥니다.

  • Preference("clipboard voicing", "enable") - 클립보드 음성 출력을 활성화합니다.

  • Preference("clipboard voicing", "disable") - 클립보드 음성 출력을 비활성화합니다.

  • Preference("clipboard voicing", "toggle") - 클립보드 음성 출력을 전환합니다.

  • Preference("debug voicing", "enable") - 자체 음성 출력 디버깅을 활성화합니다.

  • Preference("debug voicing", "disable") - 자체 음성 출력 디버깅을 비활성화합니다.

  • Preference("debug voicing", "toggle") - 자체 음성 출력 디버깅을 전환합니다.

  • Preference("rollback side", "left") - 화면 왼쪽을 터치하면 롤백합니다.

  • Preference("rollback side", "right") - 화면 오른쪽을 터치하면 롤백합니다.

  • Preference("rollback side", "disable") - 화면 터치로 롤백하지 않습니다.

  • Preference("gl powersave", True) - 절전을 위해 프레임 속도를 낮춥니다.

  • Preference("gl powersave", False) - 절전을 위해 프레임 속도를 낮추지 않습니다.

  • Preference("gl framerate", None) - 화면의 프레임 속도로 실행합니다.

  • Preference("gl framerate", 60) - 지정한 프레임 속도로 실행합니다.

  • Preference("gl tearing", True) - 프레임 건너뛰기 대신 화면 찢어짐을 허용합니다.

  • Preference("gl tearing", False) - 화면 찢어짐 대신 프레임을 건너뜁니다.

  • Preference("font transform", "opendyslexic") - 접근성 글꼴 변환을 opendyslexic으로 설정합니다.

  • Preference("font transform", "dejavusans") - 접근성 글꼴 변환을 deja vu sans로 설정합니다.

  • Preference("font transform", None) - 접근성 글꼴 변환을 끕니다.

글꼴 변환 추가 방법은 config.font_transforms를 참고하세요.

  • Preference("font size", 1.0) - 접근성 글꼴 크기 배율을 설정합니다.

  • Preference("font line spacing", 1.0) - 접근성 글꼴 세로 간격 배율을 설정합니다.

  • Preference("system cursor", "disable") - config.mouse 또는 config.mouse_displayable의 커서를 사용합니다.

  • Preference("system cursor", "enable") - config.mouse를 무시하고 시스템 커서를 사용합니다.

  • Preference("system cursor", "toggle") - 시스템 커서를 전환합니다.

  • Preference("high contrast text", "enable") - 검정 배경의 흰색 텍스트를 활성화합니다.

  • Preference("high contrast text", "disable") - 고대비 텍스트를 끕니다.

  • Preference("high contrast text", "toggle") - 고대비 텍스트를 전환합니다.

  • Preference("audio when minimized", "enable") - 창을 최소화해도 소리를 재생합니다.

  • Preference("audio when minimized", "disable") - 최소화하면 소리를 재생하지 않습니다.

  • Preference("audio when minimized", "toggle") - 최소화 중 소리 재생을 전환합니다.

  • Preference("audio when unfocused", "enable") - 창에 포커스가 없어도 소리를 재생합니다.

  • Preference("audio when unfocused", "disable") - 포커스가 없으면 소리를 재생하지 않습니다.

  • Preference("audio when unfocused", "toggle") - 포커스가 없을 때 소리 재생을 전환합니다.

  • Preference("web cache preload", "enable") - 웹 캐시를 미리 불러옵니다.

  • Preference("web cache preload", "disable") - 미리 불러오지 않고 기존에 불러온 데이터도 삭제합니다.

  • Preference("web cache preload", "toggle") - 웹 캐시 미리 불러오기를 전환합니다.

  • Preference("voice after game menu", "enable") - 게임 메뉴에 들어가도 음성을 계속 재생합니다.

  • Preference("voice after game menu", "disable") - 게임 메뉴에 들어가면 음성을 멈춥니다.

  • Preference("voice after game menu", "toggle") - 게임 메뉴 진입 후 음성 재생을 전환합니다.

  • Preference("restore window position", "enable") - 게임 시작 시 창 위치를 복원합니다.

  • Preference("restore window position", "disable") - 게임 시작 시 창 위치를 복원하지 않습니다.

  • Preference("restore window position", "toggle") - 창 위치 복원을 전환합니다.

  • Preference("mono audio", "enable") - 오디오를 모노로 다운믹스하도록 강제합니다.

  • Preference("mono audio", "disable") - 모노 다운믹스 강제를 해제합니다.

  • Preference("mono audio", "toggles") - 모노 오디오를 전환합니다.

바에서 사용할 값은 다음과 같습니다.

  • Preference("text speed")

  • Preference("auto-forward time")

  • Preference("main volume")

  • Preference("music volume")

  • Preference("sound volume")

  • Preference("voice volume")

  • Preference("mixer <mixer> volume")

  • Preference("self voicing volume drop")

  • Preference("font size")

  • Preference("font line spacing")

  • Preference("font kerning")

range로 일부 바의 범위를 지정할 수 있습니다. "text speed"는 기본적으로 200 cps, "auto-forward time"은 텍스트 묶음당 30.0초입니다. 이는 설정 기본값이 아니라 최댓값입니다.

버튼에서 사용할 액션은 다음과 같습니다.

  • Preference("renderer menu") - 렌더러 메뉴를 표시합니다.

  • Preference("accessibility menu") - 접근성 메뉴를 표시합니다.

  • Preference("reset") - 환경설정을 기본값으로 초기화합니다.

이 스크린들은 내부용이며 사용자 지정할 수 없습니다.

GetCharacterVolume(voice_tag)

음성 태그에 연결된 음량을 0.0부터 1.0 사이 숫자로 반환합니다. voice 채널 믹서 음량의 비율로 해석합니다.

게임패드

게임패드용 함수와 액션입니다.

GamepadCalibrate()

게임패드 보정 절차를 실행하는 액션입니다.

GamepadExists(developer=True)

게임패드가 있으면 참, 없으면 거짓을 반환합니다.

developer

config.developer가 참인 동안 항상 참을 반환하게 합니다.

파일 함수

파일의 유용한 정보를 반환합니다. 파일 액션과 같은 기본 페이지를 사용합니다.

FileCurrentPage()

현재 파일 페이지를 문자열로 반환합니다.

class FileCurrentScreenshot(empty=None, **properties)

메뉴에 들어갈 때나 FileTakeScreenshot()으로 스크린샷을 찍었다면 현재 파일과 함께 저장할 스크린샷을 표시하는 디스플레이어블입니다.

현재 스크린샷이 없으면 empty를 표시합니다. empty가 None이면 Null()이 기본값입니다.

FileJson(name, key=None, empty=None, missing=None, page=None, slot=False)

name에 연결된 JSON 정보에 접근합니다.

빈 슬롯이면 항상 empty를 반환합니다.

빈 슬롯이 아니고 key가 None이면 JSON 데이터 딕셔너리 전체를 반환합니다.

그 밖에는 저장의 JSON 객체에 key가 있으면 json[key]를 반환합니다. 저장은 있지만 key가 없으면 missing을 반환합니다.

JSON 데이터는 config.save_json_callbacks에 등록한 콜백으로 추가합니다.

기본적으로 다음 키가 정의됩니다.

_save_name

저장 당시의 save_name 값입니다.

_renpy_version

저장 파일을 만든 Ren'Py 버전입니다.

_version

저장 당시의 config.version 값입니다.

_game_runtime

renpy.get_game_runtime() 호출 결과입니다.

_ctime

저장 생성 시각입니다. 1970년 1월 1일 UTC 이후의 초입니다.

FileLoadable(name, page=None, slot=False)

파일을 불러올 수 있으면 참, 없으면 거짓을 반환합니다.

FileNewest(name, page=None, slot=False)

최신 파일 슬롯이면 True, 아니면 False를 반환합니다.

FilePageName(auto='a', quick='q')

현재 파일 페이지 이름 문자열을 반환합니다. 일반 페이지이면 번호, 그 밖에는 auto 또는 quick입니다.

FileSaveName(name, empty='', page=None, slot=False)

저장 당시의 save_name을 반환합니다. 파일이 없으면 empty입니다.

FileScreenshot(name, empty=None, page=None, slot=False)

파일에 연결된 스크린샷을 반환합니다. 불러올 수 없으면 empty를 반환하며, 그것이 None이면 Null 디스플레이어블을 만듭니다.

반환값은 디스플레이어블입니다.

FileSlotName(slot, slots_per_page, auto='a', quick='q', format='%s%d')

번호가 있는 슬롯 이름을 반환합니다. 일반 페이지의 슬롯과 페이지 번호가 모두 1부터 순차적으로 시작한다고 가정합니다. slot이 2, slots_per_page가 10이고 나머지가 기본값이면 다음과 같습니다.

  • 첫 페이지에서는 "2"를 반환합니다.

  • 두 번째 페이지에서는 "12"를 반환합니다.

  • 자동 저장 페이지에서는 "a2"를 반환합니다.

  • 빠른 저장 페이지에서는 "q2"를 반환합니다.

slot

접근할 슬롯 번호입니다.

slots_per_page

페이지당 슬롯 수입니다.

auto

자동 저장 페이지 접두사입니다.

quick

빠른 저장 페이지 접두사입니다.

format

사용할 서식 코드입니다. 페이지 접두사 문자열과 슬롯 번호 정수의 두 인수를 받습니다.

FileTime(name, format='%b %d, %H:%M', empty='', page=None, slot=False)

format에 맞춘 저장 시간을 반환합니다. 파일이 없으면 empty입니다.

반환값은 문자열입니다.

FileUsedSlots(page=None, highest_first=True)

페이지에서 사용 중인 숫자 파일 슬롯 리스트를 반환합니다.

page

검사할 페이지 이름입니다. None이면 현재 페이지입니다.

highest_first

참이면 큰 번호부터, 그렇지 않으면 작은 번호부터 나열합니다.

사이드 이미지 함수

사용할 사이드 이미지를 반환합니다.

HasSideImage()

현재 상호작용에서 사이드 이미지를 표시하면 True, 아니면 거짓을 반환합니다. 상호작용 시작 시에만 유효한 SideImage보다 일찍 사용할 수 있어 say 스크린에서 이미지 유무에 따라 배치를 바꿀 수 있습니다.

SideImage()

현재 화자의 사이드 이미지를 반환합니다. 없으면 Null 디스플레이어블입니다. 설정되어 있다면 두 사이드 이미지 사이의 트랜스폼일 수 있습니다.

그 밖의 함수

CurrentScreenName()

현재 스크린 이름을 반환합니다. 없으면 None입니다. use로 포함된 스크린에서는 포함되는 스크린이 아닌 포함하는 스크린의 이름을 반환합니다.

툴팁

모든 디스플레이어블의 tooltip 속성과 GetTooltip으로 툴팁에 접근할 수 있습니다. GetTooltip은 포커스를 얻은 디스플레이어블의 tooltip 값을 반환합니다.

tooltip에 전달하는 값은 동등성 비교를 지원해야 합니다.

예제는 다음과 같습니다.

screen tooltip_example():
    vbox:
        textbutton "북쪽":
            action Return("n")
            tooltip "북극곰을 만나러 가요."

        textbutton "남쪽":
            action Return("s")
            tooltip "열대 지방까지 쭉 가요."

        textbutton "동쪽":
            action Return("e")
            tooltip "새벽을 맞이하러 가요."

        textbutton "서쪽":
            action Return("w")
            tooltip "가장 아름다운 일몰을 볼 수 있는 곳으로 가요."

        $ tooltip = GetTooltip()

        if tooltip:
            text "[tooltip]"

Nearrect로 팝업 형태의 툴팁을 표시할 수 있습니다. 툴팁을 설정한 마지막 포커스 위치를 나타내는 특수 이름 "tooltip"도 지원합니다.

screen tooltip_example2():
    frame:

        padding (20, 20)
        align (.5, .3)

        has vbox

        textbutton "북쪽":
            action Return("n")
            tooltip "북극곰을 만나러 가요."

        textbutton "남쪽":
            action Return("s")
            tooltip "열대 지방까지 쭉 가요."

        textbutton "동쪽":
            action Return("e")
            tooltip "새벽을 맞이하러 가요."

        textbutton "서쪽":
            action Return("w")
            tooltip "가장 아름다운 일몰을 볼 수 있는 곳으로 가요."

    # This has to be the last thing shown in the screen.

    $ tooltip = GetTooltip()

    if tooltip:

        nearrect:
            focus "tooltip"
            prefer_top True

            frame:
                xalign 0.5
                text tooltip
GetTooltip(screen=None, last=False)

현재 포커스된 디스플레이어블의 툴팁을 반환합니다. 없으면 None입니다.

screen

None이 아니라면 스크린 이름이나 태그여야 합니다. 포커스된 디스플레이어블이 그 스크린에 속할 때만 툴팁을 반환합니다.

last

참이면 이 함수가 반환했을 마지막 None 이외의 값을 반환합니다.

이전 방식

경고

위의 방식으로 대체되었지만 이전 프로젝트에서 볼 수 있습니다.

버튼에 마우스를 올리면 스크린을 바꾸는 툴팁 클래스입니다.

class Tooltip(default)

마우스가 영역 위에 올라오면 갱신할 스크린 일부를 정의할 수 있습니다.

툴팁 객체의 value 필드는 생성자에 전달한 default로 초기화됩니다. 툴팁이 만든 액션을 사용하는 버튼에 마우스를 올리면 액션에 연결된 값으로 바뀝니다.

Action(value)

보통 버튼의 hovered 속성에 사용할 액션을 반환합니다. 마우스를 올리면 value를 value로 바꾸고, 포커스를 잃으면 기본값으로 복원합니다.

스크린에서는 보통 default 문으로 툴팁 객체를 만들고 그 값과 action 메서드를 사용합니다. 사용 순서는 관계없으므로 액션보다 먼저 값을 사용할 수도 있습니다.

툴팁에는 어떤 값이든 가능합니다. 아래 예제는 text로 문자열을 표시하지만 add로 디스플레이어블을 추가하거나 더 복잡한 동작을 구현할 수도 있습니다.

screen tooltip_test:

    default tt = Tooltip("선택한 버튼이 없습니다.")

    frame:
        xfill True

        has vbox

        textbutton "하나.":
            action Return(1)
            hovered tt.Action("가장 외로운 숫자.")

        textbutton "둘.":
            action Return(2)
            hovered tt.Action("함께하려면 둘은 있어야죠.")

        textbutton "셋.":
            action Return(3)
            hovered tt.Action("셋이면 북적거리죠.")

        text tt.value