此函数用于检索给定字体的信息。您可以提供字体索引,它可以是通过 " 资源浏览器 " 添加的资源,也可以是运行时添加的 字体 。
该函数返回具有以下变量的结构:
字体信息结构 | ||
---|---|---|
变量名 | 数据类型 | 描述 |
ascender | Real | 字体的上升的高度(以像素为单位) |
ascenderOffset | Real | 从基线到字体顶部的最大偏移量(以像素为单位) |
size | Real | 字体的近似大小(以像素为单位) |
spriteIndex | Sprite Asset | 字体的精灵索引(如果是从sprite创建的),否则-1 |
texture | Real | 如果字体是从精灵创建的,则为-1,否则为字体的纹理ID |
name | String | 字体的名称 |
bold | Boolean | true如果字体为粗体,否则false(见下文注意) |
italic | Boolean | true如果字体为斜体,否则false(见下文注意) |
glyphs | 字体字形结构 | 包含字体中每个字形信息的结构(更多信息见下文) |
sdfEnabled | Boolean | 是否为此字体启用或禁用SDF |
sdfSpread | Real | 为此字体设置的SDF跨页值 |
effectsEnabled | Boolean | 是否为此字体启用效果 |
effectParams | Struct | 此字体的效果结构,可使用font_enable_effects进行更改 |
注意 bold 和 italic 变量仅反映用户对字体的设置,因此对于默认显示为粗体或斜体的字体,这些变量可能不准确。
如果提供的字体不存在,函数将返回undefined。
另请注意,更改这些变量中任何变量的值,或字形结构中包含的任何变量的值,不会改变字体的呈现方式,因此,此信息应该考虑只读。
返回的结构中的字形变量本身将是一个结构,包含字体中包括的每个字形的信息。此结构中的每个变量将是一个字形的字符名称,它将保存一个包含该字形信息的结构。您可以想象这些嵌套结构具有以下格式(从主结构开始):
{
glyphs:
{
A: {},
B: {},
C: {},
// ...other glyphs
},
// ...other font info
}
可以使用标志符号的字符名称从结构中检索其信息,如下面的代码所示:
var _font_info = font_get_info(Font1);
var _info_A = _font_info.glyphs[$ "A"]; // $ is a struct accessor
show_debug_message(_info_A);
上面的代码获取"A"字符的字形结构并将其打印到输出日志中。您还可以将字符串(" A")替换为包含字符串的变量,这样您就可以在运行时通过该变量获取任何字形的信息。
为标志符号返回的结构将包含以下变量:
注意 在HTML5上,对于任何加载的文件字体 (例如*. ttf或*. otf),字形结构将为空,因为运行时将没有关于这些字形的信息。
字体字形结构 | ||
---|---|---|
变量名 | 数据类型 | 描述 |
char | Real | 如果字体是从sprite创建的,则这将是来自该精灵的字形的图像索引,否则它将是其Unicode字符编号 注意:如果字体是从sprite创建的,则以下所有变量都不会出现在结构中 |
x | Real | 字形在纹理页面上的X位置(以纹理像素为单位) |
y | Real | 字形在纹理页面上的Y位置(以纹理像素为单位) |
w | Real | 纹理页面上标志符号的宽度(以纹理像素为单位) |
h | Real | 纹理页面上标志符号的高度(以纹理像素为单位) |
shift | Real | 前进到下一个字符时右移的像素数(左移时可以为负值) |
offset | Real | 水平偏移此字形渲染的像素数(可以为正或负) |
kerning | Array | 包含成对(或2个一组)字距调整信息的整数数组。字符对中的第一个整数是字符的Unicode值,第二个整数是要添加到该字符的移位值(可以是正数或负数)的数量(如果该字符前面有该字形的字符)。 |
注意 对于在运行时加载的文件字体,如果字形尚未渲染,则字形的 X 和 Y 值可能为 -1,因为它在用于缓存的纹理页面上没有位置。
font_get_info(font);
参数 | 类型 | 描述 |
---|---|---|
font | Font Asset | 应检索其信息的字体。 |
字体信息结构 (or undefined)
var _info = font_get_info(my_font);
if (_info != undefined && _info.bold)
{
image_xscale *= 2;
image_yscale *= 2;
}
此代码检索存储在 my_font 变量中的字体信息。如果返回的值为不是 undefined,并且给定的字体为粗体,则实例的比例将加倍。