font_replace_sprite_ext

该函数将替换您之前使用函数font_add_sprite_ext()创建的一个精灵字体。它使用 "精灵条带",其中每个子图像都是一个单独的符号或字母,并且图像基于函数的参数 "string_map" 映射到字母。这个参数是一个字符串,你可以用它来告诉GameMaker精灵字体的子图像是什么顺序,它会在写文本时自动映射这些。因此,例如,如果您有一个字符串映射 "AaBbCcDdEeFfGgHh",则您的精灵字体必须具有以这种方式排序的子图像。

您还可以将字体的间距设置为按比例 (true) 或不按比例 (false),其中按比例字体的间距是根据字母的实际宽度进行的 (因此,字母 "i" 占用的空间比字母 "w" 少,例如),而非比例字体将根据子图像宽度进行间隔,例如等宽字体。最后,您可以定义书写时每个字母之间要留出的空间,这可以是任何整数值,0是没有空格的 (如果比例,字母将 "触摸")。该函数返回一个index值,该值应存储在变量中,因为在引用此字体的所有其他代码中都需要此值。

如果函数失败,那么它将在不替换给定的精灵字体的情况下静默失败。

注意此函数要求您先前使用font_add_sprite()添加了一个精灵字体,因为它将替换该字体,并且不能用于作为游戏资源的一部分。

 

语法:

font_replace_sprite_ext(font, spr, string_map, prop, sep);

参数类型描述
fontFont Asset要替换的字体。
sprSprite Asset要添加字体的精灵.
string_mapString从中获取精灵子图像顺序的字符串。
propBoolean是否设置为比例字体。
sepReal每个字母之间要留出的空间。

 

返回:

N/A

 

例子:

font_replace_sprite_ext(global.Font, spr_CalcFont, "0123456789+-*/=", true, 2);

上述代码将用在变量 "spr_CalcFont" 中索引的精灵图像替换在变量 "global.font" 中索引的精灵字体资源。