get_integer_async

此函数打开一个窗口并显示消息以及一个空间供用户输入一个值(它将包含提供的默认值开始)。 这是一个异步函数,因此 GameMaker 在等待答案时不会阻止运行它的设备,而是继续正常运行事件。 一旦用户键入他们的字符串并按下“确定”按钮,就会触发一个异步的 对话框 事件,在该事件持续期间将有一个 DS map存储在变量 async_load 中。

这个映射将包含三个键,"id", "status"和"value"。"id"是函数调用时返回的值,"status"对于被按下的" ok "按钮将是true,如果消息被取消,则是false(如果适用,因为不是所有目标平台都允许取消消息)。最后"value"将返回用户以字符串形式输入的整数(如果没有输入,则返回空字符串"")。

注意 此函数 仅供 调试和测试使用 ,不应在已发布的游戏中使用。为此,您应该创建一个自定义用户界面来接收玩家的输入,以便您可以完全控制对话框的外观和行为。

 

语法:

get_integer_async(string, default);

参数类型描述
stringString要在对话框中显示的消息。
defaultReal默认值。

 

返回:

Async Request ID

 

扩展示例:

显示消息的对象的左鼠标按事件(例如)将具有以下代码:

msg = get_integer_async("How old are you?", 0);

上面将显示一条消息,要求用户输入一个字符串并按“确定”。 函数 id 存储在变量“msg”中,并将在异步 对话框事件中使用,如下所示:

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");
    }
}

上述代码根据变量“msg”中存储的值检查返回的 DS Map 的“id”键。 如果它们相同,它会检查是否按下了“确定”(而不是关闭/取消窗口),如果它返回 true,它会根据返回的整数设置一个全局变量。