config.keymap
변수에는 이벤트 이름과 해당 이벤트를 발생시키는 키 심볼이 대응된 구조식이 포함되어 있습니다.
주석
이미 많은 플레이어들이 렌파이의 기본 단축키가 무엇인지 알고 있기 때문에, 렌파이로 만들어진 게임마다 동일하게 작동한다고 생각합니다.
렌파이에서 키 심볼은 마우스 버튼, 조이패드 버튼, 키보드 키를 대표하는 문자열 입니다.
마우스 버튼은 'mouseup_#' 또는 'mousedown_#' 과 같은 형태이며 여기에서 #은 버튼의 숫자입니다. 렌파이는 마우스에 버튼이 다섯 개 있다고 가정합니다. 1, 2, 3은 각각 왼쪽, 가운데, 오른쪽 버튼을 뜻하고, 4, 5는 마우스휠을 올리거나 내릴 때를 나타냅니다. 예를 들어, "mousedown_1" 은 왼쪽 버튼을 누르는 것이고, "mouseup_1" 은 왼쪽 마우스 버튼을 놓는 것이고, "mousedown_4"는 마우스 휠을 위로 굴리는 것입니다.
키보드 키심볼에는 두 가지 종류가 있습니다. 첫 번째는 어떤 키를 눌렀을 때 만들어지는 글자가 적힌 문자열입니다. 이런 키 심볼은 알파벳 키나 숫자를 단축키로 지정할 때 유용할 것입니다. 예로 "a", "A", "7" 등이 있습니다.
키보드의 키 심볼로 키를 상징하는 이름을 입력할 수도 있습니다. 이 때에는 pygame.constants 에서 따온 "K_" 가 키 이름 앞에 붙습니다. 이런 키 심볼은 "K_BACKSPACE", "K_RETURN", "K_TAB" 과 같은 형태입니다. 전체 키 심볼은 이 곳 에서 확인할 수 있습니다.
키보드 키 심볼 앞에는 다음과 같은 접두사를 언더바(_)와 함께 붙여 나타낼 수 있습니다.:
예를 들어 "shift_alt_K_F5" 라는 키 심볼은 시프트 키와 알트 키가 눌린 상태에서 F5 키를 누르고 있을 때 연결될 것입니다.
단축 키를 바꾸기 위해서는 config.keymap
변수에 저장된 리스트 가운데 적절한
리스트를 변경하세요. 아래에 적힌 코드는 대사를 넘기는 키 중에서 스페이스 키를 제거하고
't' 키를 추가합니다.
init:
$ config.keymap['dismiss'].append('t')
$ config.keymap['dismiss'].remove('K_SPACE')
기본 단축키 구조는 renpy/common/00keymap.rpy 파일에 지정되어 있으며, 6.99 버전에서는 다음과 같습니다.:
config.keymap = dict(
# 명시적으로 비활성화 하지 않는 이상 단축키는
# 언제나 동작한다.
rollback = [ 'K_PAGEUP', 'repeat_K_PAGEUP', 'K_AC_BACK', 'mousedown_4'],
screenshot = [ 's' ],
toggle_fullscreen = [ 'f', 'alt_K_RETURN', 'alt_K_KP_ENTER', 'K_F11' ],
game_menu = [ 'K_ESCAPE', 'K_MENU', 'mouseup_3'],
hide_windows = [ 'mouseup_2', 'h'],
launch_editor = [ 'E' ],
dump_styles = [ ],
reload_game = [ 'R' ],
inspector = [ 'I' ],
full_inspector = [ 'alt_I' ],
developer = [ 'D' ],
quit = [ ],
iconify = [ ],
help = [ 'K_F1', 'meta_shift_/' ],
choose_renderer = [ 'G' ],
progress_screen = [ 'alt_P' ],
# 접근성
self_voicing = [ 'v', 'V' ],
clipboard_voicing = [ 'C' ],
# Say 관련.
rollforward = [ 'mousedown_5', 'K_PAGEDOWN', 'repeat_K_PAGEDOWN' ],
dismiss = [ 'mouseup_1', 'K_RETURN', 'K_SPACE', 'K_KP_ENTER'],
# Pause 관련.
dismiss_hard_pause = [ ],
# Focus 관련.
focus_left = [ 'K_LEFT', 'repeat_K_LEFT'],
focus_right = [ 'K_RIGHT', 'repeat_K_RIGHT'],
focus_up = [ 'K_UP', 'repeat_K_UP'],
focus_down = [ 'K_DOWN', 'repeat_K_DOWN'],
# Button 관련.
button_ignore = [ 'mousedown_1' ],
button_select = [ 'mouseup_1', 'K_RETURN', 'K_KP_ENTER'],
button_alternate = [ 'mouseup_3' ],
button_alternate_ignore = [ 'mousedown_3' ],
# Input 관련.
input_backspace = [ 'K_BACKSPACE', 'repeat_K_BACKSPACE' ],
input_enter = [ 'K_RETURN', 'K_KP_ENTER' ],
input_left = [ 'K_LEFT', 'repeat_K_LEFT' ],
input_right = [ 'K_RIGHT', 'repeat_K_RIGHT' ],
input_delete = [ 'K_DELETE', 'repeat_K_DELETE' ],
# Viewport 관련.
viewport_up = [ 'mousedown_4' ],
viewport_down = [ 'mousedown_5' ],
viewport_drag_start = [ 'mousedown_1' ],
viewport_drag_end = [ 'mouseup_1' ],
# 스킵을 제어하는 키들.
skip = [ 'K_LCTRL', 'K_RCTRL'],
toggle_skip = [ 'K_TAB'],
fast_skip = [ '>' ],
# Bar 관련.
bar_activate = [ 'mousedown_1', 'K_RETURN', 'K_KP_ENTER'],
bar_deactivate = [ 'mouseup_1', 'K_RETURN', 'K_KP_ENTER'],
bar_left = [ 'K_LEFT', 'repeat_K_LEFT'],
bar_right = [ 'K_RIGHT', 'repeat_K_RIGHT'],
bar_up = [ 'K_UP', 'repeat_K_UP'],
bar_down = [ 'K_DOWN', 'repeat_K_DOWN'],
# 세이브 파일을 제거한다.
save_delete = [ 'K_DELETE' ],
# Drag 관련.
drag_activate = [ 'mousedown_1' ],
drag_deactivate = [ 'mouseup_1' ],
# 디버그 콘솔.
console = [ 'shift_O' ],
console_older = [ 'K_UP', 'repeat_K_UP' ],
console_newer = [ 'K_DOWN', 'repeat_K_DOWN'],
# 사용하지 않음. (이전 버전과의 호환성을 위해 남겨둠).
toggle_music = [ 'm' ],
# Profile 명령.
profile_once = [ 'K_F8' ],
memory_profile = [ 'K_F7' ],
)
게임패드 단축키는 조금 다른 방식으로 작동합니다. 게임패드는 게임패드 이벤트를 렌파이 이벤트 이름에 하나 이상 매핑하는 것으로 작동합니다. 기본 게임패드 단축키 세트는 다음과 같습니다.:
config.pad_bindings = {
"pad_leftshoulder_press" : [ "rollback", ],
"pad_lefttrigger_pos" : [ "rollback", ],
"pad_back_press" : [ "rollback", ],
"pad_guide_press" : [ "game_menu", ],
"pad_start_press" : [ "game_menu", ],
"pad_y_press" : [ "hide_windows", ],
"pad_rightshoulder_press" : [ "rollforward", ],
"pad_righttrigger_pos" : [ "dismiss", "button_select" ],
"pad_a_press" : [ "dismiss", "button_select" ],
"pad_b_press" : [ "button_alternate" ],
"pad_dpleft_press" : [ "focus_left", "bar_left" ],
"pad_leftx_neg" : [ "focus_left", "bar_left" ],
"pad_rightx_neg" : [ "focus_left", "bar_left" ],
"pad_dpright_press" : [ "focus_right", "bar_right" ],
"pad_leftx_pos" : [ "focus_right", "bar_right" ],
"pad_rightx_pos" : [ "focus_right", "bar_right" ],
"pad_dpup_press" : [ "focus_up", "bar_up" ],
"pad_lefty_neg" : [ "focus_up", "bar_up" ],
"pad_righty_neg" : [ "focus_up", "bar_up" ],
"pad_dpdown_press" : [ "focus_down", "bar_down" ],
"pad_lefty_pos" : [ "focus_down", "bar_down" ],
"pad_righty_pos" : [ "focus_down", "bar_down" ],
}