그 밖의 함수와 변수
다른 곳에 분류하기 어려운 여러 함수와 변수를 설명합니다.
Ren'Py 버전
- renpy.version(tuple=False)
tuple이 거짓이면 "Ren'Py " 뒤에 현재 Ren'Py 버전이 붙은 문자열을 반환합니다.
tuple이 참이면 버전의 각 부분을 정수로 담은 튜플을 반환합니다.
- renpy.version_string
"Ren'Py 1.2.3.456" 형태의 Ren'Py 버전 문자열입니다.
- renpy.version_only
Ren'Py 접두사가 없는 버전 번호입니다. "1.2.3.456" 형태의 문자열입니다.
- renpy.version_tuple
(1, 2, 3, 456) 형태의 Ren'Py 버전 튜플입니다.
major,minor,patch,commit의 네 필드를 가진 namedtuple입니다.
- renpy.version_name
"Example Version." 형태의 사람이 읽기 쉬운 버전 이름입니다.
- renpy.license
게임의 정보 스크린에 포함해야 할 라이선스 문구 문자열입니다.
플랫폼 감지
Ren'Py에는 실행 중인 플랫폼에 따라 설정되는 변수가 여러 개 있습니다.
- renpy.windows
Windows에서 실행 중이면 참인 값입니다.
- renpy.macintosh
macOS에서 실행 중이면 참인 값입니다.
- renpy.linux
Linux나 다른 POSIX 계열 운영체제에서 실행 중이면 참인 값입니다.
- renpy.android
Android에서 실행 중이면 참인 값입니다.
- renpy.ios
iOS에서 실행 중이면 참인 값입니다.
- renpy.emscripten
브라우저에서 실행 중이면 참인 값입니다. 구체적으로 브라우저와 상호작용하는 emscripten 모듈이 값입니다.
renpy.emscripten.run_script()와 관련 함수를 참고하세요.
- renpy.mobile
Android, iOS 또는 브라우저에서 실행 중이면 참인 값입니다.
이 값들은 에뮬레이터가 아니라 실제 기기에서 실행할 때만 설정됩니다. 주로 플랫폼별 Python 코드를 위한 것입니다. 화면 배치에는 스크린 변형을 사용하세요.
메모리 프로파일링
- renpy.diff_memory(update=True, skip_constants=False)
Ren'Py와 게임의 객체, 서피스, 텍스처 메모리 사용량을 분석합니다. 마지막으로 update를 참으로 호출한 이후의 메모리 사용량 차이를 memory.txt와 표준 출력에 기록합니다.
메모리에 접근할 수 있는 스토어와 Ren'Py 구현 내부의 이름별로 사용량을 집계합니다. 여러 이름에서 접근할 수 있는 객체는 가장 직접적으로 접근할 수 있는 이름에 할당합니다.
- skip_constants
True이면 시작 이후 변경하지 않도록 설계된 Ren'Py의 큰 컨테이너를 검사하지 않습니다.
Ren'Py가 사용하는 메모리를 모두 검사해야 하므로 오래 걸릴 수 있습니다.
- renpy.profile_memory(fraction=1.0, minimum=0, skip_constants=False)
Ren'Py와 게임의 객체, 서피스, 텍스처 메모리 사용량을 분석합니다. 메모리 사용 내역을 memory.txt와 표준 출력에 기록합니다.
메모리에 접근할 수 있는 스토어와 Ren'Py 구현 내부의 이름별로 사용량을 집계합니다. 여러 이름에서 접근할 수 있는 객체는 가장 직접적으로 접근할 수 있는 이름에 할당합니다.
- fraction
표시할 전체 메모리 사용량의 비율입니다. 1.0이면 전체를, .9이면 상위 90%를 표시합니다.
- minimum
한 이름의 집계 메모리가 minimum바이트보다 작으면 출력하지 않습니다.
- skip_constants
True이면 시작 이후 변경하지 않도록 설계된 Ren'Py의 큰 컨테이너를 검사하지 않습니다.
Ren'Py가 사용하는 메모리를 모두 검사해야 하므로 오래 걸릴 수 있습니다.
- renpy.profile_rollback()
롤백 시스템이 사용하는 메모리를 분석합니다. 사용량을 memory.txt와 표준 출력에 기록합니다. 여러 스토어 변수와 롤백 시스템 내부 기능이 사용하는 롤백 메모리를 집계하려고 시도합니다.
renpy.random
Python 난수 생성 인터페이스를 구현하는 난수 생성기입니다. 제공하는 여러 메서드로 난수를 생성할 수 있습니다. 전체 목록은 Python 문서를 참고하세요. 특히 유용한 메서드는 다음과 같습니다.
renpy.random.random()
(0.0, 1.0) 범위의 다음 무작위 부동소수점 숫자를 반환합니다.
renpy.random.randint(a, b)
a <= N <= b를 만족하는 무작위 정수를 반환합니다.
renpy.random.choice(seq)
비어 있지 않은 시퀀스 seq에서 무작위 요소를 반환합니다.
renpy.random.shuffle(seq)
시퀀스 seq의 요소를 제자리에서 섞습니다. 리스트를 반환하지 않고 기존 리스트를 변경합니다.
Python 표준 난수 생성기와 달리 롤백과 연동하여, 몇 번 롤백해도 같은 숫자를 생성합니다. Python 표준 random 모듈 대신 사용해야 합니다.
# return a random float between 0 and 1
$ randfloat = renpy.random.random()
# return a random integer between 1 and 20
$ d20roll = renpy.random.randint(1, 20)
# return a random element from a list
$ randfruit = renpy.random.choice(['apple', 'orange', 'plum'])
renpy.random.Random(seed=None)
주 난수 생성기와 독립된 새 난수 생성기 객체를 반환합니다. 값을 지정하면 그 값을 시드로 사용합니다.
SDL
renpy.get_sdl_dll()로 SDL2 DLL에 접근하여 SDL2 함수를 직접 사용할 수 있습니다. 다만 Python ctypes 모듈에 관한 지식이 필요한 경우가 많습니다.
Ren'Py에 포함된 SDL2의 버전이나 컴파일에 포함된 기능은 보장하지 않습니다. Ren'Py 자체는 실행 가능한 플랫폼에서도 이 함수들은 실패할 수 있습니다. 진행하기 전에 None인지 확인해야 합니다.
다음 예제는 SDL2에서 창의 위치를 가져옵니다.
init python:
import ctypes
def get_window_position():
"""Retrieves the position of the window from SDL2.
Returns the (x, y) of the upper left corner of the window, or
(0, 0) if it's not known.
"""
sdl = renpy.get_sdl_dll()
if sdl is None:
return (0, 0)
win = renpy.get_sdl_window_pointer()
if win is None:
return (0, 0)
x = ctypes.c_int()
y = ctypes.c_int()
result = sdl.SDL_GetWindowPosition(win, ctypes.byref(x), ctypes.byref(y))
return result
- renpy.get_sdl_dll()
Ren'Py가 사용하는 SDL2 인스턴스를 담은 라이브러리를 참조하는 ctypes.cdll 객체를 반환합니다. 실패하면 None을 반환합니다.
- renpy.get_sdl_window_pointer()
- 반환 형식:
ctypes.c_void_p | None
주 창의 포인터를 반환합니다. 주 창이 표시되지 않거나 다른 문제가 발생하면 None을 반환합니다.
기타
- renpy.add_python_directory(path: str)
Python 모듈과 패키지의 검색 경로 목록에 path를 추가합니다. game 디렉터리에 대한 상대 경로 문자열이어야 합니다. import 문 전에 호출해야 합니다.
- renpy.add_to_all_stores(name, value)
모든 제작자 정의 네임스페이스에 name 이름으로 value를 추가합니다. 해당 네임스페이스에 이름이 이미 있으면 아무 작업도 하지 않습니다.
init 블록 안에서만 실행할 수 있습니다. 게임 시작 후 실행하면 오류입니다.
- renpy.can_fullscreen()
현재 플랫폼이 전체 화면 모드를 지원하면 True, 그렇지 않으면 False를 반환합니다.
- renpy.capture_focus(name='default')
현재 포커스된 디스플레이어블이 있으면 사각형 경계 영역을 캡처하여 name으로 저장합니다. 없으면 name으로 저장된 포커스를 제거합니다.
캡처한 포커스는 게임 저장 시 저장하지 않습니다.
- name
문자열이어야 합니다. "tooltip"은 특별한 이름으로, 툴팁이 있는 디스플레이어블이 포커스를 얻으면 자동으로 캡처합니다.
- renpy.choice_for_skipping()
곧 선택지가 나온다는 것을 Ren'Py에 알립니다. 현재 두 가지 효과가 있습니다.
건너뛰기 중이고 선택지 이후 건너뛰기(Skip After Choices) 환경설정이 중단하도록 되어 있으면 건너뛰기를 끝냅니다.
자동 저장을 시작합니다.
- renpy.clear_capture_focus(name='default')
name의 캡처된 포커스를 지웁니다. name이 None이면 모두 지웁니다.
- renpy.clear_game_runtime()
게임 실행 시간 카운터를 초기화합니다.
- renpy.clear_retain(layer='screens', prefix='_retain')
유지된 모든 스크린을 지웁니다.
- renpy.confirm(message, **kwargs)
지정한 메시지로 예/아니요 확인 스크린을 표시합니다. 플레이어가 예 또는 아니요를 누르면 닫습니다.
플레이어가 예를 누르면 True, 아니요를 누르면 False를 반환합니다.
- message
표시할 메시지입니다.
_로 시작하지 않는 추가 키워드 인수는 스크린에 전달합니다.
비슷한 액션은
Confirm()을 참고하세요.
- renpy.count_dialogue_blocks()
게임 원래 언어의 대사 블록 수를 반환합니다.
- renpy.count_newly_seen_dialogue_blocks()
이번 실행에서 사용자가 처음 본 대사 블록 수를 반환합니다.
- renpy.count_seen_dialogue_blocks()
현재 게임의 어느 플레이에서든 사용자가 본 대사 블록 수를 반환합니다.
- renpy.display_notify(message)
renpy.notify()의 기본 구현입니다.
- renpy.focus_coordinates()
현재 포커스된 디스플레이어블의 좌표를 찾으려고 시도합니다. 찾으면 (x, y, w, h) 튜플을, 찾지 못하면 (None, None, None, None)을 반환합니다.
- renpy.force_autosave(take_screenshot=False, block=False)
백그라운드 자동 저장을 강제로 실행합니다.
- take_screenshot
True이면 새 스크린샷을 찍습니다. False이면 기존 스크린샷을 사용합니다.
- block
True이면 자동 저장이 끝날 때까지 기다립니다.
- renpy.free_memory()
메모리를 일부 확보하려고 시도합니다. renpygame 기반 미니게임을 실행하기 전에 유용합니다.
- renpy.full_restart(transition=False, *, save=False)
Ren'Py를 다시 시작하여 사용자를 메인 메뉴로 돌려보냅니다.
- transition
지정하면 실행할 화면 전환입니다. None이면 전환하지 않습니다. False이면
config.end_game_transition을 사용합니다.- save
참이면 Ren'Py를 다시 시작하여 메인 메뉴로 돌아가기 전에
_quit_slot에 게임을 저장합니다.
- renpy.get_game_runtime()
게임 실행 시간 카운터를 반환합니다.
게임 실행 시간 카운터는 최상위 컨텍스트에서 사용자 입력을 기다린 초를 셉니다. 메인 메뉴나 게임 메뉴에서 보낸 시간은 세지 않습니다.
- renpy.get_image_load_log(age=None)
이미지 불러오기 활동의 기록을 생성하는 제너레이터입니다. 최근 100번의 이미지 불러오기에 대해 다음을 반환합니다.
이미지를 불러온 시간. 에포크 이후의 초입니다.
불러온 이미지의 파일명.
미리 불러왔으면 참, 불러오는 동안 게임이 멈췄으면 거짓인 불리언.
최신 항목부터 오래된 항목 순입니다.
- age
None이 아니면 최근 age초 안에 불러온 이미지만 포함합니다.
이미지 불러오기 기록은 config.developer = True일 때만 유지합니다.
현재 menu 문에 전달한 인수 튜플과 키워드 인수 딕셔너리를 담은 튜플을 반환합니다.
- renpy.get_mouse_name(interaction=False)
표시해야 할 마우스의 이름을 반환합니다.
- interaction
참이면 진행 중인 상호작용 종류에 따른 마우스 이름을 얻습니다.
- renpy.get_mouse_names()
표시 가능한 마우스 이름 리스트를 우선순위 순서로 반환합니다.
- renpy.get_mouse_pos()
마우스 포인터 또는 현재 터치 위치를 나타내는 (x, y) 튜플을 반환합니다. 마우스를 지원하지 않고 현재 터치도 하지 않은 기기에서는 x와 y가 숫자이지만 의미는 없습니다.
- renpy.get_on_battery()
내장 배터리로 작동하는 기기에서 실행 중이면 True, 외부 전원으로 충전 중이면 False를 반환합니다.
- renpy.get_ongoing_transition(layer=None)
현재 진행 중인 화면 전환을 반환합니다.
- layer
None이면 최상위 전환을 반환합니다. 그 밖에는 레이어 이름 문자열이어야 하며, 해당 레이어의 전환을 반환합니다.
- renpy.get_physical_size()
실제 창의 크기를 반환합니다.
- renpy.get_refresh_rate(precision=5)
현재 화면의 새로 고침 빈도를 초당 프레임 수의 실수로 반환합니다.
- precision
Ren'Py가 얻는 원시 데이터는 초당 프레임 수를 정수로 내림한 값입니다. 따라서 초당 59.95프레임으로 작동하는 모니터는 59 fps로 보고됩니다. precision은 이 측정값의 정밀도를 더 낮춰, precision의 배수만 유효한 값이 되게 합니다.
모니터 프레임 속도는 보통 25, 30, 60, 75, 120처럼 5의 배수이므로 정확도가 높아질 가능성이 있습니다. precision을 1로 설정하면 이 처리를 비활성화합니다.
- renpy.get_renderer_info() renpy.display.core.RendererInfo
현재 Ren'Py가 사용하는 렌더러의 정보 딕셔너리를 반환합니다. 정의된 키는 다음과 같습니다.
"renderer"사용 중인 렌더러 이름 문자열.
"resizable"창 크기를 조절할 수 있는 경우에만 True.
"additive"렌더러가 가산 혼합을 지원하는 경우에만 True.
"model"모델 기반 렌더링을 지원하면 키가 존재하며 참입니다.
GL2 렌더러에서는 다음 키도 정의됩니다.
"gpu_vendor"GPU 제조사 문자열.
"gpu_name"GPU 이름 문자열.
"gpu_driver_version"드라이버 버전 문자열.
렌더러별로 다른 키가 있을 수도 있습니다.
딕셔너리를 변경 불가능한 것으로 취급해야 합니다.
화면 표시가 시작된 뒤, 즉 첫 상호작용 이후에만 호출해야 합니다.
- renpy.get_say_attributes()
현재 say 문에 연결된 속성을 얻습니다. 연결된 속성이 없으면 None입니다.
say 문을 실행하거나 예측하는 동안에만 유효합니다.
- renpy.get_skipping()
일반 건너뛰기 중이면 "slow", 빠른 건너뛰기 중이면 "fast", 건너뛰기 중이 아니면 None을 반환합니다.
- renpy.get_statement_name()
현재 문의 이름을 "say", "say-nvl", "window hide" 같은 문자열로 얻습니다.
config.statement_callbacks에서 사용하는 문 이름과 같습니다.
- renpy.get_transition(layer=None)
layer의 화면 전환을 얻습니다. layer가 None이면 전체 장면의 전환입니다. 다음 상호작용에서 실행하도록 예약된 전환을 반환하며, 없으면 None입니다.
진행 중인 전환은
renpy.get_ongoing_transition()으로 얻습니다.
- renpy.iconify()
게임 창을 최소화합니다.
- renpy.include_module(name)
renpy.load_module()과 비슷하지만 모듈을 즉시 불러오는 대신 현재 AST 노드 뒤의 초기화 큐에 넣습니다.모듈에는 이를 포함하는 블록보다 우선순위가 낮은 init 블록이 있어서는 안 됩니다. 예를 들어 init 10 블록을 포함하는 모듈은 늦어도 init 10에서 불러와야 합니다.
모듈은 init 블록 안에서만 불러올 수 있습니다.
- renpy.invoke_in_main_thread(fn, *args, **kwargs)
주 스레드에서 지정한 함수에 지정한 인수를 전달하여 실행합니다. 함수는 이벤트 처리기와 비슷한 상호작용 컨텍스트에서 실행됩니다.
renpy.invoke_in_thread()로 만든 별도 스레드에서 호출하는 용도입니다.하나의 스레드에서 여러 함수의 호출을 예약하면 예약한 순서대로 실행됨을 보장합니다.
def ran_in_a_thread(): renpy.invoke_in_main_thread(a) renpy.invoke_in_main_thread(b)
이 예제에서는
a가 반환한 뒤b가 호출됨을 보장합니다. 서로 다른 스레드에서 예약한 호출의 순서는 보장하지 않습니다.초기화 단계에서는 호출할 수 없습니다.
- renpy.invoke_in_thread(fn, *args, **kwargs)
지정한 위치 및 키워드 인수로 백그라운드 스레드에서 fn을 호출합니다. 스레드가 반환하면 상호작용을 다시 시작합니다.
Ren'Py 종료 시 자동으로 멈추는 데몬 스레드를 만듭니다.
이 스레드에서 사용할 수 있는 Ren'Py API는 매우 제한적입니다. 스토어 변수 변경과 다음 함수 호출은 허용됩니다.
그 밖의 Ren'Py API 대부분은 주 스레드에서 호출해야 합니다.
웹 플랫폼에서는 오류 없이 즉시 반환할 뿐 작동하지 않습니다.
- renpy.is_in_test()
현재 테스트 실행 중이면 True를 반환합니다. 초기화 시점에는 항상 False를 반환합니다.
- renpy.is_init_phase()
현재 초기화 코드를 실행 중이면 True, 그렇지 않으면 False를 반환합니다.
- renpy.is_mouse_visible()
마우스 커서가 보이면 True, 그렇지 않으면 False를 반환합니다.
- renpy.is_seen(ever=True)
플레이어가 현재 대사 줄을 본 적이 있으면 참을 반환합니다.
ever가 참이면 과거에 한 번이라도 본 적이 있는지 확인합니다. 거짓이면 현재 플레이에서 보았는지 확인합니다.
- renpy.is_seen_allowed()
리플레이 중이며
config.no_replay_seen을 True로 설정해 읽음 이벤트를 허용하지 않은 경우에만 False를 반환합니다.
- renpy.is_skipping()
일반 또는 빠른 건너뛰기 중이면 True, 그렇지 않으면 False를 반환합니다.
- renpy.is_start_interact()
현재 상호작용에서 restart_interaction이 호출되지 않았으면 True를 반환합니다. 처음 시작한 상호작용인지 다시 시작한 것인지 구분하는 데 사용할 수 있습니다.
- renpy.language_tailor(chars, cls)
유니코드 문자의 줄바꿈 클래스를 재정의할 수 있습니다. 예를 들어 ID로 설정하면 표의문자로 취급하여 앞뒤에서 줄을 바꿀 수 있습니다.
- chars
조정할 문자들을 담은 문자열입니다.
- cls
문자 클래스 문자열입니다. UAX #14: Unicode Line Breaking Algorithm의 표 1에 정의된 클래스 중 하나여야 합니다.
- renpy.last_say()
마지막 say 문의 정보를 담은 객체를 반환합니다.
say 문 실행 중에도 호출할 수 있습니다. 일반 Character를 사용하는 경우에는 이전 문이 아니라 현재 say 문의 정보를 반환합니다.
- who
화자입니다. 보통
Character()객체이지만 필수는 아닙니다.- what
대사 텍스트 문자열입니다. 게임 시작 시처럼 대사가 아직 표시되지 않았으면 None일 수 있습니다.
- args
마지막 say 문에 전달한 인수 튜플입니다.
- kwargs
마지막 say 문에 전달한 키워드 인수 딕셔너리입니다.
경고
비슷한 다른 함수와 마찬가지로 반환 객체는 호출 직후 잠깐 사용하는 용도입니다. 저장 데이터에 넣거나 롤백에 참여시키는 것은 권장하지 않습니다.
- renpy.load_module(name)
name이라는 Ren'Py 모듈을 불러옵니다. Ren'Py 모듈은 name.rpym 또는 name.rpymc 파일에 담긴 스크립트이며 일반 스토어 네임스페이스에 불러옵니다. .rpym 파일이 존재하고 대응하는 .rpymc보다 최신이면 이를 불러오고 새 .rpymc 파일을 만듭니다.
함수가 반환하기 전에 모듈의 모든 init 블록과 다른 초기화 코드를 실행합니다. 모듈 이름을 찾을 수 없거나 모호하면 오류를 발생시킵니다.
모듈은 init 블록 안에서만 불러올 수 있습니다.
- renpy.load_string(s, filename='<string>')
s를 호출 가능한 Ren'Py 스크립트로 불러옵니다.
s의 첫 번째 문 이름을 반환합니다.
filename은 문자열 안의 문이 속한 것으로 표시할 파일명입니다.
- renpy.maximum_framerate(t)
t초 동안 최대 프레임 속도로 화면을 그리게 합니다. t가 None이면 최대 프레임 속도 요청을 취소합니다.
- renpy.munge(name, filename=None)
__로 시작해야 하는 name에 이름 맹글링을 적용합니다.
- filename
이름을 맹글링할 대상 파일명입니다. None이면 이 함수를 호출한 파일명에 맞춰 맹글링합니다.
- renpy.not_infinite_loop(delay)
무한 반복 감지 타이머를 delay초로 초기화합니다.
- renpy.notify(message)
notify 스크린으로 message를 표시합니다. 기본적으로 페이드 인으로 나타나 2초간 표시된 뒤 페이드 아웃으로 사라집니다.
스크린샷이나 빠른 저장처럼 별도의 피드백이 없는 동작에 유용합니다.
한 번에 알림 하나만 표시합니다. 두 번째 알림을 표시하면 첫 번째를 대체합니다.
이 함수는
config.notify를 호출할 뿐이므로, 해당 변수에 새 함수를 대입하여 구현을 교체할 수 있습니다.
- renpy.open_url(url)
가능하면 시스템 웹 브라우저에서 URL을 엽니다.
- renpy.predicting()
현재 예측 단계이면 True를 반환합니다.
- renpy.queue_event(name, up=False, **kwargs)
지정한 이름의 이벤트를 큐에 넣습니다. Name은
config.keymap의 이벤트 이름 또는 그런 이름의 리스트여야 합니다.- up
키를 누를 때처럼 이벤트가 시작하면 False, 키를 놓을 때처럼 끝나면 True여야 합니다.
이 함수를 호출한 시점에 이벤트를 큐에 넣습니다. 다른 이벤트로 교체하는 데 사용하면 이벤트 순서가 바뀌므로 적합하지 않습니다. 대신
config.keymap을 사용하세요.이 메서드는 스레드에 안전합니다.
- renpy.quit(relaunch=False, status=0, save=False)
Ren'Py를 완전히 종료합니다.
- relaunch
True이면 종료하기 전에 Ren'Py를 하나 더 실행합니다.
- status
운영체제에 반환할 상태 코드입니다. 일반적으로 0은 성공, 양의 정수는 실패입니다.
- save
True이면 종료 전에
_quit_slot에 게임을 저장합니다.
- renpy.quit_event()
플레이어가 창 테두리의 닫기 버튼을 클릭한 것처럼 종료 이벤트를 발생시킵니다.
- renpy.reset_physical_size()
실제 창 크기를
renpy.config.physical_height와renpy.config.physical_width로 지정한 크기로 설정하려고 시도합니다. 설정하지 않았으면renpy.config.screen_width와renpy.config.screen_height의 크기를 사용합니다.
- renpy.restart_interaction()
현재 상호작용을 다시 시작합니다. 장면에 추가된 이미지 표시, 스크린 재평가, 예약된 화면 전환 시작 등의 작업을 수행합니다.
액션 등 상호작용 내부에서 호출할 때만 작동합니다. 상호작용 밖에서는 효과가 없습니다.
- renpy.scry()
현재 문의 scry 객체를 반환합니다. 실행 중인 문이 없으면 None을 반환합니다.
scry 객체는 현재 문 이후 반드시 성립할 내용을 Ren'Py에 알려 줍니다. 현재 다음 필드가 있습니다.
- nvl_clear
다음 상호작용 전에
nvl clear문이 실행되면 True입니다.- say
다음 상호작용 전에
say문이 실행되면 True입니다.- menu_with_caption
다음 상호작용 전에 제목이 있는
menu문이 실행되면 True입니다.- who
다음 상호작용 전에
say또는menu-with-caption문이 실행된다면 해당 문에서 사용할 캐릭터 객체입니다.
scry 객체의 next() 메서드는 다음에 실행할 문이 하나뿐이면 그 문의 scry 객체를 반환합니다. 그렇지 않으면 None을 반환합니다.
경고
비슷한 다른 함수와 마찬가지로 반환 객체는 호출 직후 잠깐 사용하는 용도입니다. 저장 데이터에 넣거나 롤백에 참여시키는 것은 권장하지 않습니다.
- renpy.set_mouse_pos(x, y, duration=0)
마우스 포인터를 x, y 인수의 위치로 이동합니다. 기기에 마우스 포인터가 없거나 Ren'Py가 이동할 수 없으면 아무 일도 하지 않습니다.
Wayland를 사용하는 Linux, Android, iOS, 웹 플랫폼에서는 작동하지 않을 가능성이 높습니다.
- duration
이동에 걸릴 초 단위 시간입니다. 이 시간 동안 마우스가 반응하지 않을 수 있습니다.
- renpy.set_physical_size(size)
실제 창 크기를 size로 설정하려고 시도합니다. 부수 효과로 전체 화면 모드가 해제됩니다.
- renpy.shown_window()
창이 표시되었음을 알리기 위해 호출합니다. "window show" 문은 상호작용 중 이 함수가 호출되지 않았으면 빈 창을 표시합니다.
- renpy.split_properties(properties: dict[str, Any], *prefixes: str) list[dict[str, Any]]
properties를 prefix별 딕셔너리로 나눕니다. 각 키를 접두사와 순서대로 비교합니다. 일치하면 키에서 접두사를 제거하고 대응하는 딕셔너리에 새 키와 값을 넣습니다.
일치하는 접두사가 없으면 예외가 발생합니다. 마지막 접두사로 빈 문자열 ""을 지정하면 나머지를 모두 담는 딕셔너리를 만들 수 있습니다.
예를 들어 다음은 text로 시작하는 속성과 그렇지 않은 속성을 나눕니다.
text_properties, button_properties = renpy.split_properties(properties, "text_", "")
- renpy.stop_skipping()
건너뛰기 중이면 중지합니다.
- renpy.transition(trans, layer=None, always=False)
다음 상호작용에 사용할 화면 전환을 설정합니다.
- layer
전환을 적용할 레이어입니다. None이면 전체 장면에 적용합니다.
- always
거짓이면 화면 전환 환경설정을 따릅니다. 참이면 항상 전환을 실행합니다.
- renpy.vibrate(duration)
duration초 동안 기기를 진동시킵니다. 현재 Android에서만 지원합니다.