font_add

此函数可用于从包含的文件中存在的字体文件向游戏添加字体。可以定义字体的大小 (以点数表示),以及字体应该是粗体还是斜体, 也可以定义要包含的字符范围。该函数返回一个index值,该值应存储在变量中,因为在引用此字体的所有其他代码中都需要此值,或者如果该函数由于任何原因而失败,它将返回- 1

请注意,字体文件必须是 *.ttf*.otf 文件,对于添加亚洲或阿拉伯字体等非标准字体也很有用。

警告 如果您在包含的文件中包含这样的字体,则它必须获得许可才能与游戏一起分发。

在Windows上,此功能还可以加载系统上安装的字体,例如"Arial"。但是,不建议依赖系统字体,因为运行您的游戏的另一台计算机可能没有安装相同的字体。

在HTML5上,此函数只能用于添加Web字体,并且仅在启用WebGL时才能工作-如果启用WebGL,则必须使用常规字体资源(即:使用draw_set_font()沿着资源浏览器中的字体)或位图字体(请参见font_add_sprite())。

警告 以 HTML5 为目标时,仅当字体资源或 Web 字体本身包含斜体和粗体文本时才支持这些字符。它们不会从基本字体合成。

从文件加载字体时,字体的大小像素为单位,并且的前的最后值将被忽略,这意味着字体中的所有字形将被添加。以这种方式添加的字体被分配到自己的纹理页面,因此在使用此函数时应格外小心,因为它会在绘制时增加纹理交换的数量。同样值得注意的是,字体在绘制时可能会显得稍大一些,因为字形可能具有在为字体定义的边界框之外绘制的部分。您也应该意识到,对于特定字体,可以在单个框架中呈现大约200个字形的限制。

默认情况下,添加的字体将启用抗锯齿。但是,您可以随时使用函数 font_add_get_enable_aa 检查抗锯齿的状态,并且可以使用函数 font_add_enable_aa 启用 / 禁用抗锯齿。

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

 

语法:

font_add(name, size, bold, italic, first, last);

参数类型描述
nameString包含文件中的字体文件的路径 (*.ttf*. otf)。
sizeReal字体的大小-网页字体为点,文件字体为像素。
boldBoolean字体是粗体(true)还是粗体(false)。
italicBoolean字体是否为斜体(true)或(false)。
firstReal要包含的第一个字符(如果您不确定,请选择32)。
lastReal要包括的最后一个字符(如果您不确定,请选择128)。

 

返回:

Font Asset

 

例子:

new_font = font_add("gamefont.ttf", 24, true, true, 32, 128);

这将加载游戏包含的文件中存在的 gamefont.ttf 文件,尺寸为 24pt。字体会是粗体和斜体,字体范围会包括大写和小写字母、数字和所有常见的标点符号。字体加载后,其 ID 将存储在 new_font 变量中。