get_integer_async 함수 설명
get_integer_async
함수는 사용자에게 값을 입력할 수 있는 창을 열고 메시지를 표시합니다. 이 함수는 비동기 함수로, 사용자가 입력을 기다리는 동안에도 다른 이벤트가 정상적으로 실행됩니다. 사용자가 문자열을 입력하고 "Okay" 버튼을 누르면, 비동기 Dialog
이벤트가 발생하며, 이 이벤트 동안 async_load
변수에 DS 맵이 저장됩니다. 이 맵은 다음 세 가지 키를 포함합니다:
키 | 설명 |
---|---|
"id" | 함수 호출 시 반환된 값 |
"status" | "Okay" 버튼이 눌렸다면 true, 메시지가 취소되었다면 false |
"value" | 사용자가 입력한 정수 (입력이 없을 경우 빈 문자열 "" 반환) |
문법
get_integer_async(string, default);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
string | String | 대화 상자에 표시할 메시지 |
default | Real | 기본값 |
반환값
- 비동기 요청 ID
예제
사용자가 나이를 입력하도록 요청하는 예제입니다. 아래 코드는 "Mouse Left Pressed Event"에서 사용될 수 있습니다.
// 마우스 왼쪽 클릭 이벤트
msg = get_integer_async("How old are you?", 0);
위 코드는 사용자가 문자열을 입력하고 "Okay" 버튼을 누르도록 요청하는 메시지를 표시합니다. 비동기 ID는 msg
변수에 저장됩니다. 이 ID는 비동기 Dialog
이벤트에서 사용됩니다.
비동기 Dialog 이벤트 예제
// 비동기 Dialog 이벤트
var _id = ds_map_find_value(async_load, "id");
if (_id == msg) {
if (ds_map_find_value(async_load, "status")) {
global.age = ds_map_find_value(async_load, "value");
}
}
위 코드는 반환된 DS 맵의 "id" 키를 msg
변수에 저장된 값과 비교합니다. 두 값이 같으면 "Okay" 버튼이 눌렸는지 확인하고, true가 반환되면 반환된 정수로 전역 변수를 설정합니다.
활용 예제
- 사용자 입력을 통한 점수 기록
gml score_input = get_integer_async("Enter your score:", 0);
- 설정 변경을 위한 사용자 입력
gml volume_input = get_integer_async("Set volume level (0-100):", 50);
- 게임 내 캐릭터 나이 설정
gml age_input = get_integer_async("How old is your character?", 18);
- 사용자에게 레벨 선택 요청
gml level_input = get_integer_async("Select your level (1-10):", 1);
- 사용자에게 최대 플레이 시간 입력 요청
gml time_input = get_integer_async("Enter maximum play time in minutes:", 60);