show_question_async 함수 설명
show_question_async
함수는 사용자에게 정의된 질문을 표시하는 창을 여는 비동기 함수입니다. 이 함수는 사용자가 응답을 기다리는 동안에도 장치의 이벤트를 정상적으로 계속 실행합니다. 이 함수는 "예"와 "아니오" 버튼을 제공하며, 사용자가 버튼 중 하나를 누르면 비동기 Dialog
이벤트가 트리거됩니다. 이 이벤트 동안에만 async_load
변수에 DS 맵이 저장됩니다. 이 맵은 두 개의 키를 포함합니다: "id"와 "status". "id"는 함수 호출 시 반환된 값이며, "status"는 각각 "예"와 "아니오"에 대해 true 또는 false 값을 가집니다.
문법
show_question_async(string);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
string | String | 사용자에게 물어볼 질문 |
반환값
- Async Request ID
예제
예를 들어, 메시지를 표시하는 객체의 마우스 왼쪽 클릭 이벤트는 다음과 같은 코드를 가질 수 있습니다:
Mouse Left Pressed Event
msg = show_question_async("Do you want to buy some armour for " + string(armour[0, 5]) + " coins?");
위 코드는 주어진 문자열로 질문을 표시하고, 사용자가 "예" 또는 "아니오" 버튼을 누르도록 요청합니다. 비동기 ID는 msg
변수에 저장되며, 아래와 같이 비동기 Dialog
이벤트에서 사용됩니다:
Async - Dialog Event
var _id, _stat;
_id = ds_map_find_value(async_load, "id");
if (_id == msg) {
if (ds_map_find_value(async_load, "status")) {
coins -= armour[0, 5];
global.protection += armour[0, 0];
}
}
위 코드는 반환된 DS 맵의 "id" 키를 msg
변수에 저장된 값과 비교합니다. 두 값이 같으면, 두 버튼 중 하나가 눌렸는지 확인하고, true가 반환되면 변수에서 값을 차감하고 전역 변수에 값을 추가합니다.
활용 예제
예제 1: 게임 내 구매 확인
// 플레이어가 아이템을 구매할 때
if (show_question_async("Do you want to buy a health potion for 50 coins?")) {
// 구매 로직
}
예제 2: 퀘스트 수락 확인
// 퀘스트를 수락할 때
msg = show_question_async("Do you want to accept the quest: 'Find the lost treasure'?");
예제 3: 게임 종료 확인
// 게임 종료 시 확인
msg = show_question_async("Are you sure you want to exit the game?");
예제 4: 설정 변경 확인
// 설정을 변경할 때
msg = show_question_async("Do you want to save changes to your settings?");
이와 같은 방식으로 show_question_async
함수를 활용하여 다양한 상황에서 사용자에게 질문을 할 수 있습니다.