Cette fonction ouvre une fenêtre qui demande à l'utilisateur d'entrer un nom d'utilisateur et un mot de passe. Ces arguments peuvent être définis comme une chaîne vide ou vous pouvez stocker les valeurs précédemment saisies à utiliser si vous le souhaitez. Il s'agit d'une fonction asynchrone, et en tant que tel, GameMaker Studio 2 ne bloque pas le périphérique sur GameMaker il s'exécute en attendant la réponse, mais continue à exécuter les événements normalement. Une fois que l'utilisateur a entré les détails et appuyé sur le bouton "OK", un événement d' interaction utilisateur asynchrone est déclenché qui, pour la durée de cet événement seulement, aura un ds_map stocké dans la variable async_load.
Cette carte contiendra les deux clés, "nom d'utilisateur" et "mot de passe", avec l'entrée utilisateur correspondante stockée dans chaque. Comme c'est un ds_map qui a été créé, cela peut ensuite être utilisé, par exemple, par le json_encode fonction prête à être envoyée à un serveur ou écrite dans un fichier sur le périphérique choisi.
Il est à noter que cette fonction renverra un numéro d'index pour le fichier ds_map créé qui pourra ensuite être vérifié dans l'événement correspondant afin que vous puissiez "cibler" un ds_map spécifique si vous attendez le retour de plus d'une carte asynchrone (peut-être une autre fonction). En dehors des événements asynchrones, async_load ds_map renverra une valeur "id" de -1.
get_login_async(name, password);
Argument La description username Le nom d'utilisateur par défaut password Le mot de passe par défaut
Real
L' événement create (par exemple) de l'objet qui contrôle le login de notre utilisateur aurait le code suivant:
ini_open("Profile.ini");
u = ini_read_string("User","0","");
p = ini_read_string("User","1","");
ini_close();
login = get_login_async(u,p);
Le code ci-dessus ouvre un fichier ini (ou en crée un s'il n'existe pas) et obtient le nom et le mot de passe stockés dans ce fichier. Si elles n'existent pas, la valeur par défaut d'une chaîne vide ("") est renvoyée. Ces valeurs sont ensuite utilisées dans get_login_async() demander à l'utilisateur son nom d'utilisateur et son mot de passe, l'index des demandes étant stocké dans la variable "login". Notez qu'en attendant que l'utilisateur donne les informations nécessaires, le jeu et ses événements continueront à fonctionner normalement.
Maintenant que le code asynchrone a été déclenché, nous devons vérifier la valeur de retour dans l' événement asynchrone pour Dialogues de la façon suivante:
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");
}
Le code ci-dessus vérifie la clé "id" de async_load ds_map et s'il contient la même valeur que celle stockée dans la variable "login", les détails de la carte sont lus dans les variables correspondantes que vous pouvez ensuite stocker ou utiliser pour vérifier Valeurs de base de données etc...