Game Maker Language リファレンス > 組み込み関数 用途別 > 非同期関数 > get_integer_async
モーダルでない数値入力ダイアログを表示します。
get_integer_async(string, default);
この関数は数値入力ダイアログをメッセージ付きで表示します(デフォルトの数値を指定することも可能です)。これは非同期関数であり、GameMaker:Studioは結果を待たずに処理を続けます(通常のイベントはそのまま動作します)。OKボタンが押されることで、Dialogイベントに通知が来て、そこで"async_load"変数に結果がds_map形式で格納されます。
このds_mapは、"id"と"status"、"result"の3つのキーを持ちます。"id"はこの関数の戻り値と比較することで整合性をチェックし、"status"はOKが押されたかどうか(プラットフォームによりOKが押されない可能性があります)を判定し、"result"にユーザが入力した数値が設定されます。
マウスの左クリックイベントに以下のように記述するとします。
msg = get_integer_async("How old are you?", 0);
これにより数値入力ダイアログを表示します。結果は"msg"変数に格納し、Dialogイベントでその結果を待ちます。
var i_d = ds_map_find_value(async_load, "id"); if i_d == msg { if ds_map_find_value(async_load, "status") { global.Age = ds_map_find_value(async_load, "value"); } }
"id"を関数の戻り値"msg"と比較することで整合性をチェックし、"status"でOKが押されたかどうか、結果の数値入力を"result"で受け取っています。