스크린 액션, 값, 함수
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 |
|||||
Toggle |
|||||
Cycle |
|||||
Increment |
|||||
접근 방식은 바꿀 대상을, 관리 방식은 새 값을 결정합니다. 동작은 다음과 같습니다.
-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 = valueToggle-은 대상의 불리언 값을 반전합니다. 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
다음 데이터 액션은 위 규칙을 따르지 않습니다. 일부는 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