achievement_get_pic(char)
Argument La description char L'ID de la personne pour obtenir l'image de (soit à partir d'une liste d'amis ou un classement)
N/A
Cette fonction enverra une requête au serveur pour l'image d'un joueur ou d'un ami et déclenchera un callback Social Asynchronous Event qui contient le async_load carte remplie avec les paires clé / valeur pertinentes. La clé d' identification de cette ds_map est utilisé pour identifier le rappel correct (il peut y avoir plus d'une fonction de déclenchement pour un événement asynchrone donné), et sera associé à la constante achievement_pic_loaded ainsi qu'un certain nombre d'autres paires clé / valeur. Le contenu exact de la carte est indiqué ci-dessous:
- " id " - Pour cette fonction, il devrait être achievement_pic_loaded
- " playerid " - L'identifiant du joueur ou de l'ami dont nous recevons l'image.
- " spriteid " - Identifiant de l'image-objet qui peut ensuite être utilisé pour dessiner à l'écran en utilisant l'une des fonctions de l'image-objet de dessin
NOTE: Cette fonction est pour iOS seulement.AVERTISSEMENT: Cette fonction crée des sprites et en tant que tels, leurs identifiants doivent être stockés dans des variables, puis supprimés de la mémoire en utilisant le sprite_delete La fonction autrement répétée d'utilisation vous donnera une fuite de mémoire qui finira par ralentir ou planter votre jeu.
Le code suivant serait appelé après avoir obtenu une liste d'amis ou une liste de classements en utilisant achievement_load_friends ou achievement_load_leaderboard. Ces fonctions renverront des valeurs uniques "id" pour chaque personne, qui sont ensuite utilisées dans la fonction pour récupérer l'image de profil pour eux:
achievement_get_pic(global.player_id[0]);
Cela va envoyer une demande pour l'image associée à l'identifiant du joueur stocké dans le tableau global et générer un rappel asynchrone avec le spécial async_load ds_map contenant les données suivantes:
var ident = ds_map_find_value(async_load,
"id");
if ident == achievement_pic_loaded
{
var picid = ds_map_find_value(async_load,
"playerid");
var spriteid = ds_map_find_value(async_load,
"spriteid");
if global.playerid[0] == picid)
{
global.playerpic[0] =
spriteid;
}
}
Le code ci-dessus vérifie le retour ds_map dans l' événement asynchrone social et si son "id" correspond à la constante vérifiée, il vérifie alors que l'id associé à l'image est le même que celui demandé et s'il l'est, il définit un autre tableau global pour contenir l'identifiant unique pour l'image (qui peut être utilisée pour dessiner l'image comme un sprite).