키 다운 감지(Detailed 설명)
이 문서는 If Key Down 액션에 대해 설명하며, 키보드를 통해 어떤 키가 현재 눌리고 있는지 확인하는 방법을 다룹니다. 이 액션은 키가 눌리고 있을 경우 매 스텝마다 true를 반환하고, 그렇지 않으면 false를 반환합니다. 또한, not 수식어를 클릭하면 키가 눌리지 않았는지를 확인할 수 있습니다. 즉, 키가 눌리지 않을 때는 true, 눌렸을 때는 false를 반환합니다.
단일 키 입력을 체크하려면 If Key Pressed 액션을 사용하는 것이 좋습니다.
액션 구문
인자 설명
| 인자 | 설명 |
|---|---|
| Key | 확인할 키의 이름 |
| Not | 체크를 반전합니다 (true -> false, 반대로도) |
예제 코드
아래 코드 예제는 키보드 상태를 매 스텝마다 체크하고, 키가 눌렸을 경우 소리를 재생하며, 키가 눌려있는 동안 스프라이트의 색상을 빨간색으로 변경합니다. 키가 더 이상 눌리지 않으면 색상을 다시 흰색으로 초기화합니다.
if (If Key Down("space")) {
if (!keyDown) {
// 소리 재생
audio_play_sound(sound_jump, 1, false);
keyDown = true; // 키가 눌렸음을 기록
}
// 스프라이트 색상을 빨간색으로 설정
sprite_blend = c_red;
} else {
// 키가 더 이상 눌리지 않으면 색상을 흰색으로 초기화
if (keyDown) {
sprite_blend = c_white;
keyDown = false; // 키가 눌리지 않음을 기록
}
}
다양한 활용 및 응용 예제
- 게임 캐릭터의 이동
gml if (If Key Down("right")) { x += 5; // 오른쪽으로 이동 } if (If Key Down("left")) { x -= 5; // 왼쪽으로 이동 }- 특정 키를 눌러 캐릭터를 이동시키는 경우
- 게임 오브젝트 활성화
gml if (If Key Down("Z")) { obj_powerup.visible = true; // 파워업 아이템을 보이게 함 } else { obj_powerup.visible = false; // 파워업 아이템을 숨김 }- 특정 키가 눌릴 때마다 게임 오브젝트를 활성화하거나 비활성화
- 컨트롤러와의 연동
gml if (If Key Down("gamepad_button_1")) { // 게임패드의 버튼 1이 눌리면 적을 공격 instance_create_layer(x, y, "Instances", obj_enemy); }- 키보드 대신 게임패드를 사용할 때의 예제
마무리
If Key Down 액션은 게임 개발 시 유용하게 사용되는 기능입니다. 이 기능을 통해 유저의 입력을 감지하고, 다양한 상호작용을 구현할 수 있습니다. 원하는 반응을 얻기 위해서 다양한 액션을 조합하여 사용해보세요.