게임패드 연결 상태 확인하기
이 문서는 GameMaker에서 게임패드의 연결 상태를 확인하는 방법에 대해 설명합니다. gamepad_is_connected
함수는 특정 슬롯에 게임패드가 연결되어 있는지를 확인하여, 연결되어 있으면 true
, 그렇지 않으면 false
를 반환합니다.
게임패드를 연결한 후 GameMaker가 이를 인식하는 데 약간의 지연이 있을 수 있습니다. 특히 블루투스 연결의 경우 더욱 그렇습니다. 일부 플랫폼, 특히 콘솔에서는 게임패드가 연결되거나 선택된 직후에 false
를 반환할 수 있습니다. 따라서 게임패드의 연결 상태를 확인할 때는 AsyncSystemevent
를 사용하는 것이 좋습니다.
문법
gamepad_is_connected(device);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
device | Real | 확인할 게임패드 "슬롯" |
반환값
- Boolean: 게임패드가 연결되어 있으면
true
, 그렇지 않으면false
를 반환합니다.
예제 코드
아래 코드는 gamepads
배열에 저장된 게임패드를 순회하며 연결 상태를 확인하고, 연결된 게임패드에서 입력을 읽는 예제입니다.
var _gamepad_count = array_length(gamepads);
for (var i = 0; i < _gamepad_count; i++) {
var _gamepad = gamepads[i];
if (gamepad_is_connected(_gamepad)) {
// 입력 읽기
}
}
이 코드는 gamepads
배열에 설정된 게임패드가 연결되어 있는지 확인하고, 연결된 경우에만 입력을 읽습니다. 이 예제는 게임패드 이동 예제와 유사합니다.
활용 예제
- 게임 시작 시 게임패드 연결 확인
gml if (gamepad_is_connected(0)) { // 첫 번째 게임패드가 연결되어 있을 때의 처리 }
- 게임패드 연결 상태에 따른 UI 업데이트
gml if (gamepad_is_connected(1)) { // 두 번째 게임패드가 연결되어 있을 때 UI 업데이트 } else { // 연결이 끊겼을 때의 처리 }
- 비동기 이벤트를 사용한 연결 상태 확인
gml if (async_system_event == ev_gamepad_connected) { // 게임패드가 연결되었을 때의 처리 }
- 모든 게임패드의 상태를 주기적으로 확인
gml for (var i = 0; i < array_length(gamepads); i++) { if (gamepad_is_connected(gamepads[i])) { // 연결된 게임패드에 대한 처리 } }
이와 같이 gamepad_is_connected
함수를 활용하여 게임패드의 연결 상태를 확인하고, 다양한 상황에 맞게 처리할 수 있습니다.