gamepad_get_guid 함수 설명
gamepad_get_guid
함수는 특정 슬롯 인덱스에 연결된 게임패드의 GUID를 가져오는 데 사용됩니다. 이 함수는 0부터 11까지의 게임패드 슬롯을 입력받아, 다음과 같은 문자열을 반환합니다:
- "none": GUID가 없거나 게임패드가 연결되지 않은 경우
- "device index out of range": 게임패드 슬롯 인덱스가 범위를 벗어난 경우
- GUID 문자열: 슬롯에 게임패드가 할당되어 있고 GUID를 가져올 수 있는 경우, 예를 들어 "050000005e040000fd020000ffff3f00"
이 함수는 일반적으로 gamepad_get_description()
함수와 함께 사용되어 Windows, Android 및 macOS에서 컨트롤러 리매핑에 필요한 SDL 문자열의 일부를 생성하는 데 사용됩니다.
플랫폼별 주의사항
플랫폼 | 주의사항 |
---|---|
GX.games | 이 플랫폼에서는 비-DirectInput 장치에 대해 항상 "none"을 반환합니다. |
문법
gamepad_get_guid(index);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
index | 정수 | 확인할 게임패드 "슬롯" 인덱스 |
반환값
- GUID 문자열 또는 오류 메시지
예제 코드
var _guid = gamepad_get_guid(global.PadIndex);
var _desc = gamepad_get_description(global.PadIndex);
global.GamepadID = _guid + "," + _desc;
위의 코드는 GUID와 이름 설명 문자열을 가져온 후, 이를 연결하여 최종 문자열을 글로벌 변수에 저장합니다. 이를 통해 나중에 참조할 수 있습니다.
활용 예제
- 게임패드 연결 확인
gml var padIndex = 0; // 첫 번째 슬롯 확인 var guid = gamepad_get_guid(padIndex); if (guid != "none") { show_message("게임패드가 연결되었습니다: " + guid); } else { show_message("게임패드가 연결되지 않았습니다."); }
- 모든 슬롯의 게임패드 GUID 가져오기
gml for (var i = 0; i < 12; i++) { var guid = gamepad_get_guid(i); if (guid != "none") { show_message("슬롯 " + string(i) + ": " + guid); } }
- 게임패드 설명과 GUID 저장
gml var padIndex = global.PadIndex; var guid = gamepad_get_guid(padIndex); var desc = gamepad_get_description(padIndex); if (guid != "none") { global.GamepadID = guid + ", " + desc; }
- 게임패드 슬롯 인덱스 유효성 검사
gml var padIndex = 15; // 잘못된 인덱스 var guid = gamepad_get_guid(padIndex); if (guid == "device index out of range") { show_message("슬롯 인덱스가 범위를 벗어났습니다."); }
이와 같은 예제들을 통해 gamepad_get_guid
함수의 다양한 활용 방법을 이해하고 적용할 수 있습니다.