렌파이에는 스크린과 스크린 언어에서 사용할 수 있는 다양한 액션, 값, 함수가 있습니다.
액션은 이미지버튼이나 핫스팟 등의 버튼이 활성화되었을 때, 포커스를 얻었을 때, 포커스를 잃었을 때 발생합니다. 액션은 버튼이 선택되거나 비활성화 상태이어야 할 때를 결정할 수 있습니다.
이런 액션과 함께 있을 때, 액션은 아무 인수도 받지 않는 함수일 수도 있습니다. 함수는 해당 액션이 실행될 때 호출됩니다. 만약 액션이 함수를 반환하면, 그 값은 인터렉션에서 반환됩니다.
액션은 액션 리스트가 될 수도 있으며, 리스트에 있는 액션들은 순서대로 실행될 것입니다.
제어 흐름, 인터렉션 결과, 스크린을 관리하는 액션입니다.
Hide
(screen, transition=None)¶screen 이라는 이름의 스크린이 표시 중이라면 숨긴다.
Jump
(label)¶주어진 레이블로 제어 흐름을 이동시킨다. 특정 레이블로 점프하는 이미지맵을 정의하기 위해 renpy.run_screen 과 결합해 사용할 수 있다.
NullAction
()¶아무런 동작을 하지 않는다.
아무런 동작을 하지 않으면서 마우스 커서에 반응해 이벤트를 실행하는 버튼을 만들 때 사용한다.
Return
(value=True)¶지정한 값을 반환하는 인터렉션을 발생시킨다. 인터렉션의 반환값이 무엇인지 선택하기 위해 메뉴나 이미지맵과 함께 쓰인다.
메뉴에 있을 때는 메뉴로부터 반환한다.
Show
(screen, transition=None, *args, **kwargs)¶또다른 스크린을 표시한다. screen 은 스크린의 이름이 적힌 문자열이다. 키워드 인수는 표시된 스크린으로 전달된다.
None이 아니라면 새로운 스크린을 표시할 때 `transition`을 사용한다.
ShowTransient
(screen, *args, **kwargs)¶일시적으로 나타나는 스크린을 표시한다. 일시적으로 나타나는 스크린은 현재 인터렉션이 완료되면 사라지게 된다.
데이터를 설정하거나 토글합니다.
AddToSet
(set, value)¶RemoveFromSet
(set, value)¶SetField
(object, field, value)¶객체의 필드를 지정한 값으로 설정한다. object 는 객체, field`는 설정할 필드의 이름값을 제공하는 문자열, `value 는 그것에 설정할 값이다.
SetScreenVariable
(name, value)¶현재 스크린과 관련이 있는 name 변수의 값을 value 로 설정한다.
SetVariable
(variable, value)¶value 를 variable 에 설정한다.
ToggleDict
(dict, key, true_value=None, false_value=None)¶dict 내의 key 값을 토글한다. 토글이란 액션이 실행될 때 값이 반전된다는 의미이다.
ToggleField
(object, field, true_value=None, false_value=None)¶object 의 field 를 토글한다. 토글이란 액션이 실행될 때 필드의 참거짓 값을 반전한다는 의미이다.
ToggleScreenVariable
(name, true_value=None, false_value=None)¶현재 스크린에 있는 name 변수의 값을 토글한다.
ToggleSetMembership
(set, value)¶set 의 value 의 멤버십을 토글한다. 이 때 value 에 지정한 값이 셋에 없다면 값이 셋에 추가된다. 이 이외에는 제거된다.
이 액션을 사용하는 버튼은 지정한 `set`에 `value`가 있을 때에만 선택된 상태로 표시된다.
ToggleVariable
(variable, true_value=None, false_value=None)¶variable 을 토글한다.
메뉴를 호출하거나, 메인 메뉴 또는 게임 메뉴에서 가장 유용한 액션입니다.
MainMenu
(confirm=True)¶Ren'Py 메인 메뉴로 돌아가게 한다.
Quit
(confirm=True)¶게임을 종료한다.
ShowMenu
(screen=None, *args, **kwargs)¶이미 게임 메뉴에 있는 게 아닌 경우라면, 게임 메뉴로 진입한다. 게임 메뉴에 있다면 라벨로 돌아가거나 스크린을 띄운다.
screen 은 일반적으로 스크린 기능을 사용해 나타난 스크린의 이름이다. 스크린이 없다면, "_screen"이 뒤에 붙어서 레이블로 점프하게 된다.
사용자가 정의한 메뉴 스크린을 표시할 때도 사용할 수 있다. 예를 들어, "stats" 이라고 정의한 스크린이 있는 경우, 아래와 같이 적으면 게임 메뉴의 일부로 표시할 수 있다:
인수가 없는 ShowMenu 는 _game_menu_screen에 기본으로 정의해둔 게임 메뉴 화면으로 진입하게 한다.
추가 인수와 키워드 인수는 스크린에 전달된다.
Start
(label='start')¶메뉴에서 빠져나와 인수로 받은 레이블로 이동한다. 메인 메뉴에서 새 게임을 시작하기 위해 주로 사용한다. 일반적인 사용 방법은 다음과 같다.:
세이브, 로드 파일 삭제를 관리하는 액션입니다. 이 액션들은 대부분 name 과 page 인수를 받습니다
FileAction
(name, page=None, **kwargs)¶파일에 "적당한 작업"을 한다. "load" 스크린이 표시되고 있으면 파일을 불러오고, save 스크린이 표시되고 있으면 저장한다.
기타 키워드 인수는 FileLoad 또는 FileSave에 전달된다.
FileDelete
(name, confirm=True, page=None)¶파일을 삭제한다.
FileLoad
(name, confirm=True, page=None, newest=True)¶파일을 불러온다.
FilePage
(page)¶"auto", "quick", 양의 정수 가운데 하나이어야 하는 page 에 파일 페이지를 설정한다.
FilePageNext
(max=None, wrap=False)¶다음 파일 페이지로 이동한다.
FilePagePrevious
(max=None, wrap=False)¶가능한 경우 이전 파일 페이지로 이동한다.
FileSave
(name, confirm=True, newest=True, page=None, cycle = False)¶파일을 저장한다.
가장 최근 세이브 파일로 표시된 경우에는 이 액션이 함께 쓰인 버튼 슬롯이 선택된다.
config.quicksave_slots
에 지정한 슬롯값을
사용한다.FileTakeScreenshot
()¶게임이 세이브 될 때 스크린샷을 찍는다. 세이브 화면이 나타나기 전의 화면을 찍어서 스크린샷이 정확히 되었는지 확인하기 위해 사용할 수 있다.
QuickLoad
()¶퀵세이브로 저장한 파일을 불러온다.
QuickSave
(message='퀵 세이브 완료.', newest=False)¶퀵 세이브를 한다.
Play
(channel, file, selected=None, **kwargs)¶지정한 채널에서 소리 파일을 재생한다.
모든 키워드 인수는 renpy.music.play()
에 전달된다.
Queue
(channel, file, **kwargs)¶지정한 채널에 오디오 파일을 대기열에 추가한다.
모든 키워드 인수는 renpy.music.quene()
에 전달된다.
SetMixer
(mixer, volume)¶mixer 의 음량을 value 로 설정한다.
SetMute
(mixer, mute)¶하나 이상의 믹서를 음소거 상태로 설정한다. 어느 믹서가 음소거 상태라면 해당 믹서가 담당하는 오디오 채널은 소리 재생을 중단할 것이다.
Stop
(channel, **kwargs)¶오디오 채널이 멈추도록 한다.
모든 키워드 인수는 renpy.music.stop()
에 전달된다.
ToggleMute
(mixer)¶하나 이상의 믹서를 음소거하거나 음소거 해제한다.
분류될 곳이 없는 기타 액션입니다.
Function
(callable, *args, **kwargs)¶callable`을 `args 및 `kwargs`와 함께 호출하는 액션.
이 액션은 추가로 기본값이 True인 _update_screens 키워드 인수를 받는다. 이 키워드 인수가 참이면 이 함수가 종료한 뒤에 인터렉션을 재시작하고 스크린을 갱신한다.
Help
(help=None)¶도움말을 표시한다.
HideInterface
()¶사용자가 클릭할 때까지 인터페이스를 숨긴다.
If
(expression, true = None, false=None)¶expression 이 True라면 true 를 반환하고, 그렇지 않으면 false 를 반환한다. 표현식에 기초한 액션을 선택할 때 사용할 수 있다. 기본값인 None 값은 버튼이 사용 불가능하도록 만들 때 사용된다.
InvertSelected
(action)¶다른 메소드들을 대신하면서, 지정한 액션의 선택 상태를 반전한다.
MouseMove
(x, y, duration=0)¶마우스 포인터를 x, y 로 이동시킨다. 마우스 포인터를 지원하지 않는 기기이거나 _preferences.mouse_move 가 False라면 작동하지 않는다.
Notify
(message)¶renpy.notify()
를 사용해 message 를 표시한다.
OpenURL
(url)¶url 을 웹브라우저에서 연다.
RestartStatement
()¶현재 명령문 이전으로 롤백한 뒤, 현재 명령문을 다시 실행시킨다. 명령문 표시에 영향을 미치는 지속 변수를 변경할 때 사용할 수 있다.
메뉴 상황에서 실행하면 롤백을 실행하기 전에 최상위레벨 상황으로 빠져나갈 때까지 대기한다.
RollForward
()¶롤포워드가 가능하면 롤포워드한다. 그 외에 이 액션은 비활성화된다.
RollBack
()¶롤백이 가능하면 롤백한다. 불가능하면 아무 일도 안 일어난다.
Screenshot
()¶스크린샷을 찍는다.
SelectedIf
(expression)¶버튼을 선택된 상태로 표시해야 하는지를 결정하는 표현식을 사용할 수 있는 액션. 액션이 하나 이상 적힌 리스트에서 사용해야 한다.
# mars_flag 가 True면 선택된 상태로 나타나는 버튼.
textbutton "마소폴리스":
action [Jump("mars"), SelectedIf(mars_flag)]
SensitiveIf
(expression)¶버튼이 사용 가능한 상태로 표시되어야 하는가를 결정하는 표현식을 사용할 수 있는 액션. 액션이 하나 이상 적힌 리스트에서 사용해야 한다.
# The button is sensitive if mars_flag is True
textbutton "마소폴리스":
action [ Jump("mars"), SensitiveIf(mars_flag) ]
Skip
(fast=False)¶스킵을 시작한다. 게임이 메뉴 상황에 있다면 게임으로 돌아간다. 그 외의 경우에는 스킵을 시작한다.
값은 바 값을 설정하거나 바가 기본 설정들을 조정하도록 하기 위해 바와 함께 사용됩니다.
AnimatedValue
(value=0.0, range=1.0, delay=1.0, old_value=None)¶값을 old_value 에서 value 로 변경하기까지 소요되는 초 단위 시간 delay 를 받아 값이 움직이게 한다.
DictValue
(dict, key, range, max_is_zero=False, style='bar', offset=0, step=None)¶사용자가 딕셔너리에 있는 키 값을 조정할 수 있도록 하는 값.
FieldValue
(object, field, range, max_is_zero=False, style='bar', offset = 0)¶객체 필드의 값을 플레이어가 조정할 수 있도록 하는 값.
값이 True이고 field가 0인 경우 바 값을 range로 설정하고, 다른 값을 모두 1로 바꾼다. 혹은, bar가 최대값으로 설정되어 있을 때 필드를 0으로 설정한다. (두 가지 경우 모두 가능)
이 매개변수는 몇 가지 환경설정 액션에서 사용하기 위해 내부에서 사용한다.
MixerValue
(mixer)¶오디오 믹서 값.
StaticValue
(value=0.0, range=1.0)¶값이 정적으로 지정되도록 한다.
VariableValue
(variable, range, max_is_zero=False, style='bar', offset=0, step=None)¶값이 True이고 field가 0인 경우 바 값을 range로 설정하고, 다른 값을 모두 1로 바꾼다. 혹은, bar가 최대값으로 설정되어 있을 때 필드를 0으로 설정한다. (두 가지 경우 모두 가능)
이 매개변수는 몇 가지 환경설정 액션에서 사용하기 위해 내부에서 사용한다.
XScrollValue
(viewport)¶스크린에서 지정한 id를 사용하는 뷰포트를 가로로 스크롤하는 조정값. 이 값이 value에 지정된 바가 정의되기 이전에 뷰포트가 정의되어야 한다.
YScrollValue
(viewport)¶스크린에서 지정한 id를 사용하는 뷰포트를 세로로 스크롤하는 조정값. 이 값이 value에 지정된 바가 정의되기 이전에 뷰포트가 정의되어야 한다.
다음 함수와 클래스는 특정 스크린에서 유용하게 쓸 수 있습니다.
환경설정에 관한 모든 것은 위에 나열된 액션과 값으로 정의할 수 있으므로, 적합한 값이 무엇인지 알아내기 위해서는 렌파이에 관한 지식이 약간 필요합니다. 하지만 환경설정 생성자가 기존 환경설정 스크린에서 사용되는 액션이나 값을 적절하게 만들어내므로 사용하기 어렵지 않을 것입니다.
Preference
(name, value=None)¶적절한 액션이나 값을 환경설정으로부터 구성한다. 설정값의 이름은 표준 메뉴에서 나타난 이름이어야 하며, 값은 선택의 이름이거나 선택을 통해 순환하는 "toggle" , 특정 값, 또는 버튼의 경우 값이 없어야 한다.
버튼과 핫스팟에 사용할 수 있는 액션은 다음과 같다:
config.emphasize_audio_channels
변수에 지정한 소리 채널을 강조하기바에 사용할 수 있는 값은 아래와 같습니다:
아래의 기능들은 파일에 관한 유용한 정보를 반환합니다. 파일 액션과 같은 기본 페이지를 사용합니다.
FileCurrentPage
()¶현재 파일 페이지를 문자열로 반환한다.
FileCurrentScreenshot
(empty=None, **properties)¶메뉴에 진입했을 때나 FileTakeScreenshot()
로 스크린샷이 찍혔을 때
현재 파일과 함께 저장될 스크린샷을 표시하는
디스플레이어블
현재 스크린샷이 없다면 empty 를 대신 표시한다. (empty 가
None이라면 기본값은 Null()
이다.)
FileJson
(name, key=None, empty=None, missing=None, page=None)¶`name`과 연관된 Json 정보에 접근한다.
key`가 None이면 Json 전체를 다른 객체에 반환하거나 슬롯이 비었다면 `empty 에 반환한다.
그 외에 이 함수는 key`가 세이브의 json 객체에 정의되었다면 json[key] 반환한다. 지정한 name 과 함께 저장 파일이 있지만 `key`가 없다면 `missing 을, 저장 슬롯이 비어있다면 `empty`를 반환한다.
Json은 config.save_json_callbacks
를 사용해 등록한 콜백으로
저장 슬롯에 추가됩니다.
FileLoadable
(name, page=None)¶파일이 로드할 수 있는 파일이라면 참, 아니면 거짓을 반환하는 함수.
FileNewest
(name, page=None)¶가장 최근 파일 슬롯이라면 True를 반환하며 그 외에는 False를 반환한다.
FilePageName
(auto='a', quick='q')¶현재 세이브/로드 페이지의 이름을 문자열로 반환한다. 일반 페이지라면 페이지 번호를 반환한다. 그 외의 경우 auto 나 quick 을 반환한다.
FileSaveName
(name, empty='', page=None)¶사용 가능한 세이브 파일의 save_name을 반환한다. 파일이 존재하지 않으면 empty 를 반환한다.
FileScreenshot
(name, empty=None, page=None)¶지정한 파일과 관련된 스크린샷을 반환한다. 이 때 파일이 로드할 수 없는 파일이라면, empty 가 반환되며, empty 가 None인 경우 Null 디스플레이어블이 생성된다.
반환값은 디스플레이어블이다.
FileSlotName
(slot, slots_per_page, auto='a', quick='q', format='%s%d')¶슬롯의 이름을 반환한다. 이 함수는 일반 세이브 페이지와 슬롯에 1부터 시작하는 순서대로 번호가 매겨져있다고 가정한다. 슬롯 번호가 2이고 slots_per_page가 10이고, 다른 변수가 기본값이라면:
사이드 이미지 함수는 사용하려는 사이드 이미지를 반환하는 함수입니다.
SideImage
(prefix_tag='side')¶현재 대사를 말하고 있는 캐릭터의 사이드 이미지를 반환한다. 사이드 이미지가 없으면 Null 디스플레이어블을 반환한다.
툴팁 클래스는 버튼에 마우스 커서가 올려져있을 때 스크린에 변화를 줍니다.
Tooltip
(default)¶마우스 커서가 특정한 영역 위에 있을 때 업데이트될 스크린의 일부를 정의하기 위해 사용하는 툴팁 객체.
툴팁 객체에는 value
필드가 있어
툴팁 객체가 생성될 때 생성자에 전달될 값을 default 값에서 받는다.
툴팁 객체가 만든 액션을 사용하는 버튼 위에 마우스를 올리면
value 필드의 값이 그 액션과 관련된 값으로 바뀌게 된다.
Action
(value)¶버튼의 hovered 속성에 사용되는 액션을 반환한다. 버튼 위에 마우스를 올리면 툴팁의 value 필드값이 value 로 설정된다. 버튼에서 마우스가 멀어지면 툴팁의 value 필드값이 기본값으로 돌아간다.
스크린에서 툴팁을 사용하면 보통은 default 문에서 툴팁 객체가 만들어집니다. 그 다음에 툴팁의 값과 액션 메소드가 해당 스크린에서 사용됩니다. 스크린의 순서는 상관 없습니다. 툴팁 액션이 사용되기 전에 값을 사용할 수 있기 때문입니다.
툴팁은 모든 값을 받을 수 있습니다. 아래 예제에서는 화면에 문자열을 표시하기 위해 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