가상 키와 가상 키보드

게임을 터치스크린 장치용으로 개발할 때, 사용자로부터 키보드 입력을 받는 것이 중요합니다. GameMaker를 사용할 때는 다음 두 가지 방법 중 하나로 입력을 받을 수 있습니다:

  1. 화면에 가상 키를 만들어 입력 받기
  2. 운영 체제의 가상 키보드를 띄워 입력 받기

어떤 방법을 사용할지는 게임의 특성과 필요에 따라 다르지만, 일반적으로 플레이어 조작이나 메뉴를 위한 화면 버튼이 필요할 때는 가상 키를 사용하고, 이름 입력이나 값 설정과 같은 플레이어 입력이 필요할 때는 가상 키보드를 사용합니다.

가상 키

모바일 장치에서 게임이 제대로 작동하려면, 사용자가 터치했을 때 특정 영역이 반응하도록 화면의 영역을 할당해야 할 수 있습니다. 이는 "가상 키"를 내부적으로 매핑된 표준 키보드 키에 할당하고, 생성된 키보드 이벤트를 사용하여 애플리케이션을 제어함으로써 이루어집니다. 이 "가상 키"는 방(room) 위치가 아니라 화면 위치에 매핑되므로, x/y 값은 절대값이며 디스플레이 크기를 기준으로 합니다. 따라서 뷰나 상대 방 좌표를 걱정할 필요 없이, 객체의 생성 이벤트에서 가상 키를 정의하고, GUI 이벤트에서 키 스프라이트를 그리면 됩니다. GUI 레이어의 크기를 화면과 동일하게 설정하면 됩니다.

이 기능은 터치스크린을 사용하는 Windows, Ubuntu (Linux), MacOS 플랫폼에서는 작동하지 않지만, 마우스 클릭은 "터치"로 인식됩니다. 이 기능은 HTML5 및 GX.games 타겟에서 지원됩니다.

사용 가능한 가상 키 함수

  • virtual_key_add
  • virtual_key_show
  • virtual_key_hide
  • virtual_key_delete

가상 키보드

게임에서 텍스트나 숫자 입력이 필요할 경우, 제공되는 가상 키보드 함수를 사용하여 장치의 운영 체제 키보드를 사용할 수 있습니다. 이 함수들은 OS 키보드를 호출하거나 숨기고, 입력을 받을 수 있습니다. 그러나 일반 키보드 이벤트를 트리거하지 않고, 대신 사용자 입력으로 keyboard_string 변수를 업데이트합니다. 이는 가상 키보드가 단일 문자가 아닌 전체 단어를 입력할 수 있기 때문입니다.

가상 키보드를 열거나 닫으면 시스템 비동기 이벤트가 생성되며, async_load DS 맵은 다음의 키/값 쌍으로 채워집니다:

설명
"event_type" 수신된 시스템 이벤트의 유형, 가상 키보드의 경우 "virtual keyboard status"
"screen_height" 가상 키보드의 높이 (픽셀 단위). 키보드가 보이지 않으면 0입니다.
"keyboard_status" 키보드의 현재 상태, 다음 문자열 중 하나로 반환됩니다: "hiding", "hidden", "showing", "visible"

사용 가능한 가상 키보드 함수

  • keyboard_virtual_show
  • keyboard_virtual_hide
  • keyboard_virtual_status
  • keyboard_virtual_height

활용 예제

가상 키 사용 예제

// 가상 키 추가
virtual_key_add(100, 100, 50, 50, "Jump");

// 가상 키 보여주기
virtual_key_show();

가상 키보드 사용 예제

// 가상 키보드 보여주기
keyboard_virtual_show();

// 가상 키보드 숨기기
keyboard_virtual_hide();

가상 키 상태 확인 예제

// 가상 키보드 상태 확인
var status = keyboard_virtual_status();
if (status == "visible") {
    // 키보드가 보이는 경우
}

가상 키보드 높이 확인 예제

// 가상 키보드 높이 가져오기
var height = keyboard_virtual_height();