get_login_async

此函数打开一个窗口,要求用户输入用户名和密码。 这些参数可以设置为空字符串,或者您可以根据需要存储以前输入的值以供使用。 这是一个异步函数,因此 GameMaker 在等待答案时不会阻止运行它的设备,而是继续正常运行事件。 用户输入详细信息并按下“确定”按钮后,将触发一个异步用户交互事件,在该事件持续期间,变量中将存储一个 DS map async_load

此映射将包含两个键,“username”和“password”,每个键中都存储了相应的用户输入。 由于它是已创建的 DS map,因此可以使用它,例如,准备发送到服务器或写入所选设备上的文件的 json_encode() 函数 .

此函数将返回触发的异步事件的索引号,然后可以在相应的事件中检查该索引号,以便您可以“定位”特定数据,以防万一您期望触发多个异步事件( 也许来自其他一些函数)。

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

 

语法:

get_login_async(name, password);

参数类型描述
usernameString默认用户名
passwordString默认密码

 

返回:

Async Request ID

 

扩展示例:

控制用户登录的对象的 创建事件(例如)将具有以下代码:

ini_open("Profile.ini");
u = ini_read_string("User","0","");
p = ini_read_string("User","1","");
ini_close();
login = get_login_async(u,p);

上面的代码打开一个 ini 文件(如果不存在则创建一个)并获取存储在该文件中的名称和密码。 如果它们不存在,则返回默认的空字符串 ("")。 然后在 get_login_async() 中使用这些值来询问用户的用户名和密码详细信息,请求索引存储在变量“login”中。 请注意,在等待用户提供必要信息的同时,游戏及其事件将继续正常运行。

现在异步代码已被触发,我们需要通过以下方式检查 对话框的异步事件中的返回值:

if (ds_map_find_value(async_load, "id") == login)
{
    u = ds_map_find_value(async_load, "username");
    p = ds_map_find_value(async_load, "password");
}

上面的代码检查 async_load DS map的“id”键,如果它与存储在“login”变量中的值相同,则映射详细信息将读入相应的变量,然后您可以存储或使用这些变量来检查 针对数据库值等...