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,单位为像素(与字体大小无关)。