게임 패드 버튼 상태 확인하기
이 문서에서는 게임 패드의 버튼이 눌렸는지를 확인하는 방법에 대해 설명합니다. 이 기능을 사용하면 어떤 버튼이 현재 눌리고 있는지 확인할 수 있습니다. 버튼을 눌렀을 때에만 참(true)을 반환하고, 버튼이 놓인 상태에서는 모두 거짓(false)을 반환합니다.
기본 개념
- If Gamepad Button Pressed: 이 액션은 게임패드 버튼의 현재 상태를 확인합니다.
- 버튼 상태 확인: 버튼이 눌렸을 때 참이 반환되며, 버튼이 놓이면 거짓이 반환됩니다.
- NOT 수정자: 버튼이 눌리지 않았는지를 확인할 수 있습니다.
- 버튼이 길게 눌리고 있는 경우: 길게 눌리고 있는지를 확인하려면 If Gamepad Button Down 액션을 사용해야 합니다.
- 아날로그 버튼: 아날로그 버튼의 경우, 버튼 값이 설정된 임계값을 초과해야만 눌림이 감지됩니다. 이 임계값은 Set Gamepad Button Threshold 액션을 통해 설정할 수 있습니다.
액션 문법
인수 | 설명 |
---|---|
Gamepad | 게임패드 인덱스 |
Button | 확인할 버튼의 이름 |
Not | 체크를 반전시킵니다 (true가 false, false가 true로) |
예제
아래의 예제 코드 블록은 게임패드 0번의 버튼 상태를 매 스텝마다 확인합니다. 버튼이 눌릴 때 소리가 재생되며, 버튼을 누르고 있는 동안 인스턴스의 속도를 10으로 설정합니다. 버튼이 놓이면 속도를 0으로 리셋합니다.
if (gamepad_button_pressed(0, gp_button_1)) {
audio_play_sound(snd_button_press, 1, false);
speed = 10; // 인스턴스 속도 설정
} else {
if (gamepad_button_released(0, gp_button_1)) {
speed = 0; // 인스턴스 속도 초기화
}
}
활용 및 응용 예제
- 게임 시작/종료: 특정 버튼을 눌러 게임을 시작하거나 종료하는 기능 추가
gml if (gamepad_button_pressed(0, gp_button_start)) { start_game(); } if (gamepad_button_pressed(0, gp_button_back)) { exit_game(); }
- 캐릭터 조작: 방향 버튼을 눌러 캐릭터를 이동시키기
gml if (gamepad_button_down(0, gp_button_up)) { y -= speed; // 위로 이동 } if (gamepad_button_down(0, gp_button_down)) { y += speed; // 아래로 이동 }
- 무기 발사: 특정 버튼을 눌러 무기 발사
gml if (gamepad_button_pressed(0, gp_button_attack)) { fire_weapon(); }
이와 같이 게임 패드 버튼을 이용하여 다양한 기능을 구현할 수 있습니다. 필요에 따라 액션을 조합하여 원하는 게임 조작을 디자인하세요.