font_add_sprite

使用此函数,您可以使用 精灵条 来创建新的字体资源,其中每个子图像将是一个单独的符号或字母。索引是第一个要使用的字符的 UTF8 地图编号,使用的范围与普通字体相同,以 "!" 开始但是请记住,您应该仅包含所需的内容,并且应该使用 ord() 函数来获取起始字母的正确 UTF8 值。然后,创建的精灵字体将子图像设置为该字体中的单个字形,其中 " 第一个 " 字形的 image_index 为 0。您可以将 " 空格 " 定义为您想要的任何字符,例如,您希望空格大小的单行,并且文本中的所有空格都将以该宽度呈现 (但是选择的图像将 永远不会 被呈现),或者,如果您不提供精灵空间,则将使用精灵字体中最宽字符的宽度。

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

该函数返回一个index值,该值应存储在变量中,因为在引用此字体的所有其他代码中都需要此值,或者如果该函数由于任何原因而失败,它将返回-1。

同样值得注意的是,字符映射中不能有任何空格,因此,如果您例如使用 '.' 和 '0' 但不使用 '/',则无论如何都需要包含 '/' 或在两个使用的字符之间留下空白的子图像。

精灵本身可以是来自资源浏览器的精灵资源,也可以是首先使用sprite_add从文件加载的精灵资源,以获取加载的精灵的索引 (然后在函数中使用)。重要的是要注意,要使字体对齐函数 (例如draw_set_halign()) 在使用精灵字体时按预期工作,精灵应将其原点设置为左上角。如果使用其他值,则在使用字体绘制文本时需要考虑原点偏移量。

注意当您将字体加载到GameMaker时,您必须记住在不再需要时再次将其删除 (使用font_delete()),否则存在内存泄漏的风险,这将减慢速度并最终使您的游戏崩溃。

 

语法:

font_add_sprite(spr, first, prop, sep);

参数类型描述
sprSprite Asset要添加字体的精灵.
firstReal第一个可用字符的索引。
propBoolean是否设置为比例字体。
sepReal每个字母之间要留出的空间。

 

返回:

Font Asset

 

例子:

global.Font = font_add_sprite(spr_HUD_Font, ord("!"), true, 2);

上面的代码将从精灵资源创建一个新的字体资源,并将新字体的索引存储在变量 "global.font" 中以供以后使用。