Xbox Live 패드 사용자 함수 설명
Xbox 사용자는 사용자 ID에 다양한 패드를 할당할 수 있으며, 각 패드는 "슬롯"을 채웁니다. 이 슬롯은 0부터 번호가 매겨지며, 어떤 패드 인덱스도 담을 수 있습니다. 예를 들어, 슬롯 0은 패드 3에 할당될 수 있고, 슬롯 1은 패드 2에 할당될 수 있습니다. 이 함수는 주어진 슬롯에 할당된 패드를 가져오는 데 사용되며, 사용자가 일정 시간 동안 입력 없이 게임패드를 두면 자동으로 꺼지기 때문에 유용합니다. 이 함수를 사용하여 특정 사용자 ID에 대해 활성 게임패드가 있는지 확인하고, 없다면 게임을 일시 정지하는 등의 조치를 취할 수 있습니다. 패드가 활성 상태라면 인덱스 값이 반환되지만, 그렇지 않으면 함수는 -1을 반환합니다.
슬롯의 패드가 비활성화되면 이후 슬롯이 빈 자리에 "슬라이드" 됩니다. 예를 들어, 슬롯 0, 1, 2에 활성 패드가 할당되어 있고 슬롯 0의 패드가 비활성화되면, 슬롯 1과 2는 각각 슬롯 0과 1이 됩니다. 따라서 슬롯 0에는 항상 활성 패드가 있어야 하며, 모든 패드가 꺼져 있을 경우 -1이 반환됩니다.
문법
xboxlive_pad_for_user(user_id, slot);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
user_id | Xbox User ID | 확인할 사용자 ID (포인터) |
slot | Real | 확인할 게임패드 슬롯의 인덱스 |
반환 값
- Xbox 패드 ID
활용 예제
다음 코드는 주어진 사용자 ID 포인터에 대해 슬롯 0에서 게임패드가 할당되었는지 확인하고, 할당되지 않았다면 하나를 할당합니다.
if (xboxlive_pad_for_user(user_id, 0) == -1) {
for (var i = 0; i < gamepad_get_device_count(); i++) {
var u_id = xboxlive_user_for_pad(i);
if (u_id == -1) {
async_ID = xboxlive_pad_for_user(i, u_id);
}
}
}
이 코드는 슬롯 0에 할당된 게임패드가 없을 경우, 모든 게임패드를 확인하여 비어 있는 슬롯에 패드를 할당합니다.
추가 활용 예제
- 게임 일시 정지 기능: 사용자가 게임패드를 사용하지 않을 경우 게임을 일시 정지합니다.
gml if (xboxlive_pad_for_user(user_id, 0) == -1) { game_pause(); }
- 패드 상태 확인: 모든 슬롯의 패드 상태를 확인하여 활성화된 패드의 인덱스를 출력합니다.
gml for (var slot = 0; slot < 3; slot++) { var pad_id = xboxlive_pad_for_user(user_id, slot); if (pad_id != -1) { show_message("활성 패드 인덱스: " + string(pad_id)); } }
- 패드 비활성화 처리: 특정 슬롯의 패드가 비활성화되었을 때의 처리 로직을 추가합니다.
gml if (xboxlive_pad_for_user(user_id, 1) == -1) { // 슬롯 1의 패드가 비활성화된 경우 show_message("슬롯 1의 패드가 비활성화되었습니다."); }