Avec cette fonction, vous pouvez utiliser une "bande de sprite" pour créer un nouvel élément de police, où chaque sous-image serait un symbole ou une lettre individuelle. L'index est le numéro de carte UTF8 pour le premier caractère à utiliser et les plages à utiliser sont les mêmes que pour une police normale, en commençant par "!" mais rappelez-vous que vous ne devez inclure que ce dont vous avez besoin et que vous devriez utiliser le ord fonction pour obtenir la valeur UTF8 correcte pour la lettre de départ. La police de sprite créée aura alors les sous-images définies à un glyphe individuel de la police, où le "premier" glyphe aura l'image_index de 0. Vous pouvez définir "espace" comme étant n'importe quel caractère que vous voulez, par exemple un seul ligne la taille que vous voulez que l'espace soit, et tous les espaces dans le texte seront rendus à cette largeur (mais l'image choisie ne sera jamais rendue), ou si vous ne fournissez pas un sprite pour l'espace alors la largeur du plus large le caractère de la police du sprite sera utilisé à la place.
Vous pouvez également définir l'espacement pour que la police soit proportionnelle ( true ) ou pas ( false ), où une police proportionnelle est espacée en fonction de la largeur réelle des lettres (ainsi la lettre "i" prend moins de place que la lettre "w", par exemple) tandis qu'une police non proportionnelle sera espacée en fonction de la sous-lettre. largeur de l'image, comme une police à espacement fixe. Enfin, vous pouvez définir l'espace à laisser entre chaque lettre lors de l'écriture, et cela peut être n'importe quelle valeur entière, 0 étant sans espace (les lettres "toucheront" si elles sont proportionnelles). La fonction renvoie une valeur d' index qui doit être stockée dans une variable car elle sera nécessaire dans tous les autres codes qui se réfèrent à cette police.
Il est également important de noter qu'il ne peut y avoir aucun espace dans la table de caractères, de sorte que si vous, par exemple, utilisez '.' et '0' mais pas '/', vous devez soit inclure '/' de toute façon ou laisser une sous-image vide entre les deux caractères utilisés.
Le sprite lui-même peut être un actif de sprite de l'arbre de ressources ou chargé à partir d'un fichier en utilisant sprite_add d'abord pour obtenir l'index du sprite chargé (qui est ensuite utilisé dans la fonction). Pour plus de détails sur la carte de caractères à utiliser lors de la création de polices d'image-objet, consultez la page sur les tables de polices. Il est important de noter que pour les fonctions d'alignement des polices (comme draw_set_halign() ) pour fonctionner comme prévu lors de l'utilisation d'une police de sprite, le sprite doit avoir son origine définie dans le coin supérieur gauche. Si vous utilisez d'autres valeurs, vous devrez prendre en compte le décalage d'origine lorsque vous dessinez du texte en utilisant la police.
REMARQUE: lorsque vous chargez une police dans GameMaker Studio 2 vous devez vous rappeler de la supprimer (avec font_delete ) lorsqu'il n'est plus nécessaire, sinon il y a un risque de fuite de mémoire qui ralentira et finira par planter votre jeu.IMPORTANT! Cette fonction n'est pas disponible avec la licence d'évaluation du produit.
font_add_sprite(spr, first, prop, sep);
Argument La description spr Le sprite pour ajouter une police basée sur. first L'index du premier caractère disponible. prop Définir comme police proportionnelle ou non. sep L'espace à laisser entre chaque lettre.
Real
global.Font = font_add_sprite(spr_HUD_Font,
ord("!"), true, 2);
Le code ci-dessus va créer un nouvel actif de police à partir d'un actif de sprite et stocker l'index de la nouvelle police dans la variable "global.Font" pour une utilisation ultérieure.