키 매핑 설정 (keyboard_set_map)
게임을 만들 때, 한 키가 다른 키와 동일한 기능을 하도록 설정하고 싶을 때가 있습니다. 예를 들어, 많은 사람들이 이동을 위해 WASD 키를 사용하지만, 화살표 키를 사용하는 사람들도 많습니다. 이럴 때 어떻게 해야 할까요? 두 번 코딩할 수도 있지만, 이는 복잡하고 불필요합니다. 다행히도 이 함수는 한 키를 다른 키에 "매핑"할 수 있게 해줍니다. 이렇게 하면 두 키 중 어느 하나의 입력도 동일하게 해석됩니다.
사용 방법
- 매핑할 키를 선택합니다 (key2 - 이 키에 대해 코드를 작성합니다).
- 매핑될 키를 선택합니다 (key1).
- 이후 두 키 중 어느 하나를 눌러도 GameMaker에서는 key2에서 입력된 것으로 해석됩니다.
이 함수를 사용하여 사용자가 게임에서 사용할 키를 정의할 수 있는 시스템을 설계할 수도 있습니다. 사용자가 입력한 키를 게임에 코딩된 키에 매핑하면 됩니다.
함수 설명
- key1: 매핑될 키 (Virtual Key Constant, vk_*)
- key2: 매핑할 키 (Virtual Key Constant, vk_*)
주의 사항
- 매핑된 키(key1)는 더 이상 실제 키 심볼로 사용할 수 없습니다. 예를 들어, 위쪽 화살표를 "W"에 매핑하면 "W" 키를 눌러도 "W"로 인식되지 않고 항상 위쪽 화살표로 인식됩니다.
- 이를 되돌리려면 키를 자기 자신에 매핑하거나
keyboard_unset_map
함수를 사용하면 됩니다.
문법
keyboard_set_map(key1, key2);
예제
keyboard_set_map(ord("A"), vk_left);
위의 예제 코드는 "A" 키를 왼쪽 화살표 키에 매핑합니다. 즉, 플레이어는 "A" 키 또는 왼쪽 화살표 키를 사용할 수 있으며, 왼쪽 화살표에 대해 작성된 모든 코드는 "A" 키가 사용될 때도 반응합니다.
활용 예제
- WASD와 화살표 키 매핑
gml keyboard_set_map(ord("W"), vk_up); keyboard_set_map(ord("A"), vk_left); keyboard_set_map(ord("S"), vk_down); keyboard_set_map(ord("D"), vk_right);
- 사용자 정의 키 매핑
gml var user_key = ord("X"); // 사용자가 선택한 키 keyboard_set_map(user_key, vk_space); // 스페이스바를 사용자 키에 매핑
- 키 매핑 해제
gml keyboard_unset_map(vk_left); // 왼쪽 화살표 키 매핑 해제
- 복수 키 매핑
gml keyboard_set_map(ord("1"), vk_f1); keyboard_set_map(ord("2"), vk_f2);
- 키 매핑 상태 확인
gml if (keyboard_check(vk_left)) { // 왼쪽 화살표 또는 "A" 키가 눌렸을 때의 동작 }