DynamicFont
Inherits: Font < Resource < Reference < Object
DynamicFont 在运行时渲染矢量字体文件。
描述
DynamicFont 在运行时动态渲染矢量字体文件,而不是像 BitmapFont 那样使用预渲染的纹理图集。通过放弃 BitmapFont 更快的加载时间,换取在运行时改变字体大小和间距等参数的能力。使用 DynamicFontData 引用字体文件路径。DynamicFont 还支持定义若干备用字体,这些字体将在主字体不支持显示某个字符时使用。
DynamicFont 使用 FreeType 库进行光栅化处理。支持的格式有 TrueType(.ttf
)、OpenType(.otf
)和 Web Open Font Format 1(.woff
)。不支持 Web Open Font Format 2(.woff2
)。
var dynamic_font = DynamicFont.new()
dynamic_font.font_data = load("res://BarlowCondensed-Bold.ttf")
dynamic_font.size = 64
$"Label".set("custom_fonts/font", dynamic_font)
注意:DynamicFont 尚不支持字偶距、从右到左的排版、合字、文本变形、可变字体和可选字体等功能。如果你想把可选的字体功能“烘焙”进一个 TTF 字体文件,可以使用 FontForge。在 FontForge 中,使用文件 > 生成字体,点击选项,选择需要的功能,然后生成字体。
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
方法
void | add_fallback ( DynamicFontData data ) |
get_available_chars ( ) const | |
get_fallback ( int idx ) const | |
get_fallback_count ( ) const | |
get_spacing ( int type ) const | |
void | remove_fallback ( int idx ) |
void | set_fallback ( int idx, DynamicFontData data ) |
void | set_spacing ( int type, int value ) |
枚举
enum SpacingType:
SPACING_TOP = 0 —- 顶部间距。
SPACING_BOTTOM = 1 —- 底部间距。
SPACING_CHAR = 2 —- 每个字符的间距。
SPACING_SPACE = 3 —- 空格字符的间距。
属性说明
- int extra_spacing_bottom
Default |
|
Setter | set_spacing(value) |
Getter | get_spacing() |
底部的额外间距,单位为像素。
- int extra_spacing_char
Default |
|
Setter | set_spacing(value) |
Getter | get_spacing() |
每个字符的额外间距,单位为像素。
这可以是负数,使字符之间的距离更小。
- int extra_spacing_space
Default |
|
Setter | set_spacing(value) |
Getter | get_spacing() |
空格字符的额外间距,单位是像素,除了extra_spacing_char。
这可以是负数,使字符之间的距离更小。
- int extra_spacing_top
Default |
|
Setter | set_spacing(value) |
Getter | get_spacing() |
顶部的额外间距,单位为像素。
- DynamicFontData font_data
Setter | set_font_data(value) |
Getter | get_font_data() |
字体数据。
- Color outline_color
Default |
|
Setter | set_outline_color(value) |
Getter | get_outline_color() |
字体轮廓的颜色。
注意:建议将此值保留为默认值,以便您可以在各个控件中对其进行调整。例如,如果在此处将轮廓设为黑色,则无法使用Label的字体轮廓调制主题项来更改其颜色。
- int outline_size
Default |
|
Setter | set_outline_size(value) |
Getter | get_outline_size() |
字体轮廓的厚度,单位为像素(与字体大小无关)。
- int size
Default |
|
Setter | set_size(value) |
Getter | get_size() |
字体大小,单位为像素。
- bool use_filter
Default |
|
Setter | set_use_filter(value) |
Getter | get_use_filter() |
为 true
时将使用过滤功能。如果字体过度采样被禁用或无效,这将使字体在缩放时变得模糊,而非像素化。当在尺寸随时变化的控件中使用字体时,建议启用这个功能,除非是像素设计。
- bool use_mipmaps
Default |
|
Setter | set_use_mipmaps(value) |
Getter | get_use_mipmaps() |
为 true
时将使用多级渐远纹理。在字体过度采样被禁用或无效时,可改善字体缩小时的表现。
方法说明
- void add_fallback ( DynamicFontData data )
添加一个后备字体。
- String get_available_chars ( ) const
返回一个包含主字体和后备字体中所有可用字符的字符串。
如果多个字体中包含同一个字符,那么它在返回的字符串第一次出现的位置。
- DynamicFontData get_fallback ( int idx ) const
返回位于索引idx
处的后备字体。
- int get_fallback_count ( ) const
返回后备字体的数量。
返回给定type
的间距(参阅SpacingType)。
- void remove_fallback ( int idx )
移除位于索引idx
处的后备字体。
- void set_fallback ( int idx, DynamicFontData data )
设置索引idx
处的后备字体。
给type
设置间距(参阅SpacingType)为value
,单位为像素(与字体大小无关)。